{"id":16263734,"date":"2025-09-22T15:34:23","date_gmt":"2025-09-22T19:34:23","guid":{"rendered":"https:\/\/moovair.com\/?page_id=16263734"},"modified":"2026-02-17T11:33:25","modified_gmt":"2026-02-17T16:33:25","slug":"assistant-multizone","status":"publish","type":"page","link":"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/","title":{"rendered":"Assistant multizone"},"content":{"rendered":"<p>[et_pb_section fb_built=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb height=\u00a0\u00bb100%\u00a0\u00bb hover_enabled=\u00a0\u00bb0&Prime; background_enable_image_tablet=\u00a0\u00bboff\u00a0\u00bb background_enable_image_phone=\u00a0\u00bboff\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb transform_styles_last_edited=\u00a0\u00bboff|desktop\u00a0\u00bb transform_scale_last_edited=\u00a0\u00bboff|desktop\u00a0\u00bb transform_translate_last_edited=\u00a0\u00bboff|desktop\u00a0\u00bb transform_rotate_last_edited=\u00a0\u00bboff|desktop\u00a0\u00bb transform_skew_last_edited=\u00a0\u00bboff|desktop\u00a0\u00bb transform_origin_last_edited=\u00a0\u00bboff|desktop\u00a0\u00bb sticky_enabled=\u00a0\u00bb0&Prime;][et_pb_row column_structure=\u00a0\u00bb1_5,3_5,1_5&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb max_height=\u00a0\u00bb100%\u00a0\u00bb custom_padding=\u00a0\u00bb||100px||false|false\u00a0\u00bb hover_enabled=\u00a0\u00bb0&Prime; global_colors_info=\u00a0\u00bb{}\u00a0\u00bb sticky_enabled=\u00a0\u00bb0&Prime; make_equal=\u00a0\u00bbon\u00a0\u00bb transform_styles_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb transform_scale_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb transform_translate_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb transform_rotate_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb transform_skew_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb transform_origin_last_edited=\u00a0\u00bbon|phone\u00a0\u00bb][et_pb_column type=\u00a0\u00bb1_5&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_column][et_pb_column type=\u00a0\u00bb3_5&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb hover_enabled=\u00a0\u00bb0&Prime; global_colors_info=\u00a0\u00bb{}\u00a0\u00bb custom_padding=\u00a0\u00bb|5px||5px|false|false\u00a0\u00bb sticky_enabled=\u00a0\u00bb0&Prime;][et_pb_code admin_label=\u00a0\u00bbCSS\u00a0\u00bb _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb hover_enabled=\u00a0\u00bb0&Prime; global_colors_info=\u00a0\u00bb{}\u00a0\u00bb sticky_enabled=\u00a0\u00bb0&Prime;]<style class=\"wpcode-css-snippet\">\/* Hide actions (Print button) on mobile *\/\r\n@media only screen and (max-width: 820px){\r\n.mzst-actions {\r\n    display:none !important;\r\n  }\r\n}\r\n\/* Print-specific visibility for brand logo (matches colleague approach) *\/\r\n@media print {\r\n  .mzst-logo { display: none !important; }\r\n  .mzst-print-container .mzst-logo { display: inline !important; }\r\n}\r\n\r\n\/* Submittal link styling *\/\r\n#mzst-en .mzst-submittal,\r\n#mzst-fr .mzst-submittal{\r\n  display:inline-block;\r\n  font-size:12px;\r\n  margin-top:4px;\r\n}\r\n#mzst-en .mzst-submittal.inline,\r\n#mzst-fr .mzst-submittal.inline{\r\n  margin-top:0;\r\n  margin-left:8px;\r\n  font-size:inherit;\r\n}\r\n@media print {\r\n  #mzst-en .mzst-submittal,\r\n  #mzst-fr .mzst-submittal{\r\n    display:none !important;\r\n  }\r\n}\r\n\r\n\/* Submittal in detail grid *\/\r\n#mzst-en .mzst-detail-grid .mzst-submittal.inline,\r\n#mzst-fr .mzst-detail-grid .mzst-submittal.inline{\r\n  font-size:16px;\r\n}\r\n\r\n\/* Hide submittal + items with submittal in print *\/\r\n@media print {\r\n  #mzst-en .mzst-detail-grid .mzst-submittal.inline,\r\n  #mzst-fr .mzst-detail-grid .mzst-submittal.inline,\r\n  #mzst-en .mzst-detail-item.mzst-detail-has-submittal,\r\n  #mzst-fr .mzst-detail-item.mzst-detail-has-submittal {\r\n    display: none !important;\r\n  }\r\n}\r\n\r\n@media print {\r\n  #mzst-en .mzst-instr-list,\r\n  #mzst-fr .mzst-instr-list,\r\n  #mzst-en .mzst-notes,\r\n  #mzst-fr .mzst-notes {\r\n    list-style: decimal;\r\n  }\r\n}\r\n\r\n\/* Card wrapper *\/\r\n#mzst-en .mzst-wrap .mzst-card,\r\n#mzst-fr .mzst-wrap .mzst-card{\r\n  box-sizing:border-box;\r\n}\r\n\r\n\/* Instruction block *\/\r\n#mzst-en .mzst-instr-title,\r\n#mzst-fr .mzst-instr-title{\r\n  font-weight:600;\r\n  margin-bottom:6px;\r\n}\r\n#mzst-en .mzst-instr-list,\r\n#mzst-fr .mzst-instr-list{\r\n  padding-left:18px;\r\n  margin:0;\r\n}\r\n\r\n\/* ODU Details (no gap) *\/\r\n#mzst-en .mzst-detail-grid,\r\n#mzst-fr .mzst-detail-grid{\r\n  display:flex;\r\n  flex-wrap:wrap;\r\n  max-width:1100px;\r\n  margin:0 auto;\r\n}\r\n#mzst-en .mzst-detail-item,\r\n#mzst-fr .mzst-detail-item{\r\n  width:calc(50% - 10px);\r\n  margin:0 10px 10px 0;\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:space-between;\r\n  padding:10px 12px;\r\n  border:1px solid #e5e7eb;\r\n  border-radius:10px;\r\n  background:#fff;\r\n}\r\n#mzst-en .mzst-detail-label,\r\n#mzst-fr .mzst-detail-label{\r\n  color:#374151;\r\n}\r\n#mzst-en .mzst-detail-value,\r\n#mzst-fr .mzst-detail-value{\r\n  font-weight:600;\r\n  color:#111827;\r\n  white-space:nowrap;\r\n}\r\n@media only screen and (max-width: 820px){\r\n  #mzst-en .mzst-detail-item,\r\n  #mzst-fr .mzst-detail-item{\r\n    width:100%;\r\n    margin-right:0;\r\n  }\r\n}\r\n\r\n\/* Stack helpers (vertical spacing without gap) *\/\r\n#mzst-en .mzst-stack-4  > * + *,\r\n#mzst-fr .mzst-stack-4  > * + *{ margin-top:4px; }\r\n#mzst-en .mzst-stack-6  > * + *,\r\n#mzst-fr .mzst-stack-6  > * + *{ margin-top:6px; }\r\n#mzst-en .mzst-stack-8  > * + *,\r\n#mzst-fr .mzst-stack-8  > * + *{ margin-top:8px; }\r\n#mzst-en .mzst-stack-10 > * + *,\r\n#mzst-fr .mzst-stack-10 > * + *{ margin-top:10px; }\r\n\r\n\/* Horizontal gap for Line Set Length input *\/\r\n#mzst-en label.mzst-stack-4 > input.mzst-line,\r\n#mzst-fr label.mzst-stack-4 > input.mzst-line{\r\n  margin-left: 12px;\r\n}\r\n\/* Add horizontal space between ODU label text and dropdown *\/\r\n#mzst-en label.mzst-stack-6 > select.mzst-odu,\r\n#mzst-fr label.mzst-stack-6 > select.mzst-odu{\r\n  margin-left: 12px;\r\n}\r\n\r\n\r\n\/* Color styles (shared) *\/\r\n.mzst-box { border:1px solid #e5e7eb; border-radius:12px; padding:12px; }\r\n.mzst-color-ok   { border-color:#86efac; background:#f0fdf4; color:#064e3b; }\r\n.mzst-color-error{ border-color:#fca5a5; background:#fef2f2; color:#7f1d1d; }\r\n.mzst-color-warn { border-color:#fde68a; background:#fffbeb; color:#78350f; }\r\n\r\n\/* Input error highlight *\/\r\n#mzst-en .mzst-input-error,\r\n#mzst-fr .mzst-input-error{\r\n  border-color:#fca5a5 !important;\r\n  background:#fef2f2 !important;\r\n  color:#7f1d1d !important;\r\n}\r\n\r\n\/* BoM table *\/\r\n#mzst-en .mzst-bom-table,\r\n#mzst-fr .mzst-bom-table{\r\n  width:100%;\r\n  border-collapse:collapse;\r\n}\r\n#mzst-en .mzst-bom-table th,\r\n#mzst-en .mzst-bom-table td,\r\n#mzst-fr .mzst-bom-table th,\r\n#mzst-fr .mzst-bom-table td{\r\n  border:1px solid #e5e7eb;\r\n  padding:8px;\r\n  text-align:left;\r\n}\r\n#mzst-en .mzst-bom-table thead th,\r\n#mzst-fr .mzst-bom-table thead th{\r\n  font-weight:600;\r\n}\r\n\r\n\/* IDU image *\/\r\n#mzst-en .mzst-idu-img img,\r\n#mzst-fr .mzst-idu-img img{\r\n  max-width:220px;\r\n  height:auto;\r\n  border:1px solid #e5e7eb;\r\n  border-radius:8px;\r\n}\r\n\r\n\/* ODU image *\/\r\n#mzst-en .mzst-odu-img img,\r\n#mzst-fr .mzst-odu-img img{\r\n  max-width:260px;\r\n  height:auto;\r\n  border:1px solid #e5e7eb;\r\n  border-radius:8px;\r\n}\r\n\r\n\/* Print image handling *\/\r\n@media print {\r\n  #mzst-en .mzst-idu-img,\r\n  #mzst-en .mzst-idu-img *,\r\n  #mzst-fr .mzst-idu-img,\r\n  #mzst-fr .mzst-idu-img *,\r\n  #mzst-en .mzst-odu-img,\r\n  #mzst-en .mzst-odu-img *,\r\n  #mzst-fr .mzst-odu-img,\r\n  #mzst-fr .mzst-odu-img *{\r\n    break-inside: avoid;\r\n    page-break-inside: avoid;\r\n  }\r\n}\r\n\r\n\/* Print overrides for iframe clone (.mzst-print-container) *\/\r\n@media print {\r\n  \/* Hide entire Instructions block in print *\/\r\n  .mzst-print-container .mzst-instructions {\r\n    display: none !important;\r\n  }\r\n  \/* Instructions title + list spacing in print clone *\/\r\n  .mzst-print-container .mzst-instr-title{\r\n    font-weight:600;\r\n    margin-bottom:6px;\r\n  }\r\n\r\n  .mzst-print-container .mzst-instr-list,\r\n  .mzst-print-container .mzst-notes{\r\n    padding-left:18px;\r\n    margin:0;\r\n    list-style:decimal;\r\n  }\r\n\r\n  \/* Hide all submittal links + dedicated ODU submittal row in print *\/\r\n  .mzst-print-container .mzst-detail-grid .mzst-submittal.inline,\r\n  .mzst-print-container .mzst-detail-item.mzst-detail-has-submittal,\r\n  .mzst-print-container .mzst-submittal {\r\n    display: none !important;\r\n  }\r\n\r\n  \/* ODU detail grid styling *\/\r\n  .mzst-print-container .mzst-detail-grid{\r\n    display:flex;\r\n    flex-wrap:wrap;\r\n    margin:0;\r\n    padding:0;\r\n  }\r\n  .mzst-print-container .mzst-detail-item{\r\n    width:calc(50% - 6px);\r\n    margin:0 6px 6px 0;\r\n    display:flex;\r\n    align-items:center;\r\n    justify-content:space-between;\r\n    padding:6px 10px;\r\n    border-radius:9999px;\r\n    border:1px solid #e5e7eb;\r\n    background:#fff;\r\n  }\r\n  .mzst-print-container .mzst-detail-label{\r\n    color:#374151;\r\n  }\r\n  .mzst-print-container .mzst-detail-value{\r\n    font-weight:600;\r\n    color:#111827;\r\n    margin-left:8px;\r\n    white-space:nowrap;\r\n  }\r\n  .mzst-print-container .mzst-card.mzst-odu-details h3{\r\n    margin: 0 0 6px 0 !important;\r\n  }\r\n  \/* Reduce horizontal padding of ODU Details card *\/\r\n  .mzst-print-container .mzst-card.mzst-odu-details{\r\n    padding: 8px 6px !important;   \r\n  }\r\n\r\n  \/* Stack helpers *\/\r\n  .mzst-print-container .mzst-stack-4  > * + *{ margin-top:4px; }\r\n  .mzst-print-container .mzst-stack-6  > * + *{ margin-top:6px; }\r\n  .mzst-print-container .mzst-stack-8  > * + *{ margin-top:8px; }\r\n  .mzst-print-container .mzst-stack-10 > * + *{ margin-top:10px; }\r\n\r\n  \/* BoM table *\/\r\n  .mzst-print-container .mzst-bom-table{\r\n    width:100%;\r\n    border-collapse:collapse;\r\n  }\r\n  .mzst-print-container .mzst-bom-table th,\r\n  .mzst-print-container .mzst-bom-table td{\r\n    border:1px solid #e5e7eb;\r\n    padding:8px;\r\n    text-align:left;\r\n  }\r\n  .mzst-print-container .mzst-bom-table thead th{\r\n    font-weight:600;\r\n  }\r\n\r\n\r\n  \/* Images *\/\r\n  .mzst-print-container .mzst-idu-img img{\r\n    max-width:220px;\r\n    height:auto;\r\n    border:1px solid #e5e7eb;\r\n    border-radius:8px;\r\n  }\r\n  .mzst-print-container .mzst-odu-img img{\r\n    max-width:220px;\r\n    height:auto;\r\n    border:1px solid #e5e7eb;\r\n    border-radius:8px;\r\n  }\r\n  .mzst-print-container .mzst-idu-img,\r\n  .mzst-print-container .mzst-idu-img *,\r\n  .mzst-print-container .mzst-odu-img,\r\n  .mzst-print-container .mzst-odu-img *{\r\n    break-inside: avoid;\r\n    page-break-inside: avoid;\r\n  }\r\n\r\n  \/* Input error highlight *\/\r\n  .mzst-print-container .mzst-input-error{\r\n    border-color:#fca5a5 !important;\r\n    background:#fef2f2 !important;\r\n    color:#7f1d1d !important;\r\n  }\r\n}\r\n\/* =========================================================\r\n   GLOBAL TEXT UNIFORMITY (CSS-only, safe with current JS)\r\n   - Force neutral UI text to #111827 (wins against inline greys)\r\n   - Preserve evaluation\/warning colors + red input-error states\r\n   - Preserve submittal links\u2019 theme orange\r\n   Applies to screen (#mzst-en\/#mzst-fr) + print iframe (.mzst-print-container)\r\n   ========================================================= *\/\r\n\r\n\/* 1) Force neutral text color & opacity everywhere in the tool *\/\r\n#mzst-en *,\r\n#mzst-fr *,\r\n.mzst-print-container * {\r\n  color: #111827 !important;\r\n  opacity: 1 !important;\r\n}\r\n\r\n\/* 2) Restore evaluation tones (scoped to tool roots + print clone; includes descendants) *\/\r\n#mzst-en .mzst-color-ok,    #mzst-en .mzst-color-ok *,\r\n#mzst-fr .mzst-color-ok,    #mzst-fr .mzst-color-ok *,\r\n.mzst-print-container .mzst-color-ok, .mzst-print-container .mzst-color-ok * {\r\n  color: #064e3b !important;\r\n}\r\n\r\n#mzst-en .mzst-color-warn,  #mzst-en .mzst-color-warn *,\r\n#mzst-fr .mzst-color-warn,  #mzst-fr .mzst-color-warn *,\r\n.mzst-print-container .mzst-color-warn, .mzst-print-container .mzst-color-warn * {\r\n  color: #78350f !important;\r\n}\r\n\r\n#mzst-en .mzst-color-error, #mzst-en .mzst-color-error *,\r\n#mzst-fr .mzst-color-error, #mzst-fr .mzst-color-error *,\r\n.mzst-print-container .mzst-color-error, .mzst-print-container .mzst-color-error * {\r\n  color: #7f1d1d !important;\r\n}\r\n\r\n\/* 3) Preserve \u201cred until resolved\u201d input state (and any descendants) *\/\r\n#mzst-en .mzst-input-error, #mzst-en .mzst-input-error *,\r\n#mzst-fr .mzst-input-error, #mzst-fr .mzst-input-error *,\r\n.mzst-print-container .mzst-input-error, .mzst-print-container .mzst-input-error * {\r\n  color: #7f1d1d !important;\r\n}\r\n\r\n\/* 4) Keep submittal links orange *\/\r\n#mzst-en a.mzst-submittal,\r\n#mzst-fr a.mzst-submittal {\r\n  color: #ec6608 !important;\r\n  text-decoration: underline;\r\n  text-underline-offset: 2px;\r\n  text-decoration-thickness: 1px;\r\n}<\/style>[\/et_pb_code][et_pb_code _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb hover_enabled=\u00a0\u00bb0&Prime; global_colors_info=\u00a0\u00bb{}\u00a0\u00bb sticky_enabled=\u00a0\u00bb0&Prime; custom_margin=\u00a0\u00bb|5px||5px|false|false\u00a0\u00bb overflow-x=\u00a0\u00bbhidden\u00a0\u00bb overflow-y=\u00a0\u00bbhidden\u00a0\u00bb]<div id=\"mzst-tool\"\r\n     class=\"mzst-scope\"\r\n     data-json=\"https:\/\/cdn2.moovair.com\/appjs\/JSN-M-MZTOOL-14-EN-FR-092225.json\">\r\n<\/div>\r\n\r\n<script>\r\n(function () {\r\n  var href = window.location.href.toLowerCase();\r\n\r\n  \/\/ Detect language from URL: fr-ca -> French, en-ca (or anything else) -> English\r\n  var isFrench = href.indexOf('fr-ca') !== -1;\r\n  var langCode = isFrench ? 'FR' : 'EN';\r\n  var containerId = isFrench ? 'mzst-fr' : 'mzst-en';\r\n\r\n  var container = document.getElementById('mzst-tool');\r\n  if (!container) return;\r\n\r\n  \/\/ Set the expected id and data-lang before loading the app script\r\n  container.id = containerId;\r\n  container.setAttribute('data-lang', langCode);\r\n\r\n  \/\/ Load the Moovair sizing tool app\r\n  var s = document.createElement('script');\r\n  s.src = 'https:\/\/cdn2.moovair.com\/appjs\/mzst-app.min.js';\r\n  s.async = true;\r\n  s.referrerPolicy = 'no-referrer';\r\n  document.head.appendChild(s);\r\n})();\r\n<\/script>[\/et_pb_code][\/et_pb_column][et_pb_column type=\u00a0\u00bb1_5&Prime; _builder_version=\u00a0\u00bb4.22.1&Prime; _module_preset=\u00a0\u00bbdefault\u00a0\u00bb global_colors_info=\u00a0\u00bb{}\u00a0\u00bb][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p><style class=\"wpcode-css-snippet\">\/* Hide actions (Print button) on mobile *\/\r\n@media only screen and (max-width: 820px){\r\n.mzst-actions {\r\n    display:none !important;\r\n  }\r\n}\r\n\/* Print-specific visibility for brand logo (matches colleague approach) *\/\r\n@media print {\r\n  .mzst-logo { display: none !important; }\r\n  .mzst-print-container .mzst-logo { display: inline !important; }\r\n}\r\n\r\n\/* Submittal link styling *\/\r\n#mzst-en .mzst-submittal,\r\n#mzst-fr .mzst-submittal{\r\n  display:inline-block;\r\n  font-size:12px;\r\n  margin-top:4px;\r\n}\r\n#mzst-en .mzst-submittal.inline,\r\n#mzst-fr .mzst-submittal.inline{\r\n  margin-top:0;\r\n  margin-left:8px;\r\n  font-size:inherit;\r\n}\r\n@media print {\r\n  #mzst-en .mzst-submittal,\r\n  #mzst-fr .mzst-submittal{\r\n    display:none !important;\r\n  }\r\n}\r\n\r\n\/* Submittal in detail grid *\/\r\n#mzst-en .mzst-detail-grid .mzst-submittal.inline,\r\n#mzst-fr .mzst-detail-grid .mzst-submittal.inline{\r\n  font-size:16px;\r\n}\r\n\r\n\/* Hide submittal + items with submittal in print *\/\r\n@media print {\r\n  #mzst-en .mzst-detail-grid .mzst-submittal.inline,\r\n  #mzst-fr .mzst-detail-grid .mzst-submittal.inline,\r\n  #mzst-en .mzst-detail-item.mzst-detail-has-submittal,\r\n  #mzst-fr .mzst-detail-item.mzst-detail-has-submittal {\r\n    display: none !important;\r\n  }\r\n}\r\n\r\n@media print {\r\n  #mzst-en .mzst-instr-list,\r\n  #mzst-fr .mzst-instr-list,\r\n  #mzst-en .mzst-notes,\r\n  #mzst-fr .mzst-notes {\r\n    list-style: decimal;\r\n  }\r\n}\r\n\r\n\/* Card wrapper *\/\r\n#mzst-en .mzst-wrap .mzst-card,\r\n#mzst-fr .mzst-wrap .mzst-card{\r\n  box-sizing:border-box;\r\n}\r\n\r\n\/* Instruction block *\/\r\n#mzst-en .mzst-instr-title,\r\n#mzst-fr .mzst-instr-title{\r\n  font-weight:600;\r\n  margin-bottom:6px;\r\n}\r\n#mzst-en .mzst-instr-list,\r\n#mzst-fr .mzst-instr-list{\r\n  padding-left:18px;\r\n  margin:0;\r\n}\r\n\r\n\/* ODU Details (no gap) *\/\r\n#mzst-en .mzst-detail-grid,\r\n#mzst-fr .mzst-detail-grid{\r\n  display:flex;\r\n  flex-wrap:wrap;\r\n  max-width:1100px;\r\n  margin:0 auto;\r\n}\r\n#mzst-en .mzst-detail-item,\r\n#mzst-fr .mzst-detail-item{\r\n  width:calc(50% - 10px);\r\n  margin:0 10px 10px 0;\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:space-between;\r\n  padding:10px 12px;\r\n  border:1px solid #e5e7eb;\r\n  border-radius:10px;\r\n  background:#fff;\r\n}\r\n#mzst-en .mzst-detail-label,\r\n#mzst-fr .mzst-detail-label{\r\n  color:#374151;\r\n}\r\n#mzst-en .mzst-detail-value,\r\n#mzst-fr .mzst-detail-value{\r\n  font-weight:600;\r\n  color:#111827;\r\n  white-space:nowrap;\r\n}\r\n@media only screen and (max-width: 820px){\r\n  #mzst-en .mzst-detail-item,\r\n  #mzst-fr .mzst-detail-item{\r\n    width:100%;\r\n    margin-right:0;\r\n  }\r\n}\r\n\r\n\/* Stack helpers (vertical spacing without gap) *\/\r\n#mzst-en .mzst-stack-4  > * + *,\r\n#mzst-fr .mzst-stack-4  > * + *{ margin-top:4px; }\r\n#mzst-en .mzst-stack-6  > * + *,\r\n#mzst-fr .mzst-stack-6  > * + *{ margin-top:6px; }\r\n#mzst-en .mzst-stack-8  > * + *,\r\n#mzst-fr .mzst-stack-8  > * + *{ margin-top:8px; }\r\n#mzst-en .mzst-stack-10 > * + *,\r\n#mzst-fr .mzst-stack-10 > * + *{ margin-top:10px; }\r\n\r\n\/* Horizontal gap for Line Set Length input *\/\r\n#mzst-en label.mzst-stack-4 > input.mzst-line,\r\n#mzst-fr label.mzst-stack-4 > input.mzst-line{\r\n  margin-left: 12px;\r\n}\r\n\/* Add horizontal space between ODU label text and dropdown *\/\r\n#mzst-en label.mzst-stack-6 > select.mzst-odu,\r\n#mzst-fr label.mzst-stack-6 > select.mzst-odu{\r\n  margin-left: 12px;\r\n}\r\n\r\n\r\n\/* Color styles (shared) *\/\r\n.mzst-box { border:1px solid #e5e7eb; border-radius:12px; padding:12px; }\r\n.mzst-color-ok   { border-color:#86efac; background:#f0fdf4; color:#064e3b; }\r\n.mzst-color-error{ border-color:#fca5a5; background:#fef2f2; color:#7f1d1d; }\r\n.mzst-color-warn { border-color:#fde68a; background:#fffbeb; color:#78350f; }\r\n\r\n\/* Input error highlight *\/\r\n#mzst-en .mzst-input-error,\r\n#mzst-fr .mzst-input-error{\r\n  border-color:#fca5a5 !important;\r\n  background:#fef2f2 !important;\r\n  color:#7f1d1d !important;\r\n}\r\n\r\n\/* BoM table *\/\r\n#mzst-en .mzst-bom-table,\r\n#mzst-fr .mzst-bom-table{\r\n  width:100%;\r\n  border-collapse:collapse;\r\n}\r\n#mzst-en .mzst-bom-table th,\r\n#mzst-en .mzst-bom-table td,\r\n#mzst-fr .mzst-bom-table th,\r\n#mzst-fr .mzst-bom-table td{\r\n  border:1px solid #e5e7eb;\r\n  padding:8px;\r\n  text-align:left;\r\n}\r\n#mzst-en .mzst-bom-table thead th,\r\n#mzst-fr .mzst-bom-table thead th{\r\n  font-weight:600;\r\n}\r\n\r\n\/* IDU image *\/\r\n#mzst-en .mzst-idu-img img,\r\n#mzst-fr .mzst-idu-img img{\r\n  max-width:220px;\r\n  height:auto;\r\n  border:1px solid #e5e7eb;\r\n  border-radius:8px;\r\n}\r\n\r\n\/* ODU image *\/\r\n#mzst-en .mzst-odu-img img,\r\n#mzst-fr .mzst-odu-img img{\r\n  max-width:260px;\r\n  height:auto;\r\n  border:1px solid #e5e7eb;\r\n  border-radius:8px;\r\n}\r\n\r\n\/* Print image handling *\/\r\n@media print {\r\n  #mzst-en .mzst-idu-img,\r\n  #mzst-en .mzst-idu-img *,\r\n  #mzst-fr .mzst-idu-img,\r\n  #mzst-fr .mzst-idu-img *,\r\n  #mzst-en .mzst-odu-img,\r\n  #mzst-en .mzst-odu-img *,\r\n  #mzst-fr .mzst-odu-img,\r\n  #mzst-fr .mzst-odu-img *{\r\n    break-inside: avoid;\r\n    page-break-inside: avoid;\r\n  }\r\n}\r\n\r\n\/* Print overrides for iframe clone (.mzst-print-container) *\/\r\n@media print {\r\n  \/* Hide entire Instructions block in print *\/\r\n  .mzst-print-container .mzst-instructions {\r\n    display: none !important;\r\n  }\r\n  \/* Instructions title + list spacing in print clone *\/\r\n  .mzst-print-container .mzst-instr-title{\r\n    font-weight:600;\r\n    margin-bottom:6px;\r\n  }\r\n\r\n  .mzst-print-container .mzst-instr-list,\r\n  .mzst-print-container .mzst-notes{\r\n    padding-left:18px;\r\n    margin:0;\r\n    list-style:decimal;\r\n  }\r\n\r\n  \/* Hide all submittal links + dedicated ODU submittal row in print *\/\r\n  .mzst-print-container .mzst-detail-grid .mzst-submittal.inline,\r\n  .mzst-print-container .mzst-detail-item.mzst-detail-has-submittal,\r\n  .mzst-print-container .mzst-submittal {\r\n    display: none !important;\r\n  }\r\n\r\n  \/* ODU detail grid styling *\/\r\n  .mzst-print-container .mzst-detail-grid{\r\n    display:flex;\r\n    flex-wrap:wrap;\r\n    margin:0;\r\n    padding:0;\r\n  }\r\n  .mzst-print-container .mzst-detail-item{\r\n    width:calc(50% - 6px);\r\n    margin:0 6px 6px 0;\r\n    display:flex;\r\n    align-items:center;\r\n    justify-content:space-between;\r\n    padding:6px 10px;\r\n    border-radius:9999px;\r\n    border:1px solid #e5e7eb;\r\n    background:#fff;\r\n  }\r\n  .mzst-print-container .mzst-detail-label{\r\n    color:#374151;\r\n  }\r\n  .mzst-print-container .mzst-detail-value{\r\n    font-weight:600;\r\n    color:#111827;\r\n    margin-left:8px;\r\n    white-space:nowrap;\r\n  }\r\n  .mzst-print-container .mzst-card.mzst-odu-details h3{\r\n    margin: 0 0 6px 0 !important;\r\n  }\r\n  \/* Reduce horizontal padding of ODU Details card *\/\r\n  .mzst-print-container .mzst-card.mzst-odu-details{\r\n    padding: 8px 6px !important;   \r\n  }\r\n\r\n  \/* Stack helpers *\/\r\n  .mzst-print-container .mzst-stack-4  > * + *{ margin-top:4px; }\r\n  .mzst-print-container .mzst-stack-6  > * + *{ margin-top:6px; }\r\n  .mzst-print-container .mzst-stack-8  > * + *{ margin-top:8px; }\r\n  .mzst-print-container .mzst-stack-10 > * + *{ margin-top:10px; }\r\n\r\n  \/* BoM table *\/\r\n  .mzst-print-container .mzst-bom-table{\r\n    width:100%;\r\n    border-collapse:collapse;\r\n  }\r\n  .mzst-print-container .mzst-bom-table th,\r\n  .mzst-print-container .mzst-bom-table td{\r\n    border:1px solid #e5e7eb;\r\n    padding:8px;\r\n    text-align:left;\r\n  }\r\n  .mzst-print-container .mzst-bom-table thead th{\r\n    font-weight:600;\r\n  }\r\n\r\n\r\n  \/* Images *\/\r\n  .mzst-print-container .mzst-idu-img img{\r\n    max-width:220px;\r\n    height:auto;\r\n    border:1px solid #e5e7eb;\r\n    border-radius:8px;\r\n  }\r\n  .mzst-print-container .mzst-odu-img img{\r\n    max-width:220px;\r\n    height:auto;\r\n    border:1px solid #e5e7eb;\r\n    border-radius:8px;\r\n  }\r\n  .mzst-print-container .mzst-idu-img,\r\n  .mzst-print-container .mzst-idu-img *,\r\n  .mzst-print-container .mzst-odu-img,\r\n  .mzst-print-container .mzst-odu-img *{\r\n    break-inside: avoid;\r\n    page-break-inside: avoid;\r\n  }\r\n\r\n  \/* Input error highlight *\/\r\n  .mzst-print-container .mzst-input-error{\r\n    border-color:#fca5a5 !important;\r\n    background:#fef2f2 !important;\r\n    color:#7f1d1d !important;\r\n  }\r\n}\r\n\/* =========================================================\r\n   GLOBAL TEXT UNIFORMITY (CSS-only, safe with current JS)\r\n   - Force neutral UI text to #111827 (wins against inline greys)\r\n   - Preserve evaluation\/warning colors + red input-error states\r\n   - Preserve submittal links\u2019 theme orange\r\n   Applies to screen (#mzst-en\/#mzst-fr) + print iframe (.mzst-print-container)\r\n   ========================================================= *\/\r\n\r\n\/* 1) Force neutral text color & opacity everywhere in the tool *\/\r\n#mzst-en *,\r\n#mzst-fr *,\r\n.mzst-print-container * {\r\n  color: #111827 !important;\r\n  opacity: 1 !important;\r\n}\r\n\r\n\/* 2) Restore evaluation tones (scoped to tool roots + print clone; includes descendants) *\/\r\n#mzst-en .mzst-color-ok,    #mzst-en .mzst-color-ok *,\r\n#mzst-fr .mzst-color-ok,    #mzst-fr .mzst-color-ok *,\r\n.mzst-print-container .mzst-color-ok, .mzst-print-container .mzst-color-ok * {\r\n  color: #064e3b !important;\r\n}\r\n\r\n#mzst-en .mzst-color-warn,  #mzst-en .mzst-color-warn *,\r\n#mzst-fr .mzst-color-warn,  #mzst-fr .mzst-color-warn *,\r\n.mzst-print-container .mzst-color-warn, .mzst-print-container .mzst-color-warn * {\r\n  color: #78350f !important;\r\n}\r\n\r\n#mzst-en .mzst-color-error, #mzst-en .mzst-color-error *,\r\n#mzst-fr .mzst-color-error, #mzst-fr .mzst-color-error *,\r\n.mzst-print-container .mzst-color-error, .mzst-print-container .mzst-color-error * {\r\n  color: #7f1d1d !important;\r\n}\r\n\r\n\/* 3) Preserve \u201cred until resolved\u201d input state (and any descendants) *\/\r\n#mzst-en .mzst-input-error, #mzst-en .mzst-input-error *,\r\n#mzst-fr .mzst-input-error, #mzst-fr .mzst-input-error *,\r\n.mzst-print-container .mzst-input-error, .mzst-print-container .mzst-input-error * {\r\n  color: #7f1d1d !important;\r\n}\r\n\r\n\/* 4) Keep submittal links orange *\/\r\n#mzst-en a.mzst-submittal,\r\n#mzst-fr a.mzst-submittal {\r\n  color: #ec6608 !important;\r\n  text-decoration: underline;\r\n  text-underline-offset: 2px;\r\n  text-decoration-thickness: 1px;\r\n}<\/style><div id=\"mzst-tool\"\r\n     class=\"mzst-scope\"\r\n     data-json=\"https:\/\/cdn2.moovair.com\/appjs\/JSN-M-MZTOOL-14-EN-FR-092225.json\">\r\n<\/div>\r\n\r\n<script>\r\n(function () {\r\n  var href = window.location.href.toLowerCase();\r\n\r\n  \/\/ Detect language from URL: fr-ca -> French, en-ca (or anything else) -> English\r\n  var isFrench = href.indexOf('fr-ca') !== -1;\r\n  var langCode = isFrench ? 'FR' : 'EN';\r\n  var containerId = isFrench ? 'mzst-fr' : 'mzst-en';\r\n\r\n  var container = document.getElementById('mzst-tool');\r\n  if (!container) return;\r\n\r\n  \/\/ Set the expected id and data-lang before loading the app script\r\n  container.id = containerId;\r\n  container.setAttribute('data-lang', langCode);\r\n\r\n  \/\/ Load the Moovair sizing tool app\r\n  var s = document.createElement('script');\r\n  s.src = 'https:\/\/cdn2.moovair.com\/appjs\/mzst-app.min.js';\r\n  s.async = true;\r\n  s.referrerPolicy = 'no-referrer';\r\n  document.head.appendChild(s);\r\n})();\r\n<\/script><\/p>\n","protected":false},"author":7,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":"","_wp_rev_ctl_limit":""},"dipi_cpt_category":[],"class_list":["post-16263734","page","type-page","status-publish","hentry"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Moovair\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Assistant multizone - Moovair\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-09-22T19:34:23+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-02-17T16:33:25+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Assistant multizone - Moovair\" \/>\n\t\t<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t\t<meta name=\"twitter:data1\" content=\"Gustavo Pineda\" \/>\n\t\t<meta name=\"twitter:label2\" content=\"Estimation du temps de lecture\" \/>\n\t\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/assistant-multizone\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/assistant-multizone\\\/#listItem\",\"name\":\"Assistant multizone\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/assistant-multizone\\\/#listItem\",\"position\":2,\"name\":\"Assistant multizone\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/#organization\",\"name\":\"The Master Group\",\"description\":\"Moovair | Air Conditioning and Heating\",\"url\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/\",\"telephone\":\"+15145272301\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/assistant-multizone\\\/#webpage\",\"url\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/assistant-multizone\\\/\",\"name\":\"Assistant multizone - Moovair\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/assistant-multizone\\\/#breadcrumblist\"},\"datePublished\":\"2025-09-22T15:34:23-04:00\",\"dateModified\":\"2026-02-17T11:33:25-05:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/#website\",\"url\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/\",\"name\":\"Moovair\",\"description\":\"Moovair | Air Conditioning and Heating\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/moovair.com\\\/fr-ca\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Assistant multizone - Moovair","description":"","canonical_url":"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/moovair.com\/fr-ca\/#listItem","position":1,"name":"Home","item":"https:\/\/moovair.com\/fr-ca\/","nextItem":{"@type":"ListItem","@id":"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/#listItem","name":"Assistant multizone"}},{"@type":"ListItem","@id":"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/#listItem","position":2,"name":"Assistant multizone","previousItem":{"@type":"ListItem","@id":"https:\/\/moovair.com\/fr-ca\/#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/moovair.com\/fr-ca\/#organization","name":"The Master Group","description":"Moovair | Air Conditioning and Heating","url":"https:\/\/moovair.com\/fr-ca\/","telephone":"+15145272301"},{"@type":"WebPage","@id":"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/#webpage","url":"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/","name":"Assistant multizone - Moovair","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/moovair.com\/fr-ca\/#website"},"breadcrumb":{"@id":"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/#breadcrumblist"},"datePublished":"2025-09-22T15:34:23-04:00","dateModified":"2026-02-17T11:33:25-05:00"},{"@type":"WebSite","@id":"https:\/\/moovair.com\/fr-ca\/#website","url":"https:\/\/moovair.com\/fr-ca\/","name":"Moovair","description":"Moovair | Air Conditioning and Heating","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/moovair.com\/fr-ca\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Moovair","og:type":"article","og:title":"Assistant multizone - Moovair","og:url":"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/","article:published_time":"2025-09-22T19:34:23+00:00","article:modified_time":"2026-02-17T16:33:25+00:00","twitter:card":"summary_large_image","twitter:title":"Assistant multizone - Moovair","twitter:label1":"\u00c9crit par","twitter:data1":"Gustavo Pineda","twitter:label2":"Estimation du temps de lecture","twitter:data2":"1 minute"},"aioseo_meta_data":{"post_id":"16263734","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"WebPage","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"titles":[],"descriptions":[],"socialPosts":{"email":[],"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2025-09-23 17:43:57","updated":"2026-02-17 16:44:05","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/moovair.com\/fr-ca\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tAssistant multizone\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/moovair.com\/fr-ca\/"},{"label":"Assistant multizone","link":"https:\/\/moovair.com\/fr-ca\/assistant-multizone\/"}],"_links":{"self":[{"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/pages\/16263734","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/comments?post=16263734"}],"version-history":[{"count":14,"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/pages\/16263734\/revisions"}],"predecessor-version":[{"id":16266500,"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/pages\/16263734\/revisions\/16266500"}],"wp:attachment":[{"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/media?parent=16263734"}],"wp:term":[{"taxonomy":"dipi_cpt_category","embeddable":true,"href":"https:\/\/moovair.com\/fr-ca\/wp-json\/wp\/v2\/dipi_cpt_category?post=16263734"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}