<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.25.4</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>279</ContextCount>
  <ElementCount>508</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>91</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>9</UnitCount>
  <MyReports>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>995200090 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DocumentDocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>995200100 - Statement - Consolidated Balance Sheets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/StatementConsolidatedBalanceSheets</Role>
      <ShortName>Consolidated Balance Sheets</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>995200105 - Statement - Consolidated Balance Sheets (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/StatementConsolidatedBalanceSheetsParenthetical</Role>
      <ShortName>Consolidated Balance Sheets (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>995200200 - Statement - Consolidated Statements of Comprehensive Income (Loss)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/StatementConsolidatedStatementsOfComprehensiveIncomeLoss</Role>
      <ShortName>Consolidated Statements of Comprehensive Income (Loss)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>995200300 - Statement - Consolidated Statements of Cash Flows</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/StatementConsolidatedStatementsOfCashFlows</Role>
      <ShortName>Consolidated Statements of Cash Flows</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>995200400 - Statement - Consolidated Statements of Shareholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/StatementConsolidatedStatementsOfShareholdersEquity</Role>
      <ShortName>Consolidated Statements of Shareholders' Equity</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>995210101 - Disclosure - Nature of business and summary of significant accounting policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureNatureOfBusinessAndSummaryOfSignificantAccountingPolicies</Role>
      <ShortName>Nature of business and summary of significant accounting policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>995210201 - Disclosure - Acquisitions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureAcquisitions</Role>
      <ShortName>Acquisitions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>995210301 - Disclosure - Select balance sheet data</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelectBalanceSheetData</Role>
      <ShortName>Select balance sheet data</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>995210401 - Disclosure - Debt</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureDebt</Role>
      <ShortName>Debt</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>995210501 - Disclosure - Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureLeases</Role>
      <ShortName>Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>995210601 - Disclosure - Employee stock ownership plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureEmployeeStockOwnershipPlan</Role>
      <ShortName>Employee stock ownership plan</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>995210701 - Disclosure - Retirement plans</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRetirementPlans</Role>
      <ShortName>Retirement plans</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>995210801 - Disclosure - Income taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureIncomeTaxes</Role>
      <ShortName>Income taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>995210901 - Disclosure - Commitments and contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureCommitmentsAndContingencies</Role>
      <ShortName>Commitments and contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>995211001 - Disclosure - Deferred compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureDeferredCompensation</Role>
      <ShortName>Deferred compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>995211101 - Disclosure - Self-Funded insurance</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelfFundedInsurance</Role>
      <ShortName>Self-Funded insurance</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>995211201 - Disclosure - Segments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSegments</Role>
      <ShortName>Segments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>995211301 - Disclosure - Fair value of financial instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureFairValueOfFinancialInstruments</Role>
      <ShortName>Fair value of financial instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>995211401 - Disclosure - Revenue recognition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRevenueRecognition</Role>
      <ShortName>Revenue recognition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>995211501 - Disclosure - Common equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureCommonEquity</Role>
      <ShortName>Common equity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>995211601 - Disclosure - Earnings per share</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureEarningsPerShare</Role>
      <ShortName>Earnings per share</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>995211701 - Disclosure - Concentration of major customers</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureConcentrationOfMajorCustomers</Role>
      <ShortName>Concentration of major customers</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>995211801 - Disclosure - Stock-based compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureStockBasedCompensation</Role>
      <ShortName>Stock-based compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>995211901 - Disclosure - Restructuring</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRestructuring</Role>
      <ShortName>Restructuring</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>995212001 - Disclosure - Valuation and qualifying accounts</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureValuationAndQualifyingAccounts</Role>
      <ShortName>Valuation and qualifying accounts</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>995410 - Disclosure - Pay vs Performance Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/PvpDisclosure</Role>
      <ShortName>Pay vs Performance Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>995445 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>995447 - Disclosure - Insider Trading Policies and Procedures</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc</Role>
      <ShortName>Insider Trading Policies and Procedures</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>995550 - Disclosure - Cybersecurity Risk Management and Strategy Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/cyd/role/CybersecurityRiskManagementAndStrategyDisclosure</Role>
      <ShortName>Cybersecurity Risk Management and Strategy Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>99920102 - Disclosure - Nature of business and summary of significant policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureNatureOfBusinessAndSummaryOfSignificantPoliciesPolicies</Role>
      <ShortName>Nature of business and summary of significant policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>99930203 - Disclosure - Acquisitions (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureAcquisitionsTables</Role>
      <ShortName>Acquisitions (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureAcquisitions</ParentRole>
      <Position>32</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>99930303 - Disclosure - Select balance sheet data (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelectBalanceSheetDataTables</Role>
      <ShortName>Select balance sheet data (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureSelectBalanceSheetData</ParentRole>
      <Position>33</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>99930503 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureLeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureLeases</ParentRole>
      <Position>34</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>99930803 - Disclosure - Income taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureIncomeTaxesTables</Role>
      <ShortName>Income taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureIncomeTaxes</ParentRole>
      <Position>35</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>99931303 - Disclosure - Fair value of financial instruments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureFairValueOfFinancialInstrumentsTables</Role>
      <ShortName>Fair value of financial instruments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureFairValueOfFinancialInstruments</ParentRole>
      <Position>36</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>99931403 - Disclosure - Revenue recognition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRevenueRecognitionTables</Role>
      <ShortName>Revenue recognition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureRevenueRecognition</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>99931503 - Disclosure - Common equity (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureCommonEquityTables</Role>
      <ShortName>Common equity (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureCommonEquity</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>99931603 - Disclosure - Earnings per share (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureEarningsPerShareTables</Role>
      <ShortName>Earnings per share (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureEarningsPerShare</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>99931703 - Disclosure - Concentration of major customers (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureConcentrationOfMajorCustomersTables</Role>
      <ShortName>Concentration of major customers (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureConcentrationOfMajorCustomers</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>99931803 - Disclosure - Stock-based compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureStockBasedCompensationTables</Role>
      <ShortName>Stock-based compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureStockBasedCompensation</ParentRole>
      <Position>41</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>99931903 - Disclosure - Restructuring (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRestructuringTables</Role>
      <ShortName>Restructuring (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureRestructuring</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>99932003 - Disclosure - Valuation and qualifying accounts (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureValuationAndQualifyingAccountsTables</Role>
      <ShortName>Valuation and qualifying accounts (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureValuationAndQualifyingAccounts</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>99940101 - Disclosure - Nature of Business and summary of significant accounting policies (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureNatureOfBusinessAndSummaryOfSignificantAccountingPoliciesDetails</Role>
      <ShortName>Nature of Business and summary of significant accounting policies (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>44</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>99940102 - Disclosure - Nature of business and summary of significant accounting policies - Accounts receivable and Inventories (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureNatureOfBusinessAndSummaryOfSignificantAccountingPoliciesAccountsReceivableAndInventoriesDetails</Role>
      <ShortName>Nature of business and summary of significant accounting policies - Accounts receivable and Inventories (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>45</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>99940103 - Disclosure - Nature of business and summary of significant accounting policies - Tooling and PP&amp;E (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureNatureOfBusinessAndSummaryOfSignificantAccountingPoliciesToolingAndPpEDetails</Role>
      <ShortName>Nature of business and summary of significant accounting policies - Tooling and PP&amp;E (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>46</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>99940104 - Disclosure - Nature of business and summary of significant accounting policies - Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureNatureOfBusinessAndSummaryOfSignificantAccountingPoliciesGoodwillDetails</Role>
      <ShortName>Nature of business and summary of significant accounting policies - Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureNatureOfBusinessAndSummaryOfSignificantAccountingPolicies</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>99940105 - Disclosure - Nature of business and summary of significant accounting policies - Deferred financing costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureNatureOfBusinessAndSummaryOfSignificantAccountingPoliciesDeferredFinancingCostsDetails</Role>
      <ShortName>Nature of business and summary of significant accounting policies - Deferred financing costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>48</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>99940106 - Disclosure - Nature of business and summary of significant accounting policies - Advertising expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureNatureOfBusinessAndSummaryOfSignificantAccountingPoliciesAdvertisingExpenseDetails</Role>
      <ShortName>Nature of business and summary of significant accounting policies - Advertising expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>49</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>99940201 - Disclosure - Acquisitions (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureAcquisitionsDetails</Role>
      <ShortName>Acquisitions (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureAcquisitionsTables</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>99940202 - Disclosure - Acquisitions - Assets acquired, liabilities assumed (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureAcquisitionsAssetsAcquiredLiabilitiesAssumedDetails</Role>
      <ShortName>Acquisitions - Assets acquired, liabilities assumed (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>51</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>99940203 - Disclosure - Acquisitions - Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureAcquisitionsAssetsDetails</Role>
      <ShortName>Acquisitions - Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>52</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>99940204 - Disclosure - Acquisitions - Pro Forma Financial Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureAcquisitionsProFormaFinancialInformationDetails</Role>
      <ShortName>Acquisitions - Pro Forma Financial Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>53</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>99940301 - Disclosure - Select balance sheet data - Schedule of Inventories (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelectBalanceSheetDataScheduleOfInventoriesDetails</Role>
      <ShortName>Select balance sheet data - Schedule of Inventories (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>99940302 - Disclosure - Select balance sheet data - Schedule of Property, Plant and Equipment (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelectBalanceSheetDataScheduleOfPropertyPlantAndEquipmentDetails</Role>
      <ShortName>Select balance sheet data - Schedule of Property, Plant and Equipment (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>99940303 - Disclosure - Select balance sheet data - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelectBalanceSheetDataAdditionalInformationDetails</Role>
      <ShortName>Select balance sheet data - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>99940304 - Disclosure - Select balance sheet data - Schedule of Changes In Goodwill (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelectBalanceSheetDataScheduleOfChangesInGoodwillDetails</Role>
      <ShortName>Select balance sheet data - Schedule of Changes In Goodwill (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>99940305 - Disclosure - Select balance sheet data - Schedule of Listing of Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelectBalanceSheetDataScheduleOfListingOfIntangibleAssetsDetails</Role>
      <ShortName>Select balance sheet data - Schedule of Listing of Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>99940306 - Disclosure - Select balance sheet data - Amortization Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelectBalanceSheetDataAmortizationExpenseDetails</Role>
      <ShortName>Select balance sheet data - Amortization Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>99940307 - Disclosure - Select balance sheet data - Schedule of Future Amortization Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelectBalanceSheetDataScheduleOfFutureAmortizationExpenseDetails</Role>
      <ShortName>Select balance sheet data - Schedule of Future Amortization Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>99940401 - Disclosure - Debt - Credit Agreements (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureDebtCreditAgreementsDetails</Role>
      <ShortName>Debt - Credit Agreements (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>99940402 - Disclosure - Debt - Other Debt (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureDebtOtherDebtDetails</Role>
      <ShortName>Debt - Other Debt (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>99940501 - Disclosure - Leases - Components of lease expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureLeasesComponentsOfLeaseExpenseDetails</Role>
      <ShortName>Leases - Components of lease expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>99940502 - Disclosure - Leases - Supplemental information related to leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureLeasesSupplementalInformationRelatedToLeasesDetails</Role>
      <ShortName>Leases - Supplemental information related to leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>99940503 - Disclosure - Leases - ROU asset balances (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureLeasesRouAssetBalancesDetails</Role>
      <ShortName>Leases - ROU asset balances (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>99940504 - Disclosure - Leases - Minimum lease payments under ASC 842 (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureLeasesMinimumLeasePaymentsUnderAsc842Details</Role>
      <ShortName>Leases - Minimum lease payments under ASC 842 (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>99940505 - Disclosure - Leases - Supplemental cash flow information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureLeasesSupplementalCashFlowInformationDetails</Role>
      <ShortName>Leases - Supplemental cash flow information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>99940601 - Disclosure - Employee stock ownership plan - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureEmployeeStockOwnershipPlanAdditionalInformationDetails</Role>
      <ShortName>Employee stock ownership plan - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>99940701 - Disclosure - Retirement plans - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRetirementPlansAdditionalInformationDetails</Role>
      <ShortName>Retirement plans - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>99940801 - Disclosure - Income taxes - Schedule of Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureIncomeTaxesScheduleOfIncomeTaxesDetails</Role>
      <ShortName>Income taxes - Schedule of Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>70</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>99940802 - Disclosure - Income Taxes - Reconciliation of income tax benefit (expense) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureIncomeTaxesReconciliationOfIncomeTaxBenefitExpenseDetails</Role>
      <ShortName>Income Taxes - Reconciliation of income tax benefit (expense) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>99940803 - Disclosure - Income taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureIncomeTaxesComponentsOfDeferredIncomeTaxAssetsAndLiabilitiesDetails</Role>
      <ShortName>Income taxes - Components of Deferred Income Tax Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>99940804 - Disclosure - Income taxes - Additional information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureIncomeTaxesAdditionalInformationDetails</Role>
      <ShortName>Income taxes - Additional information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>99940805 - Disclosure - Income taxes - Unrecognized Tax Benefits (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureIncomeTaxesUnrecognizedTaxBenefitsDetails</Role>
      <ShortName>Income taxes - Unrecognized Tax Benefits (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>99940806 - Disclosure - Income taxes - Income taxes paid (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureIncomeTaxesIncomeTaxesPaidDetails</Role>
      <ShortName>Income taxes - Income taxes paid (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>99940901 - Disclosure - Commitments and contingencies (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureCommitmentsAndContingenciesDetails</Role>
      <ShortName>Commitments and contingencies (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureCommitmentsAndContingencies</ParentRole>
      <Position>76</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>99941001 - Disclosure - Deferred compensation - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureDeferredCompensationAdditionalInformationDetails</Role>
      <ShortName>Deferred compensation - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>99941101 - Disclosure - Self-Funded insurance (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSelfFundedInsuranceDetails</Role>
      <ShortName>Self-Funded insurance (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureSelfFundedInsurance</ParentRole>
      <Position>78</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>99941201 - Disclosure - Segments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureSegmentsDetails</Role>
      <ShortName>Segments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureSegments</ParentRole>
      <Position>79</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>99941301 - Disclosure - Fair value of financial instruments - Assets and Liabilities at Fair Value (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureFairValueOfFinancialInstrumentsAssetsAndLiabilitiesAtFairValueDetails</Role>
      <ShortName>Fair value of financial instruments - Assets and Liabilities at Fair Value (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>99941401 - Disclosure - Revenue recognition - Schedule of Changes in Contract Assets and Liabilities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRevenueRecognitionScheduleOfChangesInContractAssetsAndLiabilitiesDetails</Role>
      <ShortName>Revenue recognition - Schedule of Changes in Contract Assets and Liabilities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>99941402 - Disclosure - Revenue recognition - Schedule of Disaggregation of Revenue by Product Category (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRevenueRecognitionScheduleOfDisaggregationOfRevenueByProductCategoryDetails</Role>
      <ShortName>Revenue recognition - Schedule of Disaggregation of Revenue by Product Category (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>99941403 - Disclosure - Revenue recognition - Schedule of Disaggregation of Revenue by End Market (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRevenueRecognitionScheduleOfDisaggregationOfRevenueByEndMarketDetails</Role>
      <ShortName>Revenue recognition - Schedule of Disaggregation of Revenue by End Market (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>99941501 - Disclosure - Common equity (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureCommonEquityDetails</Role>
      <ShortName>Common equity (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureCommonEquityTables</ParentRole>
      <Position>84</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>99941502 - Disclosure - Common equity - Changes in outstanding common shares (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureCommonEquityChangesInOutstandingCommonSharesDetails</Role>
      <ShortName>Common equity - Changes in outstanding common shares (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>99941601 - Disclosure - Earnings per share (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureEarningsPerShareDetails</Role>
      <ShortName>Earnings per share (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureEarningsPerShareTables</ParentRole>
      <Position>86</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>99941602 - Disclosure - Earnings per share - Antidilutive Securities (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureEarningsPerShareAntidilutiveSecuritiesDetails</Role>
      <ShortName>Earnings per share - Antidilutive Securities (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>87</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>99941701 - Disclosure - Concentration of major customers - Schedule of Major Customer Concentrations (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureConcentrationOfMajorCustomersScheduleOfMajorCustomerConcentrationsDetails</Role>
      <ShortName>Concentration of major customers - Schedule of Major Customer Concentrations (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>88</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>99941801 - Disclosure - Stock-based compensation - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureStockBasedCompensationAdditionalInformationDetails</Role>
      <ShortName>Stock-based compensation - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>89</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>99941802 - Disclosure - Stock-based compensation - Summary of Stock-based Compensation Expenses (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureStockBasedCompensationSummaryOfStockBasedCompensationExpensesDetails</Role>
      <ShortName>Stock-based compensation - Summary of Stock-based Compensation Expenses (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>90</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>99941803 - Disclosure - Stock-based compensation - Summary of Fair Value Assumptions and Inputs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureStockBasedCompensationSummaryOfFairValueAssumptionsAndInputsDetails</Role>
      <ShortName>Stock-based compensation - Summary of Fair Value Assumptions and Inputs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>91</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>99941804 - Disclosure - Stock-based compensation - Summary of Activity for Awards (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureStockBasedCompensationSummaryOfActivityForAwardsDetails</Role>
      <ShortName>Stock-based compensation - Summary of Activity for Awards (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>92</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>99941805 - Disclosure - Stock-based compensation - Schedule of Unrecognized Stock-based Compensation Expense (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureStockBasedCompensationScheduleOfUnrecognizedStockBasedCompensationExpenseDetails</Role>
      <ShortName>Stock-based compensation - Schedule of Unrecognized Stock-based Compensation Expense (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>93</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>99941901 - Disclosure - Restructuring - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRestructuringAdditionalInformationDetails</Role>
      <ShortName>Restructuring - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>94</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>99941902 - Disclosure - Restructuring - Restructuring Charges (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureRestructuringRestructuringChargesDetails</Role>
      <ShortName>Restructuring - Restructuring Charges (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>95</Position>
    </Report>
    <Report instance="tmb-20251231x10k.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>99942001 - Disclosure - Valuation and qualifying accounts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.mecinc.com/role/DisclosureValuationAndQualifyingAccountsDetails</Role>
      <ShortName>Valuation and qualifying accounts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://www.mecinc.com/role/DisclosureValuationAndQualifyingAccountsTables</ParentRole>
      <Position>96</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File>tmb-20251231.xsd</File>
    <File>tmb-20251231_cal.xml</File>
    <File>tmb-20251231_def.xml</File>
    <File>tmb-20251231_lab.xml</File>
    <File>tmb-20251231_pre.xml</File>
    <File doctype="10-K" isDefinitelyFs="true" isUsgaap="true" original="tmb-20251231x10k.htm">tmb-20251231x10k.htm</File>
  </InputFiles>
  <SupplementalFiles>
    <File>tmb-20251231x10k006.jpg</File>
    <File>tmb-20251231x10k009.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="2">http://fasb.org/srt/2025</BaseTaxonomy>
    <BaseTaxonomy items="1009">http://fasb.org/us-gaap/2025</BaseTaxonomy>
    <BaseTaxonomy items="15">http://xbrl.sec.gov/cyd/2025</BaseTaxonomy>
    <BaseTaxonomy items="38">http://xbrl.sec.gov/dei/2025</BaseTaxonomy>
    <BaseTaxonomy items="7">http://xbrl.sec.gov/ecd/2025</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
