<SEC-DOCUMENT>0000950170-25-006565.txt : 20250117
<SEC-HEADER>0000950170-25-006565.hdr.sgml : 20250117
<ACCEPTANCE-DATETIME>20250117135443
ACCESSION NUMBER:		0000950170-25-006565
CONFORMED SUBMISSION TYPE:	8-K
PUBLIC DOCUMENT COUNT:		13
CONFORMED PERIOD OF REPORT:	20250116
ITEM INFORMATION:		Results of Operations and Financial Condition
ITEM INFORMATION:		Financial Statements and Exhibits
FILED AS OF DATE:		20250117
DATE AS OF CHANGE:		20250117

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			CECO ENVIRONMENTAL CORP
		CENTRAL INDEX KEY:			0000003197
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL & COMMERCIAL FANS & BLOWERS & AIR PURIFYING EQUIP [3564]
		ORGANIZATION NAME:           	06 Technology
		IRS NUMBER:				132566064
		STATE OF INCORPORATION:			DE
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		8-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	000-07099
		FILM NUMBER:		25538047

	BUSINESS ADDRESS:	
		STREET 1:		5080 SPECTRUM DRIVE
		STREET 2:		SUITE 800E
		CITY:			ADDISON
		STATE:			TX
		ZIP:			75001
		BUSINESS PHONE:		(513) 458-2600

	MAIL ADDRESS:	
		STREET 1:		5080 SPECTRUM DRIVE
		STREET 2:		SUITE 800E
		CITY:			ADDISON
		STATE:			TX
		ZIP:			75001

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	API ENTERPRISES INC
		DATE OF NAME CHANGE:	19920703

	FORMER COMPANY:	
		FORMER CONFORMED NAME:	ALARM PRODUCTS INTERNATIONAL INC
		DATE OF NAME CHANGE:	19851210
</SEC-HEADER>
<DOCUMENT>
<TYPE>8-K
<SEQUENCE>1
<FILENAME>ceco-20250116.htm
<DESCRIPTION>8-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<!-- DFIN New ActiveDisclosure (SM) Inline XBRL Document - http://www.dfinsolutions.com/ -->
<!-- Creation Date :2025-01-17T13:49:29.4130+00:00 -->
<!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:nonNumeric="http://www.xbrl.org/dtr/type/non-numeric" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:ceco="http://www.cecoenviro.com/20250116" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2022-02-16" xmlns:utr="http://www.xbrl.org/2009/utr">
 <head>
  <title>8-K</title>
  <meta http-equiv="Content-Type" content="text/html"/>
 </head>
 <body style="margin: auto!important;padding: 8px;line-height: 1;">
  <div style="display:none;"><ix:header><ix:hidden><ix:nonNumeric id="F_09b96a0b-3583-4ad5-b8be-b9f574ef41ab" name="dei:EntityCentralIndexKey" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708">0000003197</ix:nonNumeric><ix:nonNumeric id="F_c4e905de-4c38-4f0a-95c6-91da24a087d9" name="dei:AmendmentFlag" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708">false</ix:nonNumeric></ix:hidden><ix:references><link:schemaRef xlink:type="simple" xlink:href="ceco-20250116.xsd"/></ix:references><ix:resources><xbrli:context id="C_6f8e9c0c-30b8-4760-80d4-369000405708"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000003197</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2025-01-16</xbrli:startDate><xbrli:endDate>2025-01-16</xbrli:endDate></xbrli:period></xbrli:context></ix:resources></ix:header></div>
  <div style="z-index:-3;min-height:0.5in;position:relative;"></div>
  <p style="padding-bottom:1pt;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt double;text-align:left;"><span style="white-space:pre-wrap;font-size:2pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Times New Roman;min-width:fit-content;">UNITED STATES</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Times New Roman;min-width:fit-content;">SECURITIES AND EXCHANGE COMMISSION</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">Washington, D.C. 20549</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="margin-left:33.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:1pt solid #000000;margin-right:33.333%;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Times New Roman;min-width:fit-content;">FORM </span><span style="font-size:16pt;font-family:Times New Roman;"><ix:nonNumeric id="F_18cf86e7-cf37-483a-80a6-f123f2737d69" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:DocumentType"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:16pt;font-family:Times New Roman;min-width:fit-content;">8-K</span></ix:nonNumeric></span></p>
  <p style="margin-left:33.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:1pt solid #000000;margin-right:33.333%;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">CURRENT REPORT</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">Pursuant to Section 13 or 15(d)</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">of the Securities Exchange Act of 1934</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:4pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">Date of Report (Date of earliest event reported): </span><span style="font-size:12pt;font-family:Times New Roman;"><ix:nonNumeric id="F_3f0b02f5-9e75-48cd-aea4-a6c924a12b66" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Times New Roman;min-width:fit-content;">January 16, 2025</span></ix:nonNumeric></span></p>
  <p style="margin-left:33.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:1pt solid #000000;margin-right:33.333%;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:18pt;font-family:Times New Roman;"><ix:nonNumeric id="F_7b7f9342-22f7-4b9f-b620-b2618c7adbe0" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityRegistrantName"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:18pt;font-family:Times New Roman;min-width:fit-content;">CECO ENVIRONMENTAL CORP.</span></ix:nonNumeric></span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(Exact Name of registrant as specified in its charter)</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="margin-left:33.333%;font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:1pt solid #000000;margin-right:33.333%;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:32%;box-sizing:content-box;"/>
    <td style="width:2%;box-sizing:content-box;"/>
    <td style="width:32%;box-sizing:content-box;"/>
    <td style="width:2%;box-sizing:content-box;"/>
    <td style="width:32%;box-sizing:content-box;"/>
   </tr>
   <tr style="height:9pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_fe5edcd2-76e7-4cdd-b8a3-daaa2a5f2d14" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Delaware</span></ix:nonNumeric></span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_0bb8137d-fe84-4aed-b7a1-851a0948fe74" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityFileNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">000-7099</span></ix:nonNumeric></span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:9pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_b916424b-d2a3-49c1-94bb-f6e39f2acdb8" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityTaxIdentificationNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">13-2566064</span></ix:nonNumeric></span></p></td>
   </tr>
   <tr style="height:8pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(State or other jurisdiction</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:1pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">of incorporation)</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(Commission</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:1pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">File Number)</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(IRS Employer</span></p><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:1pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Identification No.)</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:49%;box-sizing:content-box;"/>
    <td style="width:2%;box-sizing:content-box;"/>
    <td style="width:49%;box-sizing:content-box;"/>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_1cb52d4a-1155-43f6-9f31-8e63e85c6063" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityAddressAddressLine1"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">5080 Spectrum Drive</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_6615855e-20d7-44bd-9742-71f8a9b1b58a" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityAddressAddressLine2"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">East Tower</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;min-width:fit-content;">, </span><span style="font-size:9pt;"><ix:nonNumeric id="F_db83101e-7ebe-4d53-a712-77d359f49d23" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityAddressAddressLine3"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Suite 800E</span></ix:nonNumeric></span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_859b50d8-fab1-424b-a306-ce04f21496a8" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityAddressCityOrTown"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;"> Addison</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:9pt;min-width:fit-content;">, </span><span style="font-size:9pt;"><ix:nonNumeric id="F_149712c7-2a6c-4d2e-8e09-1b920ecda38c" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Texas</span></ix:nonNumeric></span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;text-align:left;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="font-size:9pt;"><ix:nonNumeric id="F_8dae3197-8ae5-42e9-9693-650bc8a716a2" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityAddressPostalZipCode"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">75001</span></ix:nonNumeric></span></p></td>
   </tr>
   <tr style="height:8pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(Address of principal executive offices)</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">(Zip Code)</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Registrant&#8217;s telephone number, including area code: (</span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_7f0754f9-aba7-4f13-97ee-0dc8871e0195" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:CityAreaCode"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">214</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">) </span><span style="font-size:10pt;font-family:Times New Roman;"><ix:nonNumeric id="F_b9ea729e-5a3e-4b8e-b6ce-e15a52a56764" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:LocalPhoneNumber"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">357-6181</span></ix:nonNumeric></span></p>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">Check the appropriate box below if the Form 8-K filing is intended to simultaneously satisfy the filing obligation of the registrant under any of the following provisions:</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:5pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;font-family:Times New Roman;"><ix:nonNumeric id="F_44ecc023-46f0-424f-a091-57b56f7b26c4" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:WrittenCommunications" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">	Written communications pursuant to Rule 425 under the Securities Act (17 CFR 230.425)</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:5pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;font-family:Times New Roman;"><ix:nonNumeric id="F_d755dc74-6f5f-4fb3-ac54-704b80ec2b0f" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:SolicitingMaterial" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">	Soliciting material pursuant to Rule 14a-12 under the Exchange Act (17 CFR 240.14a-12)</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:5pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;font-family:Times New Roman;"><ix:nonNumeric id="F_29738bbb-c07a-4e7a-8c31-db3b2b197cc2" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:PreCommencementTenderOffer" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">	Pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act (17 CFR 240.14d-2(b))</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:5pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="font-size:9pt;font-family:Times New Roman;"><ix:nonNumeric id="F_046186e1-3d02-4d68-92aa-7bf9994184e7" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:PreCommencementIssuerTenderOffer" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">	Pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act (17 CFR 240.13e-4(c))</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:6pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">Securities registered pursuant to Section 12(b) of the Act:</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:94.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:37.34%;box-sizing:content-box;"/>
    <td style="width:19.8%;box-sizing:content-box;"/>
    <td style="width:42.86%;box-sizing:content-box;"/>
   </tr>
   <tr style="height:8pt;word-break:break-word;white-space:pre-wrap;text-align:left;">
    <td style="border-top:1pt solid;padding-top:0in;border-right:1pt solid;border-left:1pt solid;padding-left:0.075in;vertical-align:top;padding-bottom:0in;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Title of each class</span></p></td>
    <td style="border-top:1pt solid;padding-top:0in;border-right:1pt solid;padding-left:0.075in;vertical-align:top;padding-bottom:0in;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Trading Symbol</span></p></td>
    <td style="border-top:1pt solid;padding-top:0in;border-right:1pt solid;padding-left:0.075in;vertical-align:top;padding-bottom:0in;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Name of each exchange on which registered</span></p></td>
   </tr>
   <tr style="height:5.75pt;word-break:break-word;white-space:pre-wrap;text-align:left;">
    <td style="padding-top:0in;border-right:1pt solid;border-left:1pt solid;padding-left:0.075in;vertical-align:top;padding-bottom:0in;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="font-size:8pt;"><ix:nonNumeric id="F_5088bf03-f24e-4904-af1f-9555cf5c0971" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:Security12bTitle"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Common Stock, par value $0.01 per share</span></ix:nonNumeric></span></p></td>
    <td style="padding-top:0in;border-right:1pt solid;padding-left:0.075in;vertical-align:top;padding-bottom:0in;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="font-size:8pt;"><ix:nonNumeric id="F_904de8d0-a81f-464d-af81-dbd937439f3e" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:TradingSymbol"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">CECO</span></ix:nonNumeric></span></p></td>
    <td style="padding-top:0in;border-right:1pt solid;padding-left:0.075in;vertical-align:top;padding-bottom:0in;border-bottom:1pt solid;padding-right:0.075in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:2.2pt;text-align:center;"><span style="font-size:8pt;"><ix:nonNumeric id="F_beb93b2d-c1d1-47d9-b8d9-911cb279cb86" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">The NASDAQ Stock Market LLC</span></ix:nonNumeric></span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:9pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">Indicate by check mark whether the registrant is an emerging growth company as defined in Rule 405 of the Securities Act of 1933 (&#167;&#8201;230.405 of this chapter) or Rule 12b-2 of the Securities Exchange Act of 1934 (&#167;&#8201;240.12b-2 of this chapter).</span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">Emerging growth company </span><span style="font-size:9pt;font-family:Times New Roman;"><ix:nonNumeric id="F_0a4fca13-1b59-4394-a432-372e255d25bd" contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708" name="dei:EntityEmergingGrowthCompany" format="ixt-sec:boolballotbox"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">&#9744;</span></ix:nonNumeric></span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:'Calibri',sans-serif;min-width:fit-content;">.</span><span style="color:#000000;white-space:pre-wrap;font-size:9pt;font-family:Times New Roman;min-width:fit-content;"> &#9744;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;border-bottom:1.5pt double;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="z-index:-3;flex-direction:column;display:flex;min-height:0.5in;justify-content:flex-end;position:relative;"></div></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="z-index:-3;min-height:0.5in;position:relative;"></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Item 2.02. Results of Operations and Financial Condition.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">On January 16, 2025, CECO Environmental Corp. (the &#8220;Company&#8221;) issued a press release announcing its preliminary financial results for the fourth quarter and full year ended December 31, 2024. A copy of the press release is furnished as Exhibit 99.1 to this report and is incorporated herein by reference.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The information in this Item 2.02, including the exhibit, shall not be deemed &#8220;filed&#8221; for purposes of Section 18 of the Securities Exchange Act of 1934, as amended (the &#8220;Exchange Act&#8221;), or incorporated by reference in any filing under the Securities Act of 1933, as amended, or the Exchange Act, except as shall be expressly set forth by specific reference in such filing.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:18pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Item 9.01. Financial Statements and Exhibits.</span><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="text-indent:-4.749%;padding-left:4.533%;font-size:10pt;margin-top:6pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">(d)	Exhibits</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:7.96%;box-sizing:content-box;"/>
    <td style="width:1.06%;box-sizing:content-box;"/>
    <td style="width:90.98%;box-sizing:content-box;"/>
   </tr>
   <tr style="height:8pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.75pt solid #000000;text-align:left;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Exhibit<br/>Number</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.75pt solid #ffffff03;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">  </span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;border-bottom:0.75pt solid #000000;"><p style="font-size:8pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;min-width:fit-content;">Exhibit Title</span></p></td>
   </tr>
   <tr style="height:5.75pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:middle;padding-bottom:0in;"><p style="font-size:1pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="padding-top:0in;vertical-align:middle;padding-bottom:0in;"><p style="font-size:1pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:4.3pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">99.1</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">104</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">  </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><a href="ceco-ex99_1.htm"><span style="color:#0000ff;white-space:pre-wrap;text-decoration:underline;min-width:fit-content;">Press Release, CECO Environmental Announces Preliminary Fourth Quarter and Full Year 2024 Results and Highlights Key Strategic Transactions</span></a><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Cover Page Interactive Data File (embedded within the Inline XBRL document).</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="z-index:-3;flex-direction:column;display:flex;min-height:0.5in;justify-content:flex-end;position:relative;"></div></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
  <div style="z-index:-3;min-height:0.5in;position:relative;"></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><span style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Signatures</span></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Pursuant to the requirements of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned hereunto duly authorized.</span><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <table style="margin-left:auto;border-spacing:0;table-layout:auto;width:100.0%;border-collapse:separate;margin-right:auto;">
   <tr style="visibility:collapse;">
    <td style="width:56%;box-sizing:content-box;"/>
    <td style="width:1%;box-sizing:content-box;"/>
    <td style="width:1%;box-sizing:content-box;"/>
    <td style="width:1%;box-sizing:content-box;"/>
    <td style="width:4.02%;box-sizing:content-box;"/>
    <td style="width:1%;box-sizing:content-box;"/>
    <td style="width:35.98%;box-sizing:content-box;"/>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Date: January 17, 2025</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td colspan="3" style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">CECO Environmental Corp.</span></p></td>
   </tr>
   <tr style="height:12.25pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:middle;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="padding-top:0in;vertical-align:middle;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="padding-top:0in;vertical-align:middle;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td colspan="2" style="padding-top:0in;vertical-align:middle;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">By:</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;border-bottom:0.75pt solid #000000;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">/s/ Kiril Kovachev</span></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Kiril Kovachev</span></p></td>
   </tr>
   <tr style="height:10pt;word-break:break-word;white-space:pre-wrap;">
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:top;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;min-width:fit-content;">&#160;</span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;"> </span></p></td>
    <td style="padding-top:0in;vertical-align:bottom;padding-bottom:0in;"><p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="color:#000000;white-space:pre-wrap;min-width:fit-content;">Chief Accounting Officer</span></p></td>
   </tr>
  </table>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><span style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</span></p>
  <div class="page-node-content"><div style="z-index:-3;flex-direction:column;display:flex;min-height:0.5in;justify-content:flex-end;position:relative;"></div></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;"/>
 </body>
</html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-99.1
<SEQUENCE>2
<FILENAME>ceco-ex99_1.htm
<DESCRIPTION>EX-99.1
<TEXT>
<html>
 <head>
  <title>EX-99.1</title>
 </head>
 <body style="margin: auto!important;padding: 8px;line-height: 1;">
  <div style="z-index:-3;min-height:0.5in;position:relative;"></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><img src="img161054807_0.jpg" alt="img161054807_0.jpg" style="width:129px;height:60px;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:12pt;font-family:Arial;min-width:fit-content;"> </font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;"><br></font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:11pt;font-family:Arial;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CECO ENVIRONMENTAL ANNOUNCES PRELIMINARY FOURTH QUARTER AND FULL YEAR 2024 RESULTS AND HIGHLIGHTS KEY STRATEGIC TRANSACTIONS</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Q4 Revenue and EBITDA Negatively Impacted by Customer-Driven Project Delays</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Tremendous Q4 Bookings at Over $210 million Establishes New Record and Highest-Ever Backlog </font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"><br></font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">Completed Acquisition of Verantis in Late Q4 and Announces Intention to Divest Fluid Handling Business</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"><br></font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;font-style:italic;min-width:fit-content;">2025 Full Year Outlook Affirmed</font></p>
  <p style="font-size:10pt;margin-top:12pt;font-family:Times New Roman;margin-bottom:12pt;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ADDISON, TX (January 16, 2025) -- CECO Environmental Corp. (Nasdaq: CECO) (&#34;CECO&#34; or the &#x201c;Company&#x201d;)</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">, a leading environmentally focused, diversified industrial company whose solutions protect people, the environment, and industrial equipment, today announced preliminary financial results for the fourth quarter and full year 2024 and provided an update on further portfolio transformation. The Company also affirmed its previously announced full year 2025 outlook.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Fourth Quarter and Full Year Preliminary Results</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">For the full year ended 2024, the Company expects to report revenues in the range of $555 to $558 million, when compared to the previous guidance of $575 to $600 million, and Adjusted EBITDA between $62 to $63 million, when compared to the previous guidance of $65 to $70 million.  Fourth quarter and full year revenue and Adjusted EBITDA softness were driven primarily from continued impacts related to delays of customer-driven projects.  Orders for the fourth quarter 2024 are expected to be at or above $210 million, which sets a new Company record for bookings and backlog levels.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#x201c;Missing our 2024 outlook is disappointing &#x2013; especially given the tremendous orders growth we achieved in the second half of the year,&#x201d; said Todd Gleason, CECO&#x2019;s Chief Executive Officer. &#x201c;The multi-quarter, customer-driven, project delays did abate late in the year, but not in enough time for our teams to recognize the expected revenue levels from key projects. The revenues from these projects and the associated income will roll into 2025, which, along with our record orders achieved in 2024, adds even more conviction to our 2025 full year outlook. We remain very pleased with our margin expansion progress and our tremendous sales pipeline in energy transition and general industrial markets. We look forward to providing more detail on our 2024 performance and 2025 outlook when we release our full earnings report next month.&#x201d;</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company&#x2019;s preliminary fourth quarter and full year 2024 financial results included in this press release are preliminary, unaudited and subject to completion, reflect management&#x2019;s current views, and may change as a result of management&#x2019;s continued review and the completion of audit procedures</font><font style="color:#444444;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</font><font style="color:#444444;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Portfolio &amp; Transaction Update</font><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">In late December 2024, the Company completed its acquisition of Verantis Environmental Solutions Group (&#x201c;Verantis&#x201d;). Verantis is a global leader in engineering services and environmental systems that focuses on process improvement in a wide range of general industrial and high technology processes, primarily for the industrial air market. Verantis had annualized sales of approximately $45 million and operating margins which are expected to be accretive to the Company.</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Additionally, the Company is announcing its intent to divest its Fluid Handling business which the sale is expected to be completed late in the first quarter of 2025.  The proceeds from this divestiture will be used to pay down debt and position the balance sheet for future strategic growth investments.</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Lastly, as previously reported, the Company&#x2019;s acquisition of Profire Energy closed on January 3, 2025.</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">1</font></p>
  <div class="page-node-content"><div style="z-index:-3;flex-direction:column;display:flex;min-height:0.5in;justify-content:flex-end;position:relative;"></div></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="z-index:-3;min-height:0.5in;position:relative;"></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#x201c;I am very pleased with the fast start associated with the Profire integration and how many market opportunities we continue to add to our list of growth initiatives. We are also excited to welcome the Verantis team to CECO as we advance our strategic portfolio of leading environmental solution businesses to help our customers to reduce environmental footprint while improving profitability,&#x201d; said Todd Gleason, CECO&#x2019;s Chief Executive Officer. &#x201c;The announced process to divest our Fluid Handling business has yielded strong interest among well-positioned leaders in the market, and we expect to complete the divestiture in late Q1. While our Fluid Handling business is very well positioned in its markets, we are laser focused on businesses that more closely align with our strategic investments and leadership positions in Air, Water and Energy Transition.&#x201d;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;text-decoration:underline;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2025 Full Year Guidance Remains Unchanged</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">The Company maintains its previously announced full year 2025 outlook which includes expected Revenue of $700 to $750 million, up approximately 30 percent at the midpoint year over year, and Adjusted EBITDA of $90 to $100 million, up approximately 50 percent at the midpoint versus 2024. The Company also affirms its full year 2025 outlook that free cash flow is expected to be between 50 and 70 percent of Adjusted EBITDA. The full year guidance incorporates the net impact of completed acquisitions, the expected Q1 sale of the Company&#x2019;s Fluid Handling business, and the revenue and income that rolls into 2025 associated with the 2024 customer-driven project delays.</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#x201c;We believe that we are very well-positioned as we enter 2025. Our key growth markets in general industrial, energy transition and power generation, are producing record bookings and our sales pipeline has never looked better. Our programmatic M&amp;A program added tremendous businesses to our mix in the second half of 2024 and early 2025, and we expect each of these acquisitions will deliver solid growth and accretive margins to the Company. I am excited for the short- and long-term future of CECO as we expect to deliver high performance and sustainable value creation,&#x201d; concluded Gleason.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;margin-right:1.444%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">ABOUT CECO ENVIRONMENTAL</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;margin-right:0.796%;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CECO Environmental is a leading environmentally focused, diversified industrial company, serving a broad landscape of industrial air, industrial water, and energy transition markets globally through its key business segments: Engineered Systems and Industrial Process Solutions. Providing innovative technology and application expertise, CECO helps companies grow their business with safe, clean, and more efficient solutions that help protect people, the environment and industrial equipment. In regions around the world, CECO works to improve air quality, optimize the energy value chain, and provide custom solutions for applications in power generation, petrochemical processing, refining, midstream gas transport and treatment, electric vehicle and battery production, metals and mineral processing, polysilicon production, battery recycling, beverage can production, and produced and oily water/wastewater treatment along with a wide range of other industrial applications. CECO is listed on Nasdaq under the ticker symbol &#34;CECO.&#34; Incorporated in 1966, CECO&#x2019;s global headquarters is in Addison, Texas.  For more information, please visit </font><font><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">www.cecoenviro.com</font></font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CECO Company Contact:</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Peter Johansson</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Chief Financial and Strategy Officer</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">888-990-6670<br>	</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Investor Relations Contact:</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Steven Hooser, Three Part Advisors</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">214-872-2710</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Investor.Relations@OneCECO.com</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">2</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <div class="page-node-content"><div style="z-index:-3;flex-direction:column;display:flex;min-height:0.5in;justify-content:flex-end;position:relative;"></div></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="z-index:-3;min-height:0.5in;position:relative;"></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">NOTE REGARDING NON-GAAP FINANCIAL MEASURES</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">CECO is providing certain non-GAAP historical financial measures as presented above as we believe that these figures are helpful in allowing individuals to better assess the ongoing nature of CECO&#x2019;s core operations. A &#34;non-GAAP financial measure&#34; is a numerical measure of a company's historical financial performance that excludes amounts that are included in the most directly comparable measure calculated and presented in accordance with GAAP.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Adjusted EBITDA, as presented in the financial data included in this press release, has been adjusted to exclude the effects of amortization expenses for acquisition-related intangible assets, contingent retention and earnout expenses, restructuring expenses primarily relating to severance and legal expenses, acquisition and integration expenses which include retention, legal, accounting, banking, and other expenses, foreign currency remeasurement and other nonrecurring or infrequent items and the associated tax benefit of these items. Management believes that these items are not necessarily indicative of the Company&#x2019;s ongoing operations and their exclusion provides individuals with additional information to better compare the Company's results over multiple periods. Management utilizes this information to evaluate its ongoing financial performance. Our financial statements may continue to be affected by items similar to those excluded in the non-GAAP adjustments described above, and exclusion of these items from our non-GAAP financial measures should not be construed as an inference that all such costs are unusual or infrequent.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Adjusted EBITDA is not calculated in accordance with GAAP, and should be considered supplemental to, and not as a substitute for, or superior to, financial measures calculated in accordance with GAAP. Non-GAAP financial measures have limitations in that they do not reflect all of the costs associated with the operations of our business as determined in accordance with GAAP. As a result, you should not consider these measures in isolation or as a substitute for analysis of CECO&#x2019;s results as reported under GAAP. Additionally, CECO cautions investors that non-GAAP financial measures used by the Company may not be comparable to similarly titled measures of other companies.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">  </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Non-GAAP measures presented on a forward-looking basis were not reconciled to the comparable GAAP financial measures because the reconciliation could not be performed without unreasonable efforts. The GAAP measures are not accessible on a forward-looking basis because we are currently unable to predict with a reasonable degree of certainty the type and extent of certain items that would be expected to impact GAAP measures for these periods but would not impact the non-GAAP measures. Such items may include amortization expenses for acquisition-related intangible assets, contingent retention and earnout expenses, restructuring expenses primarily relating to severance and legal expenses, acquisition and integration expenses which include retention, legal, accounting, banking, and other expenses, foreign currency remeasurement and other nonrecurring or infrequent items and the associated tax benefit of these items. The unavailable information could have a significant impact on our GAAP financial results.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">SAFE HARBOR STATEMENT</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">Any statements contained in this Press Release, other than statements of historical fact, including statements about management's beliefs and expectations, are forward-looking statements and should be evaluated as such. These statements are made on the basis of management's views and assumptions regarding future events and business performance. We use words such as &#34;believe,&#34; &#34;expect,&#34; &#34;anticipate,&#34; &#34;intends,&#34; &#34;estimate,&#34; &#34;forecast,&#34; &#34;project,&#34; &#34;will,&#34; &#34;plan,&#34; &#x201c;feel,&#x201d; &#34;should&#34; and similar expressions to identify forward-looking statements. Forward-looking statements involve risks and uncertainties that may cause actual results to differ materially from any future results, performance or achievements expressed or implied by such statements. Potential risks and uncertainties that could cause actual results to differ materially include risks regarding our ability to consummate the planned divestiture of our Fluid Handling business, the effect of recently announced acquisitions and planned divestiture of our Fluid Handling Business (together, the &#x201c;transactions&#x201d;) on business relationships, operating results, and business generally, disruption of current plans and operations and potential difficulties in employee retention as a result of the transactions, diversion of management&#x2019;s attention from ongoing business operations in connection with the integration of recent acquisitions, the outcome of any legal proceedings that have been or may in the future be instituted related to the Profire Energy transaction or other transactions, the amount of the costs, fees, expenses and other charges related to the transactions, the achievement of the anticipated benefits of transactions, the ability of Profire Energy to achieve its earnings guidance, our ability to successfully integrate acquired businesses and realize the synergies from acquisitions, as well as a number of factors related to our business, including the sensitivity of our business to economic and financial market conditions generally and economic conditions in our service areas; dependence on fixed price contracts and the risks associated therewith, including actual</font><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;"> </font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:left;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">3</font></p>
  <div class="page-node-content"><div style="z-index:-3;flex-direction:column;display:flex;min-height:0.5in;justify-content:flex-end;position:relative;"></div></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
  <div style="z-index:-3;min-height:0.5in;position:relative;"></div>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="color:#000000;white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">costs exceeding estimates and method of accounting for revenue; the effect of growth on our infrastructure, resources, and existing sales; the ability to expand operations in both new and existing markets; the potential for contract delay or cancellation as a result of on-going or worsening supply chain challenges, or other customer-driven project delays relating to supply chain challenges or other customer considerations; liabilities arising from faulty services or products that could result in significant professional or product liability, warranty, or other claims; changes in or developments with respect to any litigation or investigation; failure to meet timely completion or performance standards that could result in higher cost and reduced profits or, in some cases, losses on projects; the potential for fluctuations in prices for manufactured components and raw materials, including as a result of tariffs and surcharges, and rising energy costs; inflationary pressures relating to rising raw material costs and the cost of labor; the substantial amount of debt incurred in connection with our strategic transactions and our ability to repay or refinance it or incur additional debt in the future; the impact of federal, state or local government regulations; our ability to repurchase shares of our common stock and the amounts and timing of repurchases, if any; our ability to successfully realize the expected benefits of our restructuring program; our ability to successfully integrate acquired businesses and realize the synergies from strategic transactions; the unpredictability and severity of catastrophic events, including cyber security threats, acts of terrorism or outbreak of war or hostilities or public health crises, as well as management's response to any of the aforementioned factors; and our ability to remediate our material weakness, or any other material weakness that we may identify in the future that could result in material misstatements in our financial statements. Additional risks and uncertainties are discussed under &#34;Part I &#x2013; Item 1A. Risk Factors&#34; of CECO's Annual Report on Form 10-K for the fiscal year ended December 31, 2023 and may be included in subsequently filed Quarterly Reports on Form 10-Q. Many of these risks are beyond management's ability to control or predict. Should one or more of these risks or uncertainties materialize, or should the assumptions prove incorrect, actual results may vary in material aspects from those currently anticipated. Investors are cautioned not to place undue reliance on such forward-looking statements as they speak only to our views as of the date the statement is made. Except as required under the federal securities laws or the rules and regulations of the Securities and Exchange Commission, we undertake no obligation to update or review any forward-looking statements, whether as a result of new information, future events or otherwise.</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:center;"><font style="color:#000000;white-space:pre-wrap;font-weight:bold;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">##</font></p>
  <p style="font-size:10pt;margin-top:0;font-family:Times New Roman;margin-bottom:0;text-align:justify;"><font style="white-space:pre-wrap;font-size:10pt;font-family:Times New Roman;min-width:fit-content;">&#160;</font></p>
  <div class="page-node-content"><div style="z-index:-3;flex-direction:column;display:flex;min-height:0.5in;justify-content:flex-end;position:relative;"></div></div>
  <hr style="margin-inline-start:auto;margin-inline-end:auto;page-break-after:always;">
 </body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>3
<FILENAME>img161054807_0.jpg
<DESCRIPTION>GRAPHIC
<TEXT>
begin 644 img161054807_0.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  $! 0$! 0$! 0$! 0$! 0$! 0$!
M 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0'_
MVP!# 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$!
M 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0'_P  1"  \ ($# 2(  A$! Q$!_\0
M'@   00" P$               0'"0H#" $"!@7_Q !%$   !0," P0'! 8'
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
7Y:6Z-&LPJJ(4 #R  Z86#1HT:?"Q_]D!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>4
<FILENAME>ceco-20250116.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA WITH EMBEDDED LINKBASES DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="US-ASCII"?>
<!-- DFIN New ActiveDisclosure (SM) XBRL Schema Document - http://www.dfinsolutions.com/ -->
<!-- Creation Date :2025-01-17T13:49:29.4423+00:00 -->
<!-- Copyright (c) 2025 Donnelley Financial Solutions, Inc. All Rights Reserved. -->
<xsd:schema targetNamespace="http://www.cecoenviro.com/20250116" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:ceco="http://www.cecoenviro.com/20250116" xmlns:enum2="http://xbrl.org/2020/extensible-enumerations-2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:us-gaap="http://fasb.org/us-gaap/2024" xmlns:dei="http://xbrl.sec.gov/dei/2024" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:xlink="http://www.w3.org/1999/xlink">
  <xsd:import schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd" namespace="http://www.xbrl.org/2003/instance"/>
  <xsd:import schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd" namespace="http://www.xbrl.org/2003/linkbase"/>
  <xsd:import schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd" namespace="http://xbrl.org/2005/xbrldt"/>
  <xsd:import schemaLocation="https://xbrl.sec.gov/dei/2024/dei-2024.xsd" namespace="http://xbrl.sec.gov/dei/2024"/>
  <xsd:import schemaLocation="https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd" namespace="http://fasb.org/us-gaap/2024"/>
  <xsd:annotation>
    <xsd:appinfo>
      <link:roleType roleURI="http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation" id="Role_DocumentDocumentAndEntityInformation">
        <link:definition>100000 - Document - Document and Entity Information</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:linkbase id="lnk">
        <link:roleRef roleURI="http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation" xlink:href="ceco-20250116.xsd#Role_DocumentDocumentAndEntityInformation" xlink:type="simple"/>
        <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:title="labelLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine3" xlink:label="dei_EntityAddressAddressLine3"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="dei_DocumentType"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SolicitingMaterial" xlink:label="dei_SolicitingMaterial"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementTenderOffer" xlink:label="dei_PreCommencementTenderOffer"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_WrittenCommunications" xlink:label="dei_WrittenCommunications"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="dei_PreCommencementIssuerTenderOffer"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber"/>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine3_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line Three</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Postal Zip Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressPostalZipCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Postal Zip Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Incorporation, State or Country Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityIncorporationStateCountryCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Incorporation State Country Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Central Index Key</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityCentralIndexKey_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Central Index Key</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, State or Province</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressStateOrProvince_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, State or Province</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CoverAbstract_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Cover [Abstract]</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine1_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Address Line One</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Amendment Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_AmendmentFlag_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Amendment Flag</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, City or Town</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressCityOrTown_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, City or Town</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentType_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Type</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Title of 12(b) Security</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_Security12bTitle_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Security 12b Title</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SolicitingMaterial_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Soliciting Material</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SolicitingMaterial_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Soliciting Material</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Address, Address Line Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityAddressAddressLine2_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Address, Address Line Two</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Document Period End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_DocumentPeriodEndDate_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Document Period End Date</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Trading Symbol</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_TradingSymbol_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Trading Symbol</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_PreCommencementTenderOffer_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Pre-commencement Tender Offer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_PreCommencementTenderOffer_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Pre Commencement Tender Offer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Security Exchange Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_SecurityExchangeName_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Security Exchange Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_WrittenCommunications_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Written Communications</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_WrittenCommunications_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Written Communications</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_PreCommencementIssuerTenderOffer_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Pre-commencement Issuer Tender Offer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_PreCommencementIssuerTenderOffer_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Pre Commencement Issuer Tender Offer</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Registrant Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityRegistrantName_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Registrant Name</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Emerging Growth Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityEmergingGrowthCompany_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Emerging Growth Company</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Securities Act File Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityFileNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity File Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Entity Tax Identification Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_EntityTaxIdentificationNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Entity Tax Identification Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/label">City Area Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_CityAreaCode_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">City Area Code</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/label">Local Phone Number</link:label>
          <link:label xml:lang="en-US" xlink:type="resource" xlink:label="dei_LocalPhoneNumber_lbl" xlink:role="http://www.xbrl.org/2003/role/terseLabel">Local Phone Number</link:label>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine3" xlink:to="dei_EntityAddressAddressLine3_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressPostalZipCode" xlink:to="dei_EntityAddressPostalZipCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityIncorporationStateCountryCode" xlink:to="dei_EntityIncorporationStateCountryCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityCentralIndexKey" xlink:to="dei_EntityCentralIndexKey_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressStateOrProvince" xlink:to="dei_EntityAddressStateOrProvince_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CoverAbstract" xlink:to="dei_CoverAbstract_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine1" xlink:to="dei_EntityAddressAddressLine1_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_AmendmentFlag" xlink:to="dei_AmendmentFlag_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressCityOrTown" xlink:to="dei_EntityAddressCityOrTown_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentType" xlink:to="dei_DocumentType_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_Security12bTitle" xlink:to="dei_Security12bTitle_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SolicitingMaterial" xlink:to="dei_SolicitingMaterial_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityAddressAddressLine2" xlink:to="dei_EntityAddressAddressLine2_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_DocumentPeriodEndDate" xlink:to="dei_DocumentPeriodEndDate_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_TradingSymbol" xlink:to="dei_TradingSymbol_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_PreCommencementTenderOffer" xlink:to="dei_PreCommencementTenderOffer_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_SecurityExchangeName" xlink:to="dei_SecurityExchangeName_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_WrittenCommunications" xlink:to="dei_WrittenCommunications_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_PreCommencementIssuerTenderOffer" xlink:to="dei_PreCommencementIssuerTenderOffer_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityRegistrantName" xlink:to="dei_EntityRegistrantName_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityEmergingGrowthCompany" xlink:to="dei_EntityEmergingGrowthCompany_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityFileNumber" xlink:to="dei_EntityFileNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_EntityTaxIdentificationNumber" xlink:to="dei_EntityTaxIdentificationNumber_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_CityAreaCode" xlink:to="dei_CityAreaCode_lbl"/>
          <link:labelArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="dei_LocalPhoneNumber" xlink:to="dei_LocalPhoneNumber_lbl"/>
        </link:labelLink>
        <link:presentationLink xlink:role="http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation" xlink:title="presentationLink" xlink:type="extended">
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CoverAbstract" xlink:label="dei_CoverAbstract"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentType" xlink:label="dei_DocumentType"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_AmendmentFlag" xlink:label="dei_AmendmentFlag"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityRegistrantName" xlink:label="dei_EntityRegistrantName"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_DocumentPeriodEndDate" xlink:label="dei_DocumentPeriodEndDate"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityCentralIndexKey" xlink:label="dei_EntityCentralIndexKey"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityFileNumber" xlink:label="dei_EntityFileNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityIncorporationStateCountryCode" xlink:label="dei_EntityIncorporationStateCountryCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityTaxIdentificationNumber" xlink:label="dei_EntityTaxIdentificationNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine1" xlink:label="dei_EntityAddressAddressLine1"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine2" xlink:label="dei_EntityAddressAddressLine2"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressAddressLine3" xlink:label="dei_EntityAddressAddressLine3"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressCityOrTown" xlink:label="dei_EntityAddressCityOrTown"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressStateOrProvince" xlink:label="dei_EntityAddressStateOrProvince"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityAddressPostalZipCode" xlink:label="dei_EntityAddressPostalZipCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_CityAreaCode" xlink:label="dei_CityAreaCode"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_LocalPhoneNumber" xlink:label="dei_LocalPhoneNumber"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_WrittenCommunications" xlink:label="dei_WrittenCommunications"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SolicitingMaterial" xlink:label="dei_SolicitingMaterial"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementTenderOffer" xlink:label="dei_PreCommencementTenderOffer"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_PreCommencementIssuerTenderOffer" xlink:label="dei_PreCommencementIssuerTenderOffer"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_EntityEmergingGrowthCompany" xlink:label="dei_EntityEmergingGrowthCompany"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_Security12bTitle" xlink:label="dei_Security12bTitle"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_TradingSymbol" xlink:label="dei_TradingSymbol"/>
          <link:loc xlink:type="locator" xlink:href="https://xbrl.sec.gov/dei/2024/dei-2024.xsd#dei_SecurityExchangeName" xlink:label="dei_SecurityExchangeName"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentType" order="49.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_AmendmentFlag" order="50.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityRegistrantName" order="51.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_DocumentPeriodEndDate" order="52.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityCentralIndexKey" order="53.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityFileNumber" order="54.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityIncorporationStateCountryCode" order="55.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityTaxIdentificationNumber" order="56.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine1" order="57.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine2" order="58.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressAddressLine3" order="59.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/label"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressCityOrTown" order="60.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressStateOrProvince" order="61.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityAddressPostalZipCode" order="62.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_CityAreaCode" order="63.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_LocalPhoneNumber" order="64.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_WrittenCommunications" order="65.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_SolicitingMaterial" order="66.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_PreCommencementTenderOffer" order="67.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_PreCommencementIssuerTenderOffer" order="68.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_EntityEmergingGrowthCompany" order="69.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_Security12bTitle" order="70.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_TradingSymbol" order="71.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
          <link:presentationArc xlink:type="arc" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="dei_CoverAbstract" xlink:to="dei_SecurityExchangeName" order="72.0" priority="2" use="optional" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
        </link:presentationLink>
      </link:linkbase>
    </xsd:appinfo>
  </xsd:annotation>
</xsd:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>6
<FILENAME>R1.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.4</span><table class="report" border="0" cellspacing="2" id="idm45657264448000">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Document and Entity Information<br></strong></div></th>
<th class="th"><div>Jan. 16, 2025</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">8-K<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">CECO ENVIRONMENTAL CORP.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Jan. 16,  2025<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000003197<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">000-7099<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityIncorporationStateCountryCode', window );">Entity Incorporation State Country Code</a></td>
<td class="text">DE<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">13-2566064<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">5080 Spectrum Drive<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine2', window );">Entity Address, Address Line Two</a></td>
<td class="text">East Tower<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressAddressLine3', window );">Entity Address, Address Line Three</a></td>
<td class="text">Suite 800E<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text"> Addison<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">TX<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">75001<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">214<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">357-6181<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_WrittenCommunications', window );">Written Communications</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SolicitingMaterial', window );">Soliciting Material</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_PreCommencementTenderOffer', window );">Pre Commencement Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_PreCommencementIssuerTenderOffer', window );">Pre Commencement Issuer Tender Offer</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Emerging Growth Company</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Security 12b Title</a></td>
<td class="text">Common Stock, par value $0.01 per share<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">CECO<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine2">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 2 such as Street or Suite number</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine2</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine3">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 3 such as an Office Park</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine3</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_PreCommencementIssuerTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 13e<br> -Subsection 4c<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_PreCommencementIssuerTenderOffer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_PreCommencementTenderOffer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 14d<br> -Subsection 2b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_PreCommencementTenderOffer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SolicitingMaterial">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 14a<br> -Subsection 12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SolicitingMaterial</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_WrittenCommunications">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 425<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_WrittenCommunications</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>7
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
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
M0=5 Y3_;U UH]@TT')$%7C&9MC:CY$X*/-S^[PVPPL2.X>V+OP%02P,$%
M  @ U&XQ6K-(=.=U!   ZA$  !@   !X;"]W;W)K<VAE971S+W-H965T,2YX
M;6R-F%U3ZS80AO^*QNWT"O!'R <TR4P(.6UZ(*0D/:?33B\46XDUV)8KR03^
M?5=VL($JZW!!+%MZ_7A7>E?V<"_DDXH9T^0E33(U<F*M\VO756',4JHN1,XR
MN+(5,J4:FG+GJEPR&I6#TL0-/*_GII1GSGA8GEO*\5 4.N$96TJBBC2E\O6&
M)6(_<GSG[<0CW\7:G'#'PYSNV(KI/_*EA)9;JT0\99GB(B.2;4?.Q+^^"7IF
M0-GC&V=[]>Z8F$?9"/%D&O-HY'B&B"4LU$:"PL\SF[(D,4K \>]!U*GO:0:^
M/WY3_U(^/#S,ABHV%<EW'NEXY P<$K$M+1+]*/:_LL,#=8U>*!)5_B?[JN^E
MYY"P4%JDA\% D/*L^J4OAT"<,B X# A*[NI&)>4MU70\E&)/I.D-:N:@?-1R
M-,#QS&1EI25<Y3!.CV]%6$"0-:%91&:9YOJ5S+,JVQ"UH:OA)J:K&QX$;RK!
MX(C@;S2[('[OC 1>T/TXW 6V&C"H 8-2KW-$;RJ>F21_3S9*2TCA/S:B2N'2
MKF#F];7*:<A&#DQ<Q>0S<\8__>#WO)\1OD[-U\'4FP"N7W-F@\.'#\Z_(A"7
M-<0EJC(!@JBD^)+0G8T"'[^EB6((1[?FZ*(ZAPGTR';<I MX%C2U1@77F<ZF
M#V2V^#9_?%C<SQ;KR1V9/CPN+Q#$7HW8.RU?2R:Y,',^(K!RK)"X4CW3VZ9Z
MOT;KGQ*]*=!)FL RC-@+^<I>;6BXDE?^=?RK/H(UJ+$&IV!]X0DCBR+=,&D#
MPC6 YKSO75TA.%<USM4I./,L%#(7LK0ILM*00C(5!80.(B@B:SYQX=L90N=[
MC:%ZI_"MZ0N91Y!*ON5A!7D\>"V2?N<\Z/9Z7N\2(WQG^?XIA),H CM49V\'
MY [ZD8?,&KH6R:XW\,@JAU(KBY3<2JBT&&IC_C[JW3CJ>B^LJ"V25(%9B_WG
M3'PD;.S?QPT<)XPELX<3%UT5'*;SP//0*=E4!Q^W]\^,4],2TD3!7N%1.7M!
M->I<?=XQ? 1NRHA_4AVI@:OE#<1+*9YY%MICBFNN_\30FO+AXZ[_&6TIE :S
M_HOG1VVG1;'?]3P?8VOJAX_;?IG7"6S.CZ/@ H&/.DQ3,7S<[N]$"#%9QB+#
M2D:+2*?;/^_Y S0T3='P<7/_+KG6+(/ I&F1'1Q96:EPH;:M4M 4B@!W]95(
M>,@USW;D'J:WY#2Q;FYQE5:>IBP$N(<O)2O#PV!]53M:V%3"WOMAN[7GKT6O
ME>S=*P!NV?\CFRM5 %DK("[;"M@4@>"D(C!+F=R9?/X""CHVS#G-K/NW%L%6
MM,;[ ]S[5RPLI('S@PU9<YU8?:%%Q 2_W&6)\.F,Y%229YH4C/SH77@^R2$'
M*J82!6Z\/VCQ:4DC$\/5:[H1]A71_O* D316'^#&7(=N]A+&--NQHV\S+4*+
MR>IV\KN-R7WWYFZ^@MQ3,X$42=@6E+R+/CRJK#XL5 TM\O)E?B.T%FEY&#,*
MJ\!T@.M;(?1;PWP?J#_OC/\#4$L#!!0    ( -1N,5J?H!OPL0(  .(,   -
M    >&PO<W1Y;&5S+GAM;-U7;6O;,!#^*T(_8&YB:N*1&+9 8;"-0O-A7Y58
M=@1Z\62Y<_KKI[-L)VEU9=V'L<VAR=T]NKM'=R>9KEMWDOSAR+DCO9*ZW="C
M<\W[)&D/1ZY8^\XT7'ND,E8QYU5;)VUC.2M;<%(R6=[<9(EB0M-BK3MUIUQ+
M#J;3;D-O:%*L*Z//EI0&@U_*%">/3&[HEDFQMV)8RY20IV!>@N%@I+'$>2I\
M0Q=@:9\"O @:L!SC**&-!6,2,H3O_;C\&3!IK5>%E#/!)0V&8MTPY[C5=UX9
M%@_&%Q 9Y=VI\0QKRTZ+Y2T].PP_/LG>V)+;.<V"3J9B+7D%=*RHC_#K3),
MZ)Q17B@%JXUF X?)8Q1\V .7\@%:^*VZBMU7)/3B4PEM(+#52?2$1C&$"0K$
MOXP68E^$O?VML*01C\9][/QN]*!_[XSC]Y97HA_TOIKS8]$7>'36-/+T08I:
M*Q[V_LL)BS6;_,C16/'DL\&D'+R!6TH>N77B<&GY85FSX[V;IJFO<,[+?Y#S
MGZUSS36W3%Z2]J/_-U?Y+8R3\?1<'-&K SI;"5R$&_H5[E=YYD#VG9!.Z%$[
MBK+D^L4Y]>$=V_L+_"J^7U_RBG72[69P0\_R%UZ*3N7SJGNHR[CJ+'^&^VB1
MS;>PSR5TR7M>;D?5UOM!)%[P6<<'')XC=\,31S"?@,41P+ \& /,)WAA>?ZG
M_:S0_00,X[:*(BO49X7Z!*\8LAT^6)ZX3^Z?^$[S/$VS#*OH=AMEL,7JEF7P
M%X^&<0,/+ ]D>ENM\6[C$_+Z'& ]?6U"L)WBDXCM%*\U(/&Z@4>>Q[N-Y0$/
MK O8[$#^>!Z8J;A/FD)7,6[8"<:1/,<0F,7XC&894IT,/O'^8*<D3?,\C@ 6
M9Y"F& *G$4<P!L !0])T> \^>Q\ETWLJ.?]74_P$4$L#!!0    ( -1N,5J7
MBKL<P    !,"   +    7W)E;',O+G)E;'.=DKENPS ,0'_%T)XP!] AB#-E
M\18$^0%6H@_8$@6*19V_K]JE<9 +&7D]/!+<'FE [3BDMHNI&/T04FE:U;@!
M2+8ECVG.D4*NU"P>-8?20$3;8T.P6BP^0"X99K>]9!:G<Z17B%S7G:4]VR]/
M06^ KSI,<4)I2$LS#O#-TG\R]_,,-47E2B.56QIXT^7^=N!)T:$B6!::1<G3
MHAVE?QW']I#3Z:]C(K1Z6^CY<6A4"H[<8R6,<6*T_C6"R0_L?@!02P,$%
M  @ U&XQ6APX9>H_ 0  / (   \   !X;"]W;W)K8F]O:RYX;6R-4<MNPD ,
M_)75?D 34(M41+B4/I"J%I6*^Y)UB,4^(J\#+5]?)U%4I%YZ\GILC6=F%^=(
MQWV,1_7E74B%KIF;>9:EL@9OTDUL(,BDBN0-2TN'+#4$QJ8:@+W+IGD^R[S!
MH)>+D6M#V743&4K&& 3L@!W".?W.NU:=,.$>'?)WH?NW ZT\!O1X 5OH7*M4
MQ_-+)+S$P,9M2XK.%7HR#'9 C.4?>-N)_#3[U"-L]A]&A!1ZE@MAA92XW^CY
MC6@\@2P/7<OQ"1T#K0S#,\6VP7#H:,1%=F6CSV&L0XAS^D^,L:JPA%4L6P^!
MAQP)7"<PI!J;I%4P'@H]KB@3K'H,+"&I=1BH9+=S*J?7=G#-(O<J0YJC#&AM
M!^&C6@L5!K!O<B )+LF5&U)=Z7FFMW>3>TFH=>Y!L/?P&HT=S8\?M_P!4$L#
M!!0    ( -1N,5HD'INBK0   /@!   :    >&PO7W)E;',O=V]R:V)O;VLN
M>&UL+G)E;'.UD3T.@S ,A:\2Y0 U4*E#!4Q=6"LN$ 7S(Q(2Q:X*MR^% 9 Z
M=&&RGBU_[\E.GV@4=VZ@MO,D1FL&RF3+[.\ I%NTBB[.XS!/:A>LXEF&!KS2
MO6H0DBBZ0=@S9)[NF:*<//Y#='7=:7PX_;(X\ \PO%WHJ45D*4H5&N1,PFBV
M-L%2XLM,EJ*H,AF**I9P6B#BR2!M:59]L$].M.=Y%S?W1:[-XPFNWPQP>'3^
M 5!+ P04    " #4;C%:99!YDAD!  #/ P  $P   %M#;VYT96YT7U1Y<&5S
M72YX;6RMDTU.PS 0A:\295LE+BQ8H*8;8 M=< %C3QJK_I-G6M+;,T[:2J 2
M%85-K'C>O,^>EZS>CQ&PZ)WUV)0=47P4 E4'3F(=(GBNM"$Y2?R:MB)*M9-;
M$/?+Y8-0P1-XJBA[E.O5,[1R;ZEXZ7D;3?!-F<!B63R-PLQJ2AFC-4H2U\7!
MZQ^4ZD2HN7/08&<B+EA0BJN$7/D=<.I[.T!*1D.QD8E>I6.5Z*U .EK >MKB
MRAE#VQH%.JB]XY8:8P*IL0,@9^O1=#%-)IXPC,^[V?S!9@K(RDT*$3FQ!'_'
MG2/)W55D(TADIJ]X(;+U[/M!3EN#OI'-X_T,:3?D@6)8YL_X>\87_QO.\1'"
M[K\_L;S63AI_YHOA/UY_ 5!+ 0(4 Q0    ( -1N,5H'04UB@0   +$    0
M              "  0    !D;V-0<F]P<R]A<' N>&UL4$L! A0#%     @
MU&XQ6N>5N\/P    *P(  !$              ( !KP   &1O8U!R;W!S+V-O
M<F4N>&UL4$L! A0#%     @ U&XQ6IE<G",0!@  G"<  !,
M ( !S@$  'AL+W1H96UE+W1H96UE,2YX;6Q02P$"% ,4    " #4;C%:LTAT
MYW4$  #J$0  &               @($/"   >&PO=V]R:W-H965T<R]S:&5E
M=#$N>&UL4$L! A0#%     @ U&XQ6I^@&_"Q @  X@P   T
M ( !N@P  'AL+W-T>6QE<RYX;6Q02P$"% ,4    " #4;C%:EXJ[',     3
M @  "P              @ &6#P  7W)E;',O+G)E;'-02P$"% ,4    " #4
M;C%:'#AEZC\!   \ @  #P              @ %_$   >&PO=V]R:V)O;VLN
M>&UL4$L! A0#%     @ U&XQ6B0>FZ*M    ^ $  !H              ( !
MZQ$  'AL+U]R96QS+W=O<FMB;V]K+GAM;"YR96QS4$L! A0#%     @ U&XQ
M6F60>9(9 0  SP,  !,              ( !T!(  %M#;VYT96YT7U1Y<&5S
;72YX;6Q02P4&      D "0 ^ @  &A0

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>8
<FILENAME>Show.js
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
// Edgar(tm) Renderer was created by staff of the U.S. Securities and Exchange Commission.  Data and content created by government employees within the scope of their employment are not subject to domestic copyright protection. 17 U.S.C. 105.
var Show={};Show.LastAR=null,Show.showAR=function(a,r,w){if(Show.LastAR)Show.hideAR();var e=a;while(e&&e.nodeName!='TABLE')e=e.nextSibling;if(!e||e.nodeName!='TABLE'){var ref=((window)?w.document:document).getElementById(r);if(ref){e=ref.cloneNode(!0);
e.removeAttribute('id');a.parentNode.appendChild(e)}}
if(e)e.style.display='block';Show.LastAR=e};Show.hideAR=function(){Show.LastAR.style.display='none'};Show.toggleNext=function(a){var e=a;while(e.nodeName!='DIV')e=e.nextSibling;if(!e.style){}else if(!e.style.display){}else{var d,p_;if(e.style.display=='none'){d='block';p='-'}else{d='none';p='+'}
e.style.display=d;if(a.textContent){a.textContent=p+a.textContent.substring(1)}else{a.innerText=p+a.innerText.substring(1)}}}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>9
<FILENAME>report.css
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
/* Updated 2009-11-04 */
/* v2.2.0.24 */

/* DefRef Styles */
.report table.authRefData{
	background-color: #def;
	border: 2px solid #2F4497;
	font-size: 1em;
	position: absolute;
}

.report table.authRefData a {
	display: block;
	font-weight: bold;
}

.report table.authRefData p {
	margin-top: 0px;
}

.report table.authRefData .hide {
	background-color: #2F4497;
	padding: 1px 3px 0px 0px;
	text-align: right;
}

.report table.authRefData .hide a:hover {
	background-color: #2F4497;
}

.report table.authRefData .body {
	height: 150px;
	overflow: auto;
	width: 400px;
}

.report table.authRefData table{
	font-size: 1em;
}

/* Report Styles */
.pl a, .pl a:visited {
	color: black;
	text-decoration: none;
}

/* table */
.report {
	background-color: white;
	border: 2px solid #acf;
	clear: both;
	color: black;
	font: normal 8pt Helvetica, Arial, san-serif;
	margin-bottom: 2em;
}

.report hr {
	border: 1px solid #acf;
}

/* Top labels */
.report th {
	background-color: #acf;
	color: black;
	font-weight: bold;
	text-align: center;
}

.report th.void	{
	background-color: transparent;
	color: #000000;
	font: bold 10pt Helvetica, Arial, san-serif;
	text-align: left;
}

.report .pl {
	text-align: left;
	vertical-align: top;
	white-space: normal;
	width: 200px;
	white-space: normal; /* word-wrap: break-word; */
}

.report td.pl a.a {
	cursor: pointer;
	display: block;
	width: 200px;
	overflow: hidden;
}

.report td.pl div.a {
	width: 200px;
}

.report td.pl a:hover {
	background-color: #ffc;
}

/* Header rows... */
.report tr.rh {
	background-color: #acf;
	color: black;
	font-weight: bold;
}

/* Calendars... */
.report .rc {
	background-color: #f0f0f0;
}

/* Even rows... */
.report .re, .report .reu {
	background-color: #def;
}

.report .reu td {
	border-bottom: 1px solid black;
}

/* Odd rows... */
.report .ro, .report .rou {
	background-color: white;
}

.report .rou td {
	border-bottom: 1px solid black;
}

.report .rou table td, .report .reu table td {
	border-bottom: 0px solid black;
}

/* styles for footnote marker */
.report .fn {
	white-space: nowrap;
}

/* styles for numeric types */
.report .num, .report .nump {
	text-align: right;
	white-space: nowrap;
}

.report .nump {
	padding-left: 2em;
}

.report .nump {
	padding: 0px 0.4em 0px 2em;
}

/* styles for text types */
.report .text {
	text-align: left;
	white-space: normal;
}

.report .text .big {
	margin-bottom: 1em;
	width: 17em;
}

.report .text .more {
	display: none;
}

.report .text .note {
	font-style: italic;
	font-weight: bold;
}

.report .text .small {
	width: 10em;
}

.report sup {
	font-style: italic;
}

.report .outerFootnotes {
	font-size: 1em;
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>11
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.24.4</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>1</ContextCount>
  <ElementCount>24</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>false</FootnotesReported>
  <SegmentCount>0</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>0</UnitCount>
  <MyReports>
    <Report instance="ceco-20250116.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>100000 - Document - Document and Entity Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation</Role>
      <ShortName>Document and Entity Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="8-K" isOnlyDei="true" isUsgaap="true" original="ceco-20250116.htm">ceco-20250116.htm</File>
    <File>ceco-20250116.xsd</File>
  </InputFiles>
  <SupplementalFiles/>
  <BaseTaxonomies>
    <BaseTaxonomy items="24">http://xbrl.sec.gov/dei/2024</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>false</HasPresentationLinkbase>
  <HasCalculationLinkbase>false</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>13
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "ceco-20250116.htm": {
   "nsprefix": "ceco",
   "nsuri": "http://www.cecoenviro.com/20250116",
   "dts": {
    "inline": {
     "local": [
      "ceco-20250116.htm"
     ]
    },
    "schema": {
     "local": [
      "ceco-20250116.xsd"
     ],
     "remote": [
      "http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xl-2003-12-31.xsd",
      "http://www.xbrl.org/2003/xlink-2003-12-31.xsd",
      "http://www.xbrl.org/2005/xbrldt-2005.xsd",
      "http://www.xbrl.org/2006/ref-2006-02-27.xsd",
      "https://www.xbrl.org/2020/extensible-enumerations-2.0.xsd",
      "https://www.xbrl.org/dtr/type/2020-01-21/types.xsd",
      "https://www.xbrl.org/dtr/type/2022-03-31/types.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-roles-2024.xsd",
      "https://xbrl.fasb.org/srt/2024/elts/srt-types-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-gaap-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-roles-2024.xsd",
      "https://xbrl.fasb.org/us-gaap/2024/elts/us-types-2024.xsd",
      "https://xbrl.sec.gov/country/2024/country-2024.xsd",
      "https://xbrl.sec.gov/dei/2024/dei-2024.xsd",
      "https://xbrl.sec.gov/stpr/2024/stpr-2024.xsd"
     ]
    }
   },
   "keyStandard": 24,
   "keyCustom": 0,
   "axisStandard": 0,
   "axisCustom": 0,
   "memberStandard": 0,
   "memberCustom": 0,
   "hidden": {
    "total": 2,
    "http://xbrl.sec.gov/dei/2024": 2
   },
   "contextCount": 1,
   "entityCount": 1,
   "segmentCount": 0,
   "elementCount": 25,
   "unitCount": 0,
   "baseTaxonomies": {
    "http://xbrl.sec.gov/dei/2024": 24
   },
   "report": {
    "R1": {
     "role": "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation",
     "longName": "100000 - Document - Document and Entity Information",
     "shortName": "Document and Entity Information",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "C_6f8e9c0c-30b8-4760-80d4-369000405708",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20250116.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "C_6f8e9c0c-30b8-4760-80d4-369000405708",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "p",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "ceco-20250116.htm",
      "first": true,
      "unique": true
     }
    }
   },
   "tag": {
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Amendment Flag",
        "terseLabel": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CityAreaCode",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "City Area Code",
        "terseLabel": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Period End Date",
        "terseLabel": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period. The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "DocumentType",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Document Type",
        "terseLabel": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Address Line One",
        "terseLabel": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine2": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine2",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Address Line Two",
        "terseLabel": "Entity Address, Address Line Two",
        "documentation": "Address Line 2 such as Street or Suite number"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine3": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressAddressLine3",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Address Line Three",
        "documentation": "Address Line 3 such as an Office Park"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, City or Town",
        "terseLabel": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, Postal Zip Code",
        "terseLabel": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Address, State or Province",
        "terseLabel": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Central Index Key",
        "terseLabel": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Emerging Growth Company",
        "terseLabel": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Securities Act File Number",
        "terseLabel": "Entity File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Incorporation, State or Country Code",
        "terseLabel": "Entity Incorporation State Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Registrant Name",
        "terseLabel": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Entity Tax Identification Number",
        "terseLabel": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r1"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Local Phone Number",
        "terseLabel": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "dei_PreCommencementIssuerTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "PreCommencementIssuerTenderOffer",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pre-commencement Issuer Tender Offer",
        "terseLabel": "Pre Commencement Issuer Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 13e-4(c) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r3"
     ]
    },
    "dei_PreCommencementTenderOffer": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "PreCommencementTenderOffer",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Pre-commencement Tender Offer",
        "terseLabel": "Pre Commencement Tender Offer",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as pre-commencement communications pursuant to Rule 14d-2(b) under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r5"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "Security12bTitle",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Title of 12(b) Security",
        "terseLabel": "Security 12b Title",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r0"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Security Exchange Name",
        "terseLabel": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r2"
     ]
    },
    "dei_SolicitingMaterial": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "SolicitingMaterial",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Soliciting Material",
        "terseLabel": "Soliciting Material",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as soliciting material pursuant to Rule 14a-12 under the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r4"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "TradingSymbol",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Trading Symbol",
        "terseLabel": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "dei_WrittenCommunications": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2024",
     "localname": "WrittenCommunications",
     "presentation": [
      "http://www.cecoenviro.com/20250116/taxonomy/role/Role_DocumentDocumentAndEntityInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Written Communications",
        "terseLabel": "Written Communications",
        "documentation": "Boolean flag that is true when the Form 8-K filing is intended to satisfy the filing obligation of the registrant as written communications pursuant to Rule 425 under the Securities Act."
       }
      }
     },
     "auth_ref": [
      "r6"
     ]
    }
   }
  }
 },
 "std_ref": {
  "r0": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r1": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r2": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r3": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "13e",
   "Subsection": "4c"
  },
  "r4": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "14a",
   "Subsection": "12"
  },
  "r5": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "14d",
   "Subsection": "2b"
  },
  "r6": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "425"
  }
 }
}
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>ZIP
<SEQUENCE>14
<FILENAME>0000950170-25-006565-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000950170-25-006565-xbrl.zip
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
MGC\VHGEYLQ%Q;2OR,0TH+#8CW83%)N>8L-#S7)T3W;>7U3;20CZ$F:Q(OZP
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
M[(]U@N%JAIH1K'A D:23L%4)"#=/'")K$"GV,=-H,*AL5L)N3)>A->5ZJ;_
M6_CIN]IZ1)O,;R91^Y8-;/MOL)H,EE'E5=#L*;168\3QZWOW8[B,(#9@6TEF
M'-.0\XZ =;Z#++.*K"KO2_%;>)$FVZ#8C:#X0Q&?/">F1^=!5SX@V[(_'XE4
M$SC%E\A1QM%&O+@2<1S[B*.G9G(N $-@:RM4W<J?U+J?: L-!\P,7(0FWT"0
M.4Y<JO)HCI-#! >B:X"4;'9#PQBR(?,2<&QN%B48EN.: R ^X8IZ G%$=J6;
M*543LT\::@=X'08TU5EPF.@2.T$1XZZ3Y38\]YGPW&OI:N0VV0F>L;,"HXWU
M.LMR14&_M09818%^)D=,5ABD>K@7HK9W.6B[T1&?,[UNYK>9WXV8WXW*_]Q>
MF3BF8V>%=.Z'KRHY5?W2Y"H\#B->GZT]*=1I/P<12Z;Z#DREF9?#7+NJD,L=
MO'LVH=OO<FB;GNJK,K\@T[O-]Y[9;MXY#(62RUT-6&@'<]"'W1O0,%^F28VM
MDA_Z<@+;L".+A5RZOTLR^HV(NNT).5\3*B%("NI:T"ZDL9YX.VAB1,=3]B"Q
MC6D6Z#!=>H,1##[4[TT)JZPP1!T]IXA599Z'B$ZA'3E;(_B$%VA#.(B"]B$E
MX:C33'LTO5 %!9YP.-$LQ1 8WJ2,+4D]ROR$(^^-35!NF_@#O:Y-A8JI31'>
M*PJNS51146,ADN=#;GF3J946)L;48%K#]L).HCU =COV5.'ZU7*L"UTO+SOB
MF"92L<.@M5YPX.=9+S-8L*56!;KB8:4P9H?[:_$].:<0GBJ*?F :-&+(LQ%3
M,GC3V:&^"!9]XICGS4K-%^U=-N^V89]IC2X:(&PP42L.0R3#@%;0*O-AMQ[M
MNL4 J@-SRN>SB96-1-<*AQ<116(>%_)E&RML226QA&AF?M(S7<4QT J,M.V)
MGV0(>WB0>ARCA6?B<!L5?-UB],H<XBL9N"]#.M AA:N=>%]R\.DOY.)N:.,F
MJM@T?12WN*9M_I.IH]Z?Y..CB3,IG// ;+*'6UN<3G8_R:]JJA5/[-TMS"M
MQ(I9622L=4Y)-3Z' D\J<);)NBPS[.@Q][.]=5$_]\_O![.)&T=.^7/3:WF)
MSED-=H=;!3);NIF8%  VSKK80I(>C 1G\K =$$QB95X\CK:[F*:'22VV0E%
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
MT.E1^PY50C[U7U9\!K)<$]ZA&LW462T_8%!<&! ETYB2V-!'XE@U^0\L7N0
MI\]O$].OZ'.$JYVR+]VH0\!4"Y!<-R"!YK,QR3?S^WO/[T:Y5&[=^L)V]DOV
M&3VY/3;Y\L=_/+D]J^?%C_\/4$L! A0#%     @ U&XQ6O7GL3W@$P  RK\
M !$              ( !     &-E8V\M,C R-3 Q,38N:'1M4$L! A0#%
M  @ U&XQ6N5/9]J_"0  _'L  !$              ( !#Q0  &-E8V\M,C R
M-3 Q,38N>'-D4$L! A0#%     @ U&XQ6M\1E3\V&P  S9(   \
M     ( !_1T  &-E8V\M97@Y.5\Q+FAT;5!+!08      P # +L   !@.0
"   !

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>15
<FILENAME>ceco-20250116_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2024"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:xlink="http://www.w3.org/1999/xlink">
    <link:schemaRef xlink:href="ceco-20250116.xsd" xlink:type="simple"/>
    <context id="C_6f8e9c0c-30b8-4760-80d4-369000405708">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000003197</identifier>
        </entity>
        <period>
            <startDate>2025-01-16</startDate>
            <endDate>2025-01-16</endDate>
        </period>
    </context>
    <dei:EntityCentralIndexKey
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_09b96a0b-3583-4ad5-b8be-b9f574ef41ab">0000003197</dei:EntityCentralIndexKey>
    <dei:AmendmentFlag
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_c4e905de-4c38-4f0a-95c6-91da24a087d9">false</dei:AmendmentFlag>
    <dei:DocumentType
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_18cf86e7-cf37-483a-80a6-f123f2737d69">8-K</dei:DocumentType>
    <dei:DocumentPeriodEndDate
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_3f0b02f5-9e75-48cd-aea4-a6c924a12b66">2025-01-16</dei:DocumentPeriodEndDate>
    <dei:EntityRegistrantName
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_7b7f9342-22f7-4b9f-b620-b2618c7adbe0">CECO ENVIRONMENTAL CORP.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_fe5edcd2-76e7-4cdd-b8a3-daaa2a5f2d14">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityFileNumber
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_0bb8137d-fe84-4aed-b7a1-851a0948fe74">000-7099</dei:EntityFileNumber>
    <dei:EntityTaxIdentificationNumber
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_b916424b-d2a3-49c1-94bb-f6e39f2acdb8">13-2566064</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_1cb52d4a-1155-43f6-9f31-8e63e85c6063">5080 Spectrum Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_6615855e-20d7-44bd-9742-71f8a9b1b58a">East Tower</dei:EntityAddressAddressLine2>
    <dei:EntityAddressAddressLine3
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_db83101e-7ebe-4d53-a712-77d359f49d23">Suite 800E</dei:EntityAddressAddressLine3>
    <dei:EntityAddressCityOrTown
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_859b50d8-fab1-424b-a306-ce04f21496a8"> Addison</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_149712c7-2a6c-4d2e-8e09-1b920ecda38c">TX</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_8dae3197-8ae5-42e9-9693-650bc8a716a2">75001</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_7f0754f9-aba7-4f13-97ee-0dc8871e0195">214</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_b9ea729e-5a3e-4b8e-b6ce-e15a52a56764">357-6181</dei:LocalPhoneNumber>
    <dei:WrittenCommunications
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_44ecc023-46f0-424f-a091-57b56f7b26c4">false</dei:WrittenCommunications>
    <dei:SolicitingMaterial
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_d755dc74-6f5f-4fb3-ac54-704b80ec2b0f">false</dei:SolicitingMaterial>
    <dei:PreCommencementTenderOffer
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_29738bbb-c07a-4e7a-8c31-db3b2b197cc2">false</dei:PreCommencementTenderOffer>
    <dei:PreCommencementIssuerTenderOffer
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_046186e1-3d02-4d68-92aa-7bf9994184e7">false</dei:PreCommencementIssuerTenderOffer>
    <dei:Security12bTitle
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_5088bf03-f24e-4904-af1f-9555cf5c0971">Common Stock, par value $0.01 per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_904de8d0-a81f-464d-af81-dbd937439f3e">CECO</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_beb93b2d-c1d1-47d9-b8d9-911cb279cb86">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityEmergingGrowthCompany
      contextRef="C_6f8e9c0c-30b8-4760-80d4-369000405708"
      id="F_0a4fca13-1b59-4394-a432-372e255d25bd">false</dei:EntityEmergingGrowthCompany>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
