{"id":5432,"date":"2025-07-29T17:28:28","date_gmt":"2025-07-29T17:28:28","guid":{"rendered":"https:\/\/excavationchanthier.ca\/en\/?page_id=5432"},"modified":"2025-08-09T20:47:12","modified_gmt":"2025-08-09T20:47:12","slug":"french-drain-cost","status":"publish","type":"page","link":"https:\/\/excavationchanthier.ca\/en\/excavation\/french-drain\/french-drain-cost\/","title":{"rendered":"French Drain Cost Real Time Calculator"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"5432\" class=\"elementor elementor-5432\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0a13f96 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0a13f96\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-02cc28b\" data-id=\"02cc28b\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-a872baa elementor-widget elementor-widget-html\" data-id=\"a872baa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\n    <div class=\"french-drain-cost-container\">\n        <style>\n\n        .french-drain-cost-container * {\n            box-sizing: border-box;\n        }\n\n        .french-drain-cost-container {\n            max-width: 1200px;\n            margin: 0 auto;\n            padding: 40px 20px;\n            background-color: white;\n            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n            line-height: 1.6;\n            color: #374151;\n        }\n\n        .french-drain-cost-container .french-drain-cost-header {\n            margin-bottom: 40px;\n            text-align: center;\n        }\n\n        .french-drain-cost-container .french-drain-cost-subtitle {\n            color: #000000;\n            font-size: 48px;\n            margin: 0 0 12px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-instructions {\n            margin-top: 20px;\n            display: flex;\n            justify-content: center;\n        }\n\n        .french-drain-cost-container .french-drain-cost-instructions ol {\n            padding-left: 20px;\n            margin: 0;\n            text-align: left !important;\n            color: #374151;\n            font-size: 16px;\n            line-height: 1.5;\n        }\n\n        .french-drain-cost-container .french-drain-cost-instructions li {\n            margin-bottom: 8px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-instructions li:last-child {\n            margin-bottom: 0;\n        }\n\n        .french-drain-cost-container h1 {\n            font-size: 36px;\n            font-weight: bold;\n            color: #111827;\n            margin: 0;\n            text-align: center !important;\n        }\n\n        .french-drain-cost-container .french-drain-cost-main-grid {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 40px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-card {\n            background-color: #f9fafb;\n            padding: 30px;\n            border-radius: 12px;\n            margin-bottom: 24px;\n            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n        }\n\n        .french-drain-cost-container .french-drain-cost-card:last-child {\n            margin-bottom: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-card h2 {\n            font-size: 24px;\n            font-weight: 600;\n            margin-bottom: 12px;\n            margin-top: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-base-info {\n            background-color: #dbeafe;\n        }\n\n        .french-drain-cost-container .french-drain-cost-base-info h2 {\n            color: #1e40af;\n        }\n\n        .french-drain-cost-container .french-drain-cost-options-info {\n            background-color: #dcfce7;\n        }\n\n        .french-drain-cost-container .french-drain-cost-options-info h2 {\n            color: #166534;\n        }\n\n        .french-drain-cost-container .french-drain-cost-summary-card {\n            background-color: #f3f4f6;\n        }\n\n        .french-drain-cost-container .french-drain-cost-costs-card {\n            background-color: #dbeafe;\n        }\n\n        .french-drain-cost-container .french-drain-cost-costs-card h2 {\n            color: #1e40af;\n        }\n\n        .french-drain-cost-container .french-drain-cost-options-card {\n            background-color: #dcfce7;\n        }\n\n        .french-drain-cost-container .french-drain-cost-options-card h2 {\n            color: #166534;\n        }\n\n        .french-drain-cost-container .french-drain-cost-final-total {\n            background-color: #fed7aa;\n            border: 2px solid #fb923c;\n        }\n\n        .french-drain-cost-container .french-drain-cost-card.french-drain-cost-final-total h2 {\n            color: #9a3412;\n            font-size: 28px;\n            font-weight: bold;\n            margin-bottom: 10px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-info-card {\n            background-color: #f3f4f6;\n        }\n\n        .french-drain-cost-container .french-drain-cost-input-group {\n            margin-bottom: 24px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-input-group:last-child {\n            margin-bottom: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-input-group label {\n            display: block;\n            font-size: 16px;\n            font-weight: 500;\n            margin-bottom: 8px;\n            color: #374151;\n        }\n\n        .french-drain-cost-container .french-drain-cost-input-group label,\n        .french-drain-cost-container .french-drain-cost-checkbox-group label,\n        .french-drain-cost-container .french-drain-cost-additional-input label {\n            text-transform: none !important;\n        }\n\n        .french-drain-cost-container .french-drain-cost-input-group input,\n        .french-drain-cost-container .french-drain-cost-input-group select {\n            width: 100%;\n            padding: 12px 16px;\n            border: 1px solid #d1d5db;\n            border-radius: 8px;\n            font-size: 16px;\n            background-color: white;\n            transition: border-color 0.2s ease, box-shadow 0.2s ease;\n        }\n\n        .french-drain-cost-container .french-drain-cost-input-group input:focus,\n        .french-drain-cost-container .french-drain-cost-input-group select:focus {\n            outline: none;\n            border-color: #2563eb;\n            box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);\n        }\n\n        .french-drain-cost-container .french-drain-cost-number-input-wrapper {\n            position: relative;\n            display: inline-block;\n            width: 100%;\n        }\n\n        .french-drain-cost-container .french-drain-cost-number-input-wrapper input[type=\"number\"] {\n            padding-right: 40px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-number-input-wrapper input[type=\"number\"]::-webkit-inner-spin-button,\n        .french-drain-cost-container .french-drain-cost-number-input-wrapper input[type=\"number\"]::-webkit-outer-spin-button {\n            -webkit-appearance: none;\n            appearance: none;\n            margin: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-number-input-wrapper .french-drain-cost-spinner-buttons {\n            position: absolute;\n            right: 1px;\n            top: 1px;\n            bottom: 1px;\n            width: 30px;\n            display: flex;\n            flex-direction: column;\n        }\n\n        .french-drain-cost-container .french-drain-cost-number-input-wrapper .french-drain-cost-spinner-buttons button {\n            flex: 1;\n            border: none;\n            background: #f3f4f6 !important;\n            cursor: pointer;\n            font-size: 8px !important;\n            line-height: 1 !important;\n            padding: 2px !important;\n            color: #374151;\n            border-left: 1px solid #d1d5db;\n        }\n\n        .french-drain-cost-container .french-drain-cost-number-input-wrapper .french-drain-cost-spinner-buttons button:hover {\n            background: #e5e7eb;\n        }\n\n        .french-drain-cost-container .french-drain-cost-no-spinner::-webkit-inner-spin-button,\n        .french-drain-cost-container .french-drain-cost-no-spinner::-webkit-outer-spin-button {\n            -webkit-appearance: none;\n            appearance: none;\n            margin: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-no-spinner {\n            -moz-appearance: textfield;\n        }\n\n        .french-drain-cost-container .french-drain-cost-checkbox-group {\n            display: flex;\n            align-items: center;\n            gap: 12px;\n            margin-bottom: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-checkbox-group input[type=\"checkbox\"] {\n            width: 20px;\n            height: 20px;\n            accent-color: #2563eb;\n            cursor: pointer;\n        }\n\n        .french-drain-cost-container .french-drain-cost-checkbox-group label {\n            font-size: 16px;\n            font-weight: 500;\n            margin-bottom: 0;\n            cursor: pointer;\n        }\n\n        .french-drain-cost-container .french-drain-cost-additional-input {\n            margin-left: 32px;\n            margin-top: 20px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-additional-input label {\n            display: block;\n            font-size: 15px;\n            font-weight: 500;\n            margin-bottom: 8px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-additional-input input {\n            width: 100%;\n            padding: 10px 14px;\n            border: 1px solid #d1d5db;\n            border-radius: 6px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-help-text {\n            font-size: 14px;\n            color: #6b7280;\n            margin-top: 6px;\n            margin-bottom: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-note {\n            background-color: #fef3c7;\n            padding: 16px;\n            border-radius: 8px;\n            border: 1px solid #fbbf24;\n            margin-top: 24px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-note p {\n            font-size: 15px;\n            color: #92400e;\n            margin: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-summary-item {\n            display: block;\n            font-size: 16px;\n            margin-bottom: 8px;\n            padding: 0;\n            line-height: 1.6;\n        }\n\n        .french-drain-cost-container .french-drain-cost-summary-item span:first-child {\n            display: inline;\n            margin-right: 10px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-summary-item span:last-child {\n            display: inline;\n            font-weight: 600;\n            color: #111827;\n        }\n\n        .french-drain-cost-container .french-drain-cost-cost-items {\n            margin-bottom: 0;\n            display: flex;\n            flex-direction: column;\n            gap: 8px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-cost-item {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            width: 100%;\n            font-size: 16px;\n            margin-bottom: 0;\n            padding: 0;\n            color: #374151;\n            line-height: 1.6;\n            min-height: 24px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-cost-item .french-drain-cost-cost-value {\n            font-weight: 600;\n            color: #111827;\n            margin-left: 12px;\n            white-space: nowrap;\n        }\n\n        .french-drain-cost-container .french-drain-cost-cost-item .french-drain-cost-cost-label {\n            flex: 1;\n            padding-right: 12px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-cost-item .french-drain-cost-cost-label span {\n            font-weight: bold;\n        }\n\n        .french-drain-cost-container .french-drain-cost-total-base {\n            padding-top: 0;\n            margin-top: 12px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-total-base::before {\n            content: '';\n            display: block;\n            border-top: 2px solid #d1d5db;\n            margin-bottom: 6px;\n            margin-top: -4px !important;\n        }\n\n        .french-drain-cost-container .french-drain-cost-total-line {\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            font-size: 20px;\n            margin-bottom: 12px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-total-line span:first-child {\n            font-weight: 600;\n            color: #374151;\n        }\n\n        .french-drain-cost-container .french-drain-cost-total-line span:last-child {\n            font-weight: bold;\n            color: #1e40af;\n        }\n\n        .french-drain-cost-container .french-drain-cost-total-line.french-drain-cost-second-line {\n            margin-top: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-option-item {\n            display: flex;\n            justify-content: space-between;\n            font-size: 16px;\n            margin-bottom: 10px;\n            padding: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-option-item:last-child {\n            margin-bottom: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-option-item span:last-child {\n            font-weight: 600;\n            color: #111827;\n        }\n\n        .french-drain-cost-container .french-drain-cost-total-options {\n            padding-top: 0;\n            margin-top: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-total-options::before {\n            content: '';\n            display: block;\n            border-top: 2px solid #d1d5db;\n            margin-bottom: 6px;\n            margin-top: 6px;\n        }\n\n        .french-drain-cost-container .french-drain-cost-total-options .french-drain-cost-total-line span:last-child {\n            color: #166534;\n        }\n\n        .french-drain-cost-container .french-drain-cost-price-breakdown {\n            display: flex;\n            flex-direction: column;\n            gap: 5px;\n            margin-bottom: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-price-item {\n            display: flex;\n            justify-content: space-between;\n            font-size: 20px;\n            margin-bottom: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-price-item span:last-child {\n            font-weight: 600;\n            color: #374151;\n        }\n\n        .french-drain-cost-container .french-drain-cost-final-price {\n            position: relative;\n            display: flex;\n            justify-content: space-between;\n            font-size: 28px;\n            font-weight: bold;\n            padding-top: 0;\n            margin-top: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-final-price::before {\n            content: '';\n            position: absolute;\n            left: 0;\n            right: 0;\n            top: 0;\n            border-top: 2px solid #d1d5db;\n        }\n\n        .french-drain-cost-container .french-drain-cost-final-price span:last-child {\n            color: #ea580c;\n        }\n\n        .french-drain-cost-container .french-drain-cost-info-text {\n            font-size: 16px;\n            color: #6b7280;\n        }\n\n        .french-drain-cost-container .french-drain-cost-info-text p {\n            font-weight: 600;\n            margin-bottom: 20px;\n            margin-top: 0;\n            color: #374151;\n        }\n\n        .french-drain-cost-container .french-drain-cost-info-text ul {\n            list-style: none;\n            padding-left: 25px;\n            margin: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-info-text li {\n            margin-bottom: 5px;\n            padding-left: 0;\n            position: relative;\n        }\n\n        .french-drain-cost-container .french-drain-cost-info-text li:last-child {\n            margin-bottom: 0;\n        }\n\n        .french-drain-cost-container .french-drain-cost-summary-card,\n        .french-drain-cost-container .french-drain-cost-costs-card,\n        .french-drain-cost-container .french-drain-cost-options-card,\n        .french-drain-cost-container .french-drain-cost-final-total {\n            padding-bottom: 15px !important;\n        }\n\n        \/* Tablets *\/\n        @media (max-width: 768px) {\n            .french-drain-cost-container {\n                padding: 20px;\n            }\n\n            .french-drain-cost-container h1 {\n                font-size: 28px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-subtitle {\n                font-size: 48px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-main-grid {\n                grid-template-columns: 1fr;\n                gap: 24px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-card {\n                padding: 20px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-card h2 {\n                font-size: 20px;\n                margin-bottom: 18px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-number-input-wrapper .french-drain-cost-spinner-buttons {\n                width: 35px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-number-input-wrapper .french-drain-cost-spinner-buttons button {\n                font-size: 7px !important;\n                line-height: 1 !important;\n                padding: 1px !important;\n            }\n\n            .french-drain-cost-container .french-drain-cost-number-input-wrapper input[type=\"number\"] {\n                padding-right: 41px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-summary-card,\n            .french-drain-cost-container .french-drain-cost-costs-card,\n            .french-drain-cost-container .french-drain-cost-options-card,\n            .french-drain-cost-container .french-drain-cost-final-total {\n                padding-bottom: 12px !important;\n            }\n        }\n\n        \/* Phones *\/\n        @media (max-width: 480px) {\n            .french-drain-cost-container {\n                padding: 16px;\n            }\n\n            .french-drain-cost-container h1 {\n                font-size: 24px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-subtitle {\n                font-size: 32px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-card {\n                padding: 16px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-card h2 {\n                font-size: 18px;\n                margin-bottom: 12px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-number-input-wrapper .french-drain-cost-spinner-buttons {\n                width: 32px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-number-input-wrapper .french-drain-cost-spinner-buttons button {\n                font-size: 10px !important;\n            }\n\n            .french-drain-cost-container .french-drain-cost-number-input-wrapper input[type=\"number\"] {\n                padding-right: 38px;\n            }\n\n            .french-drain-cost-container .french-drain-cost-input-group input,\n            .french-drain-cost-container .french-drain-cost-input-group select {\n                font-size: 16px !important;\n            }\n\n            .french-drain-cost-container .french-drain-cost-summary-card,\n            .french-drain-cost-container .french-drain-cost-costs-card,\n            .french-drain-cost-container .french-drain-cost-options-card,\n            .french-drain-cost-container .french-drain-cost-final-total {\n                padding-bottom: 10px !important;\n            }\n\n            \/* Force prices to stay on one line *\/\n            .french-drain-cost-container .french-drain-cost-cost-item .french-drain-cost-cost-value,\n            .french-drain-cost-container .french-drain-cost-option-item span:last-child,\n            .french-drain-cost-container .french-drain-cost-price-item span:last-child,\n            .french-drain-cost-container .french-drain-cost-total-line span:last-child,\n            .french-drain-cost-container .french-drain-cost-final-price span:last-child {\n                white-space: nowrap !important;\n                flex-shrink: 0 !important;\n                min-width: fit-content !important;\n            }\n\n            \/* Adjust item text to make room for price *\/\n            .french-drain-cost-container .french-drain-cost-cost-item .french-drain-cost-cost-label,\n            .french-drain-cost-container .french-drain-cost-option-item span:first-child,\n            .french-drain-cost-container .french-drain-cost-price-item span:first-child {\n                overflow-wrap: break-word;\n                word-break: break-word;\n                hyphens: auto;\n                flex: 1;\n                padding-right: 8px;\n            }\n\n            \/* Ensure containers remain flexible *\/\n            .french-drain-cost-container .french-drain-cost-cost-item,\n            .french-drain-cost-container .french-drain-cost-option-item,\n            .french-drain-cost-container .french-drain-cost-price-item,\n            .french-drain-cost-container .french-drain-cost-total-line,\n            .french-drain-cost-container .french-drain-cost-final-price {\n                display: flex !important;\n                align-items: flex-start !important;\n                gap: 8px !important;\n            }\n        }\n        <\/style>\n\n        <div class=\"french-drain-cost-header\">\n            <p class=\"french-drain-cost-subtitle\">&#127968; User Guide<\/p>\n            <div class=\"french-drain-cost-instructions\">\n                <ol>\n                    <li>Enter the estimated length of the <a style=\"text-decoration: none;\" href=\"https:\/\/excavationchanthier.ca\/en\/excavation\/french-drain\/\">French drain<\/a>.<\/li>\n                    <li>Choose the foundation type.<\/li>\n                    <li>Select the options that apply.<\/li>\n                <\/ol>\n            <\/div>\n        <\/div>\n\n        <div class=\"french-drain-cost-main-grid\">\n            <div class=\"french-drain-cost-input-section\">\n                <div class=\"french-drain-cost-card french-drain-cost-base-info\">\n                    <h2>&#128451;&#65039; Basic Information<\/h2>\n\n                    <div class=\"french-drain-cost-input-group\">\n                        <label for=\"piedsLineaires\">Estimated length in linear ft.<\/label>\n                        <input type=\"number\" id=\"piedsLineaires\" value=\"100\" min=\"1\" max=\"1000\" placeholder=\"Enter a value between 1 and 1000\" class=\"french-drain-cost-no-spinner\">\n                    <\/div>\n\n                    <div class=\"french-drain-cost-input-group\">\n                        <label for=\"typeFondation\">Foundation type<\/label>\n                        <select id=\"typeFondation\">\n                            <option value=\"coulee\">Poured concrete foundation<\/option>\n                            <option value=\"blocs\">Concrete block foundation<\/option>\n                        <\/select>\n                    <\/div>\n                <\/div>\n\n                <div class=\"french-drain-cost-card french-drain-cost-options-info\">\n                    <h2>&#128736;&#65039; Options<\/h2>\n\n                    <div class=\"french-drain-cost-input-group\">\n                        <div class=\"french-drain-cost-checkbox-group\">\n                            <input type=\"checkbox\" id=\"espaceManoeuvreLimite\">\n                            <label for=\"espaceManoeuvreLimite\">Limited working space (&le; 8 ft) - Additional cost: $3,000<\/label>\n                        <\/div>\n                        <p class=\"french-drain-cost-help-text\">Check if obstacles reduce the space around your foundation: trees, fence, patio, shed, pool, driveway, wall, rock, or other structure. Specialized equipment required.<\/p>\n                    <\/div>\n\n                    <div class=\"french-drain-cost-input-group\">\n                        <div class=\"french-drain-cost-checkbox-group\">\n                            <input type=\"checkbox\" id=\"fissures5pieds\">\n                            <label for=\"fissures5pieds\">Foundation crack repair: $850 for the first 5 linear ft.<\/label>\n                        <\/div>\n\n                        <div id=\"fissuresAdditionnelles\" class=\"french-drain-cost-additional-input\" style=\"display: none;\">\n                            <label for=\"piedsAdditionnelsFissures\">Additional linear ft. (beyond the included 5 linear ft.)<\/label>\n                            <div class=\"french-drain-cost-number-input-wrapper\">\n                                <input type=\"number\" id=\"piedsAdditionnelsFissures\" value=\"0\" min=\"0\" max=\"50\">\n                                <div class=\"french-drain-cost-spinner-buttons\">\n                                    <button type=\"button\">&#9650;<\/button>\n                                    <button type=\"button\">&#9660;<\/button>\n                                <\/div>\n                            <\/div>\n                            <p class=\"french-drain-cost-help-text\">$90 per additional linear ft.<\/p>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"french-drain-cost-input-group\">\n                        <label for=\"margelles42\">Number of 42\" window wells<\/label>\n                        <div class=\"french-drain-cost-number-input-wrapper\">\n                            <input type=\"number\" id=\"margelles42\" value=\"0\" min=\"0\" max=\"20\">\n                            <div class=\"french-drain-cost-spinner-buttons\">\n                                <button type=\"button\">&#9650;<\/button>\n                                <button type=\"button\">&#9660;<\/button>\n                            <\/div>\n                        <\/div>\n                        <p class=\"french-drain-cost-help-text\">$60.00 per well<\/p>\n                    <\/div>\n\n                    <div class=\"french-drain-cost-input-group\">\n                        <label for=\"margelles54\">Number of 54\" window wells<\/label>\n                        <div class=\"french-drain-cost-number-input-wrapper\">\n                            <input type=\"number\" id=\"margelles54\" value=\"0\" min=\"0\" max=\"20\">\n                            <div class=\"french-drain-cost-spinner-buttons\">\n                                <button type=\"button\">&#9650;<\/button>\n                                <button type=\"button\">&#9660;<\/button>\n                            <\/div>\n                        <\/div>\n                        <p class=\"french-drain-cost-help-text\">$100.00 per well<\/p>\n                    <\/div>\n\n                    <div class=\"french-drain-cost-input-group\">\n                        <div class=\"french-drain-cost-checkbox-group\">\n                            <input type=\"checkbox\" id=\"bassinRetention\">\n                            <label for=\"bassinRetention\">Retention basin and submersible pump ($2,900.00)<\/label>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"french-drain-cost-note\">\n                        <p><strong>Note:<\/strong> For window wells of different dimensions, please request a quote.<\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"french-drain-cost-results-section\">\n                <div class=\"french-drain-cost-card french-drain-cost-summary-card\">\n                    <h2>Project Summary<\/h2>\n\n                    <div class=\"french-drain-cost-summary-item\">\n                        <span>Length of BNQ perforated drainage pipe:<\/span>\n                        <span id=\"resumePiedsLineaires\"><\/span>\n                    <\/div>\n\n                    <div class=\"french-drain-cost-summary-item\">\n                        <span>Foundation type:<\/span>\n                        <span id=\"resumeTypeFondation\"><\/span>\n                    <\/div>\n\n                    <div class=\"french-drain-cost-summary-item\">\n                        <span>Number of cleanouts:<\/span>\n                        <span id=\"resumeCheminees\"><\/span>\n                    <\/div>\n\n                    <div class=\"french-drain-cost-summary-item\">\n                        <span>Number of fittings:<\/span>\n                        <span id=\"resumeCoins\"><\/span>\n                    <\/div>\n\n                    <div class=\"french-drain-cost-summary-item\">\n                        <span>Membrane type:<\/span>\n                        <span id=\"resumeMembrane\"><\/span>\n                    <\/div>\n                <\/div>\n\n                <div class=\"french-drain-cost-card french-drain-cost-costs-card\">\n                    <h2>Base Costs<\/h2>\n\n                    <div class=\"french-drain-cost-cost-items\">\n                        <div class=\"french-drain-cost-cost-item\">\n                            <span class=\"french-drain-cost-cost-label\">Excavation (<span id=\"joursExcavation\"><\/span>)<\/span>\n                            <span id=\"coutExcavation\" class=\"french-drain-cost-cost-value\"><\/span>\n                        <\/div>\n\n                        <div class=\"french-drain-cost-cost-item\">\n                            <span class=\"french-drain-cost-cost-label\">Cleanout(s) (<span id=\"nombreCheminees\"><\/span>)<\/span>\n                            <span id=\"coutCheminees\" class=\"french-drain-cost-cost-value\"><\/span>\n                        <\/div>\n\n                        <div class=\"french-drain-cost-cost-item\">\n                            <span class=\"french-drain-cost-cost-label\">Fitting(s) (<span id=\"nombreCoins\"><\/span>)<\/span>\n                            <span id=\"coutCoins\" class=\"french-drain-cost-cost-value\"><\/span>\n                        <\/div>\n\n                        <div class=\"french-drain-cost-cost-item\">\n                            <span class=\"french-drain-cost-cost-label\">BNQ perforated drainage pipe (<span id=\"piedsLineairesTuyau\"><\/span> linear ft.)<\/span>\n                            <span id=\"coutTuyau\" class=\"french-drain-cost-cost-value\"><\/span>\n                        <\/div>\n\n                        <div class=\"french-drain-cost-cost-item\">\n                            <span class=\"french-drain-cost-cost-label\">Membrane (<span id=\"piedsCarresMembrane\"><\/span> ft&sup2;)<\/span>\n                            <span id=\"coutMembrane\" class=\"french-drain-cost-cost-value\"><\/span>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"french-drain-cost-total-base\">\n                        <div class=\"french-drain-cost-total-line\">\n                            <span>Total base cost:<\/span>\n                            <span id=\"coutBaseTotal\"><\/span>\n                        <\/div>\n\n                        <div class=\"french-drain-cost-total-line french-drain-cost-second-line\">\n                            <span>Price \/ linear ft.:<\/span>\n                            <span id=\"prixParPiedLineaireBase\"><\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div id=\"optionsCard\" class=\"french-drain-cost-card french-drain-cost-options-card\" style=\"display: none;\">\n                    <h2>Selected Options<\/h2>\n\n                    <div id=\"optionsList\"><\/div>\n\n                    <div class=\"french-drain-cost-total-options\">\n                        <div class=\"french-drain-cost-total-line\">\n                            <span>Total options:<\/span>\n                            <span id=\"totalOptions\"><\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"french-drain-cost-card french-drain-cost-final-total\">\n                    <h2>Final Estimated Total Price<\/h2>\n\n                    <div class=\"french-drain-cost-price-breakdown\">\n                        <div class=\"french-drain-cost-price-item\">\n                            <span>Base price:<\/span>\n                            <span id=\"prixDeBase\"><\/span>\n                        <\/div>\n\n                        <div id=\"prixOptionsLine\" class=\"french-drain-cost-price-item\" style=\"display: none;\">\n                            <span>Options:<\/span>\n                            <span id=\"prixOptions\"><\/span>\n                        <\/div>\n\n                        <div class=\"french-drain-cost-final-price\">\n                            <span>TOTAL:<\/span>\n                            <span id=\"prixTotalFinal\"><\/span>\n                        <\/div>\n\n                        <div class=\"french-drain-cost-total-line french-drain-cost-second-line\">\n                            <span>Price \/ linear ft.:<\/span>\n                            <span id=\"prixParPiedLineaire\"><\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n\n                <div class=\"french-drain-cost-card french-drain-cost-info-card\">\n                    <div class=\"french-drain-cost-info-text\">\n                            <p>&#8505;&#65039;&nbsp;<strong>Factors that influence the price:<\/strong><\/p>\n                            <ul>\n                                <li>Soil type<\/li>\n                                <li>Property accessibility<\/li>\n                                <li>Underground obstacles<\/li>\n                                <li>Foundation layout<\/li>\n                                <li>Time of year<\/li>\n                            <\/ul>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n    (function() {\n        'use strict';\n\n        \/\/ Pricing configuration \u2014 single source of truth for all costs\n        const PRICING = Object.freeze({\n            excavation: {\n                tier1: { maxFeet: 70, days: 2, price: 8000 },\n                tier2: { maxFeet: 140, days: 3, price: 11000 },\n                extraDayPrice: 4000,\n                trancheSize: 70\n            },\n            chimney: { unitPrice: 105 },\n            fitting: { unitPrice: 17.20 },\n            drainPipe: { pricePerFoot: 2.00 },\n            membrane: {\n                widthMultiplier: 5,\n                poured: { pricePerSqFt: 6.50 },\n                block: { pricePerSqFt: 8.50 }\n            },\n            options: {\n                limitedManeuver: 3000,\n                crackRepair: { base: 850, perAdditionalFoot: 90 },\n                windowWell42: 60,\n                windowWell54: 100,\n                retentionBasin: 2900\n            }\n        });\n\n        const ANIMATION_DELAY_MS = 150;\n\n        \/\/ DOM element cache \u2014 populated once at init\n        const domCache = {};\n\n        \/\/ Pending animation updates \u2014 collected per cycle, flushed in one rAF\n        let pendingUpdates = [];\n\n        \/\/ Calculator state\n        const state = {\n            piedsLineaires: 100,\n            typeFondation: 'coulee',\n            espaceManoeuvreLimite: false,\n            fissures5pieds: false,\n            piedsAdditionnelsFissures: 0,\n            margelles42: 0,\n            margelles54: 0,\n            bassinRetention: false\n        };\n\n        \/\/ Format currency for EN locale: $8,000.00\n        function formatCurrency(amount) {\n            const parts = amount.toFixed(2).split('.');\n            parts[0] = parts[0].replace(\/\\B(?=(\\d{3})+(?!\\d))\/g, ',');\n            return '$' + parts[0] + '.' + parts[1];\n        }\n\n        \/\/ Create a safe DOM element for option line items\n        function createOptionItem(label, amount) {\n            const div = document.createElement('div');\n            div.className = 'french-drain-cost-option-item';\n            const labelSpan = document.createElement('span');\n            labelSpan.textContent = label;\n            const priceSpan = document.createElement('span');\n            priceSpan.textContent = formatCurrency(amount);\n            div.appendChild(labelSpan);\n            div.appendChild(priceSpan);\n            return div;\n        }\n\n        \/\/ Main calculation and display update function\n        function calculerEtMettreAJour() {\n            let prixFixe, joursExcavation;\n            const isSmallJob = state.piedsLineaires <= PRICING.excavation.tier1.maxFeet;\n\n            if (isSmallJob) {\n                joursExcavation = PRICING.excavation.tier1.days;\n                prixFixe = PRICING.excavation.tier1.price;\n            } else if (state.piedsLineaires <= PRICING.excavation.tier2.maxFeet) {\n                joursExcavation = PRICING.excavation.tier2.days;\n                prixFixe = PRICING.excavation.tier2.price;\n            } else {\n                joursExcavation = PRICING.excavation.tier2.days + Math.ceil((state.piedsLineaires - PRICING.excavation.tier2.maxFeet) \/ PRICING.excavation.trancheSize);\n                prixFixe = PRICING.excavation.tier2.price + ((joursExcavation - PRICING.excavation.tier2.days) * PRICING.excavation.extraDayPrice);\n            }\n\n            \/\/ Chimneys and fittings \u2014 1 per excavation day minus 1\n            const nombreCheminee = joursExcavation - 1;\n            const nombreCoins = joursExcavation - 1;\n            const chemineeRegard = PRICING.chimney.unitPrice * nombreCheminee;\n            const coins = PRICING.fitting.unitPrice * nombreCoins;\n\n            const coutTuyau = PRICING.drainPipe.pricePerFoot * state.piedsLineaires;\n\n            \/\/ Membrane calculation\n            const piedsCarres = state.piedsLineaires * PRICING.membrane.widthMultiplier;\n            let typeMembrane, prixParPiedCarre, coutMembrane;\n\n            if (state.typeFondation === 'coulee') {\n                typeMembrane = 'R-Coat spray membrane and Delta-MS membrane';\n                prixParPiedCarre = PRICING.membrane.poured.pricePerSqFt;\n            } else {\n                typeMembrane = 'Valco membrane (lifetime warranty)';\n                prixParPiedCarre = PRICING.membrane.block.pricePerSqFt;\n            }\n\n            coutMembrane = piedsCarres * prixParPiedCarre;\n\n            \/\/ Options \u2014 DOM-safe construction (no innerHTML)\n            let totalOptions = 0;\n            if (domCache.optionsList) domCache.optionsList.replaceChildren();\n\n            if (state.espaceManoeuvreLimite) {\n                const coutEspace = PRICING.options.limitedManeuver;\n                if (domCache.optionsList) domCache.optionsList.appendChild(createOptionItem('Limited working space (\\u2264 8 linear ft.)', coutEspace));\n                totalOptions += coutEspace;\n            }\n\n            if (state.fissures5pieds) {\n                let coutFissures = PRICING.options.crackRepair.base;\n                let descriptionFissures = 'Foundation cracks (5 feet)';\n\n                if (state.piedsAdditionnelsFissures > 0) {\n                    coutFissures += state.piedsAdditionnelsFissures * PRICING.options.crackRepair.perAdditionalFoot;\n                    descriptionFissures = 'Foundation cracks (5 ft + ' + state.piedsAdditionnelsFissures + ' additional ft)';\n                }\n\n                if (domCache.optionsList) domCache.optionsList.appendChild(createOptionItem(descriptionFissures, coutFissures));\n                totalOptions += coutFissures;\n            }\n\n            if (state.margelles42 > 0) {\n                const coutMargelles42 = state.margelles42 * PRICING.options.windowWell42;\n                if (domCache.optionsList) domCache.optionsList.appendChild(createOptionItem('42\" window wells (' + state.margelles42 + ' x ' + formatCurrency(PRICING.options.windowWell42) + ')', coutMargelles42));\n                totalOptions += coutMargelles42;\n            }\n\n            if (state.margelles54 > 0) {\n                const coutMargelles54 = state.margelles54 * PRICING.options.windowWell54;\n                if (domCache.optionsList) domCache.optionsList.appendChild(createOptionItem('54\" window wells (' + state.margelles54 + ' x ' + formatCurrency(PRICING.options.windowWell54) + ')', coutMargelles54));\n                totalOptions += coutMargelles54;\n            }\n\n            if (state.bassinRetention) {\n                const coutBassin = PRICING.options.retentionBasin;\n                if (domCache.optionsList) domCache.optionsList.appendChild(createOptionItem('Retention basin and submersible pump', coutBassin));\n                totalOptions += coutBassin;\n            }\n\n            \/\/ Final totals\n            const prixTotalSansOptions = prixFixe + chemineeRegard + coins + coutTuyau + coutMembrane;\n            const prixTotalAvecOptions = prixTotalSansOptions + totalOptions;\n            const prixParPiedLineaireBase = state.piedsLineaires > 0 ? prixTotalSansOptions \/ state.piedsLineaires : 0;\n            const prixParPiedLineaire = state.piedsLineaires > 0 ? prixTotalAvecOptions \/ state.piedsLineaires : 0;\n\n            \/\/ Update display with animation\n            updateWithAnimation('resumePiedsLineaires', state.piedsLineaires + ' ft');\n            updateWithAnimation('resumeTypeFondation', state.typeFondation === 'coulee' ? 'Poured concrete' : 'Concrete blocks');\n            updateWithAnimation('resumeCheminees', nombreCheminee);\n            updateWithAnimation('resumeCoins', nombreCoins);\n            updateWithAnimation('resumeMembrane', typeMembrane);\n\n            updateWithAnimation('nombreCheminees', nombreCheminee);\n            updateWithAnimation('nombreCoins', nombreCoins);\n            updateWithAnimation('piedsLineairesTuyau', state.piedsLineaires);\n            updateWithAnimation('piedsCarresMembrane', piedsCarres);\n\n            updateWithAnimation('joursExcavation', joursExcavation + ' days');\n\n            updateWithAnimation('coutExcavation', formatCurrency(prixFixe));\n            updateWithAnimation('coutCheminees', formatCurrency(chemineeRegard));\n            updateWithAnimation('coutCoins', formatCurrency(coins));\n            updateWithAnimation('coutTuyau', formatCurrency(coutTuyau));\n            updateWithAnimation('coutMembrane', formatCurrency(coutMembrane));\n\n            updateWithAnimation('coutBaseTotal', formatCurrency(prixTotalSansOptions));\n            updateWithAnimation('prixParPiedLineaireBase', formatCurrency(prixParPiedLineaireBase));\n\n            \/\/ Options card visibility\n            if (totalOptions > 0) {\n                if (domCache.optionsCard) domCache.optionsCard.style.display = 'block';\n                updateWithAnimation('totalOptions', formatCurrency(totalOptions));\n            } else {\n                if (domCache.optionsCard) domCache.optionsCard.style.display = 'none';\n            }\n\n            \/\/ Final price section\n            updateWithAnimation('prixDeBase', formatCurrency(prixTotalSansOptions));\n\n            if (totalOptions > 0) {\n                if (domCache.prixOptionsLine) domCache.prixOptionsLine.style.display = 'flex';\n                updateWithAnimation('prixOptions', formatCurrency(totalOptions));\n            } else {\n                if (domCache.prixOptionsLine) domCache.prixOptionsLine.style.display = 'none';\n            }\n\n            updateWithAnimation('prixParPiedLineaire', formatCurrency(prixParPiedLineaire));\n            updateWithAnimation('prixTotalFinal', formatCurrency(prixTotalAvecOptions));\n\n            flushUpdates();\n        }\n\n        \/\/ Queue an animated value update (collected, then flushed in one batch)\n        function updateWithAnimation(elementId, value) {\n            const el = domCache[elementId];\n            if (el) {\n                pendingUpdates.push({ el: el, value: value });\n            }\n        }\n\n        \/\/ Flush all queued updates in a single paint cycle\n        function flushUpdates() {\n            const updates = pendingUpdates;\n            pendingUpdates = [];\n            if (updates.length === 0) return;\n\n            requestAnimationFrame(() => {\n                for (let i = 0; i < updates.length; i++) {\n                    updates[i].el.style.opacity = '0.5';\n                }\n                setTimeout(() => {\n                    for (let j = 0; j < updates.length; j++) {\n                        updates[j].el.textContent = updates[j].value;\n                        updates[j].el.style.opacity = '1';\n                    }\n                }, ANIMATION_DELAY_MS);\n            });\n        }\n\n        \/\/ Toggle crack repair additional feet section\n        function gererFissures() {\n            if (state.fissures5pieds) {\n                if (domCache.fissuresAdditionnelles) domCache.fissuresAdditionnelles.style.display = 'block';\n            } else {\n                if (domCache.fissuresAdditionnelles) domCache.fissuresAdditionnelles.style.display = 'none';\n                state.piedsAdditionnelsFissures = 0;\n                if (domCache.piedsAdditionnelsFissures) domCache.piedsAdditionnelsFissures.value = 0;\n            }\n        }\n\n        \/\/ Debounce utility for number inputs\n        function debounce(func, wait) {\n            let timeout;\n            return function(...args) {\n                clearTimeout(timeout);\n                timeout = setTimeout(() => func(...args), wait);\n            };\n        }\n\n        const calculerAvecDebounce = debounce(calculerEtMettreAJour, 300);\n\n        \/\/ Setup spinner buttons for a numeric input\n        function setupSpinner(inputId, stateKey, min, max) {\n            const input = document.getElementById(inputId);\n            if (!input || !input.parentElement) return;\n            const btnUp = input.parentElement.querySelector('.french-drain-cost-spinner-buttons button:first-child');\n            const btnDown = input.parentElement.querySelector('.french-drain-cost-spinner-buttons button:last-child');\n            if (!btnUp || !btnDown) return;\n\n            btnUp.addEventListener('click', () => {\n                state[stateKey] = max != null ? Math.min(max, state[stateKey] + 1) : state[stateKey] + 1;\n                input.value = state[stateKey];\n                calculerEtMettreAJour();\n            });\n            btnDown.addEventListener('click', () => {\n                state[stateKey] = Math.max(min, state[stateKey] - 1);\n                input.value = state[stateKey];\n                calculerEtMettreAJour();\n            });\n        }\n\n        \/\/ Setup input validation for a numeric input (input + keydown + paste handlers)\n        function setupNumericInput(inputId, stateKey, max) {\n            const input = document.getElementById(inputId);\n            if (!input) return;\n\n            input.addEventListener('input', () => {\n                input.value = input.value.replace(\/[^0-9]\/g, '');\n                if (input.value === '') input.value = 0;\n                const value = parseInt(input.value, 10) || 0;\n                state[stateKey] = max != null ? Math.min(max, value) : value;\n                input.value = state[stateKey];\n                calculerAvecDebounce();\n            });\n\n            input.addEventListener('keydown', (e) => {\n                if (e.key.length === 1 && !\/[0-9]\/.test(e.key)) {\n                    e.preventDefault();\n                }\n            });\n\n            input.addEventListener('paste', (e) => {\n                e.preventDefault();\n                const pastedText = e.clipboardData.getData('text');\n                const cleanedText = pastedText.replace(\/[^0-9]\/g, '');\n                if (cleanedText) {\n                    const value = parseInt(cleanedText, 10) || 0;\n                    state[stateKey] = max != null ? Math.min(max, value) : value;\n                    input.value = state[stateKey];\n                    calculerAvecDebounce();\n                }\n            });\n        }\n\n        \/\/ Initialization\n        function initCalculateur() {\n            \/\/ Cache DOM references for animated display elements\n            const cacheIds = [\n                'resumePiedsLineaires', 'resumeTypeFondation', 'resumeCheminees',\n                'resumeCoins', 'resumeMembrane', 'nombreCheminees', 'nombreCoins',\n                'piedsLineairesTuyau', 'piedsCarresMembrane', 'joursExcavation',\n                'coutExcavation', 'coutCheminees', 'coutCoins', 'coutTuyau',\n                'coutMembrane', 'coutBaseTotal', 'prixParPiedLineaireBase',\n                'totalOptions', 'prixDeBase', 'prixOptions', 'prixParPiedLineaire',\n                'prixTotalFinal', 'optionsList', 'optionsCard', 'prixOptionsLine',\n                'fissuresAdditionnelles', 'piedsAdditionnelsFissures'\n            ];\n            for (const id of cacheIds) {\n                domCache[id] = document.getElementById(id);\n            }\n\n            \/\/ Event listeners \u2014 piedsLineaires\n            const inputPiedsLineaires = document.getElementById('piedsLineaires');\n\n            inputPiedsLineaires.addEventListener('input', function() {\n                this.value = this.value.replace(\/[^0-9]\/g, '');\n                const value = parseInt(this.value);\n                state.piedsLineaires = isNaN(value) ? 1 : Math.min(Math.max(value, 1), 1000);\n                calculerAvecDebounce();\n            });\n\n            inputPiedsLineaires.addEventListener('keydown', (e) => {\n                if (e.key.length === 1 && !\/[0-9]\/.test(e.key)) {\n                    e.preventDefault();\n                }\n            });\n\n            inputPiedsLineaires.addEventListener('blur', function() {\n                const value = parseInt(this.value);\n                if (this.value === '' || isNaN(value) || value < 1) {\n                    this.value = 1;\n                    state.piedsLineaires = 1;\n                } else if (value > 1000) {\n                    this.value = 1000;\n                    state.piedsLineaires = 1000;\n                } else {\n                    state.piedsLineaires = value;\n                }\n                calculerEtMettreAJour();\n            });\n\n            \/\/ Event listeners \u2014 selects and checkboxes\n            document.getElementById('typeFondation').addEventListener('change', (e) => {\n                const allowed = ['coulee', 'blocs'];\n                state.typeFondation = allowed.includes(e.target.value) ? e.target.value : 'coulee';\n                calculerEtMettreAJour();\n            });\n\n            document.getElementById('espaceManoeuvreLimite').addEventListener('change', (e) => {\n                state.espaceManoeuvreLimite = e.target.checked;\n                calculerEtMettreAJour();\n            });\n\n            document.getElementById('fissures5pieds').addEventListener('change', (e) => {\n                state.fissures5pieds = e.target.checked;\n                gererFissures();\n                calculerEtMettreAJour();\n            });\n\n            \/\/ Event listeners \u2014 numeric option inputs\n            setupNumericInput('piedsAdditionnelsFissures', 'piedsAdditionnelsFissures', 50);\n            setupNumericInput('margelles42', 'margelles42', 20);\n            setupNumericInput('margelles54', 'margelles54', 20);\n\n            \/\/ Event listener \u2014 bassinRetention\n            document.getElementById('bassinRetention').addEventListener('change', (e) => {\n                state.bassinRetention = e.target.checked;\n                calculerEtMettreAJour();\n            });\n\n            \/\/ Spinner buttons \u2014 no delay needed in WP (DOM is ready)\n            setupSpinner('piedsAdditionnelsFissures', 'piedsAdditionnelsFissures', 0, 50);\n            setupSpinner('margelles42', 'margelles42', 0, 20);\n            setupSpinner('margelles54', 'margelles54', 0, 20);\n\n            \/\/ Initial calculation\n            calculerEtMettreAJour();\n        }\n\n        \/\/ Handle both inline rendering (DOMContentLoaded pending) and dynamic injection (already fired)\n        if (document.readyState === 'loading') {\n            document.addEventListener('DOMContentLoaded', initCalculateur);\n        } else {\n            initCalculateur();\n        }\n    })();\n    <\/script>\n    \t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-ba3b688 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"ba3b688\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6fe86f0\" data-id=\"6fe86f0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0b3a8e0 elementor-widget elementor-widget-text-editor\" data-id=\"0b3a8e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<!-- French Drain Cost Article - WordPress\/Elementor Compatible -->\n<style>\n    \/* Scoped CSS - Only affects content within .french-drain-article-content *\/\n    .french-drain-article-content {\n        line-height: 1.6;\n        color: #333;\n        background-color: white;\n        padding: 30px;\n        border-radius: 10px;\n        box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n        max-width: 100%;\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n    }\n\n    \/* Extra small screens *\/\n    @media (max-width: 320px) {\n        .french-drain-article-content {\n            padding: 10px;\n        }\n        \n        .french-drain-article-content h1 {\n            font-size: 1.4rem;\n            margin-bottom: 15px;\n        }\n        \n        .french-drain-article-content h2 {\n            font-size: 1.2rem;\n            margin-top: 25px;\n            margin-bottom: 12px;\n            padding-left: 10px;\n        }\n        \n        .french-drain-article-content h3 {\n            font-size: 1rem;\n            margin-top: 15px;\n            margin-bottom: 8px;\n        }\n        \n        .french-drain-article-content .responsive-table {\n            font-size: 10px;\n        }\n        \n        .french-drain-article-content th,\n        .french-drain-article-content td {\n            padding: 6px 4px;\n        }\n        \n        .french-drain-article-content table {\n            min-width: 450px;\n        }\n        \n        .french-drain-article-content .highlight-box,\n        .french-drain-article-content .warning-box,\n        .french-drain-article-content .danger-box,\n        .french-drain-article-content .info-list {\n            padding: 12px;\n            margin: 12px 0;\n        }\n        \n        .french-drain-article-content .faq-section {\n            padding: 0.8rem;\n        }\n        \n        .french-drain-article-content .faq-item {\n            padding: 0.6rem;\n            margin-bottom: 0.8rem;\n        }\n        \n        .french-drain-article-content .faq-item h3 {\n            font-size: 0.9rem;\n        }\n        \n        .french-drain-article-content .stat-number {\n            font-size: 1.3rem;\n        }\n        \n        .french-drain-article-content .stat-label {\n            font-size: 0.75rem;\n        }\n        \n        .french-drain-article-content .cta-button a {\n            padding: 8px 16px;\n            font-size: 13px;\n        }\n    }\n\n    .french-drain-article-content .cta-button {\n        padding: 15px 0;\n        text-align: center;\n        margin: 30px 0;\n    }\n\n    .french-drain-article-content .cta-button a {\n        background-color: #9e0505;\n        color: #ffffff;\n        padding: 12px 30px;\n        text-decoration: none;\n        border-radius: 5px;\n        font-weight: bold;\n        font-size: 16px;\n        transition: background-color 0.3s ease;\n        display: inline-block;\n    }\n\n    .french-drain-article-content .cta-button a:hover {\n        background-color: #7a0404;\n    }\n\n    .french-drain-article-content h1 {\n        color: #2c3e50;\n        font-size: 2.5rem;\n        text-align: center;\n        margin-bottom: 30px;\n        border-bottom: 3px solid #9e0505;\n        padding-bottom: 15px;\n    }\n\n    .french-drain-article-content h2 {\n        color: #34495e;\n        font-size: 1.8rem;\n        margin-top: 40px;\n        margin-bottom: 20px;\n        border-left: 5px solid #9e0505;\n        padding-left: 15px;\n    }\n\n    .french-drain-article-content h3 {\n        color: #34495e;\n        font-size: 1.4rem;\n        margin-top: 30px;\n        margin-bottom: 15px;\n    }\n\n    .french-drain-article-content .highlight-box {\n        background-color: #e8f4fd;\n        border-left: 5px solid #3498db;\n        padding: 20px;\n        margin: 20px 0;\n        border-radius: 5px;\n    }\n\n    .french-drain-article-content .warning-box {\n        background-color: #fff3cd;\n        border: 1px solid #ffeaa7;\n        border-left: 5px solid #f39c12;\n        padding: 15px;\n        margin: 20px 0;\n        border-radius: 5px;\n    }\n\n    .french-drain-article-content .danger-box {\n        background-color: #f8d7da;\n        border: 1px solid #f5c6cb;\n        border-left: 5px solid #dc3545;\n        padding: 15px;\n        margin: 20px 0;\n        border-radius: 5px;\n    }\n\n    .french-drain-article-content .info-list {\n        background-color: #f8f9fa;\n        padding: 20px;\n        border-radius: 8px;\n        margin: 20px 0;\n    }\n\n    .french-drain-article-content .info-list ul {\n        margin: 0;\n        padding-left: 20px;\n    }\n\n    .french-drain-article-content .info-list li {\n        margin-bottom: 8px;\n    }\n\n    .french-drain-article-content .responsive-table {\n        overflow-x: auto;\n        margin: 20px 0;\n        border-radius: 8px;\n        box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n    }\n\n    .french-drain-article-content table {\n        width: 100%;\n        border-collapse: collapse;\n        background-color: white;\n        min-width: 500px;\n    }\n\n    .french-drain-article-content th {\n        background-color: #2c3e50;\n        color: white;\n        padding: 15px 12px;\n        text-align: left;\n        font-weight: 600;\n        font-size: 14px;\n    }\n\n    .french-drain-article-content td {\n        padding: 12px;\n        border-bottom: 1px solid #e9ecef;\n        font-size: 14px;\n    }\n\n    .french-drain-article-content tr:nth-child(even) {\n        background-color: #f8f9fa;\n    }\n\n    .french-drain-article-content tr:hover {\n        background-color: #e3f2fd;\n    }\n\n    .french-drain-article-content .price-highlight {\n        font-weight: bold;\n        color: #9e0505;\n    }\n\n    .french-drain-article-content .percentage-positive {\n        color: #27ae60;\n        font-weight: bold;\n    }\n\n    .french-drain-article-content .percentage-negative {\n        color: #e74c3c;\n        font-weight: bold;\n    }\n\n    .french-drain-article-content .article-image {\n        text-align: center;\n        margin: 30px 0;\n    }\n\n    .french-drain-article-content .article-image img {\n        max-width: 100%;\n        height: auto;\n        border-radius: 8px;\n        box-shadow: 0 4px 8px rgba(0,0,0,0.1);\n        display: block;\n        margin: 0 auto;\n    }\n\n    .french-drain-article-content .faq-section {\n        margin: 2rem 0;\n        padding: 1.5rem;\n        background-color: #f9f9f9;\n        border-radius: 8px;\n    }\n\n    .french-drain-article-content .faq-item {\n        margin-bottom: 1.5rem;\n        padding: 1rem;\n        background-color: white;\n        border-radius: 5px;\n        box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n        transition: transform 0.2s ease;\n    }\n\n    .french-drain-article-content .faq-item:hover {\n        transform: translateY(-2px);\n    }\n\n    .french-drain-article-content .faq-item h3 {\n        color: #34495e;\n        margin-bottom: 0.5rem;\n        font-size: 1.2rem;\n    }\n\n    .french-drain-article-content .faq-item p {\n        line-height: 1.6;\n        margin: 0;\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n    }\n\n    .french-drain-article-content a {\n        word-wrap: break-word;\n        overflow-wrap: break-word;\n    }\n\n    .french-drain-article-content .section-divider {\n        height: 2px;\n        background: linear-gradient(90deg, #9e0505, #34495e);\n        margin: 40px 0;\n        border-radius: 1px;\n    }\n\n    .french-drain-article-content .stats-grid {\n        display: grid;\n        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n        gap: 15px;\n        margin: 30px 0;\n    }\n\n    .french-drain-article-content .stat-card {\n        background-color: #f8f9fa;\n        padding: 15px;\n        border-radius: 8px;\n        text-align: center;\n        border-left: 4px solid #9e0505;\n    }\n\n    .french-drain-article-content .stat-number {\n        font-size: 1.8rem;\n        font-weight: bold;\n        color: #9e0505;\n        display: block;\n    }\n\n    .french-drain-article-content .stat-label {\n        font-size: 0.85rem;\n        color: #666;\n        margin-top: 5px;\n    }\n\n    \/* Enhanced Mobile Responsiveness *\/\n    @media (max-width: 480px) {\n        .french-drain-article-content {\n            padding: 15px;\n        }\n        \n        .french-drain-article-content h1 {\n            font-size: 1.6rem;\n            margin-bottom: 20px;\n        }\n        \n        .french-drain-article-content h2 {\n            font-size: 1.3rem;\n            margin-top: 30px;\n            margin-bottom: 15px;\n        }\n        \n        .french-drain-article-content h3 {\n            font-size: 1.1rem;\n            margin-top: 20px;\n            margin-bottom: 10px;\n        }\n        \n        .french-drain-article-content .responsive-table {\n            font-size: 11px;\n        }\n        \n        .french-drain-article-content th,\n        .french-drain-article-content td {\n            padding: 8px 6px;\n        }\n        \n        .french-drain-article-content table {\n            min-width: 500px;\n        }\n        \n        .french-drain-article-content .highlight-box,\n        .french-drain-article-content .warning-box,\n        .french-drain-article-content .danger-box,\n        .french-drain-article-content .info-list {\n            padding: 15px;\n            margin: 15px 0;\n        }\n        \n        .french-drain-article-content .faq-section {\n            padding: 1rem;\n        }\n        \n        .french-drain-article-content .faq-item {\n            padding: 0.8rem;\n            margin-bottom: 1rem;\n        }\n        \n        .french-drain-article-content .faq-item h3 {\n            font-size: 1rem;\n        }\n        \n        .french-drain-article-content .stats-grid {\n            grid-template-columns: 1fr;\n            gap: 10px;\n            margin: 20px 0;\n        }\n        \n        .french-drain-article-content .stat-card {\n            padding: 12px;\n        }\n        \n        .french-drain-article-content .stat-number {\n            font-size: 1.5rem;\n        }\n        \n        .french-drain-article-content .stat-label {\n            font-size: 0.8rem;\n        }\n        \n        .french-drain-article-content .cta-button a {\n            padding: 10px 20px;\n            font-size: 14px;\n        }\n    }\n\n    @media (max-width: 768px) and (min-width: 481px) {\n        .french-drain-article-content {\n            padding: 20px;\n        }\n        \n        .french-drain-article-content h1 {\n            font-size: 2rem;\n        }\n        \n        .french-drain-article-content h2 {\n            font-size: 1.5rem;\n        }\n        \n        .french-drain-article-content h3 {\n            font-size: 1.2rem;\n        }\n        \n        .french-drain-article-content .responsive-table {\n            font-size: 12px;\n        }\n        \n        .french-drain-article-content .stats-grid {\n            grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n            gap: 15px;\n        }\n        \n        .french-drain-article-content .stat-number {\n            font-size: 1.6rem;\n        }\n    }\n\n    @media (max-width: 1024px) and (min-width: 769px) {\n        .french-drain-article-content .stats-grid {\n            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n        }\n    }\n\n    \/* Large screens optimization *\/\n    @media (min-width: 1200px) {\n        .french-drain-article-content {\n            padding: 40px;\n        }\n        \n        .french-drain-article-content .stats-grid {\n            grid-template-columns: repeat(4, 1fr);\n            gap: 25px;\n        }\n    }\n<\/style>\n\n<div class=\"french-drain-article-content\">\n        <div class=\"cta-button\">\n            <a href=\"https:\/\/excavationchanthier.ca\/en\/contact\/\" target=\"_self\">REQUEST A FREE QUOTE<\/a>\n        <\/div>\n\n        <h1>French Drain Cost: Complete 2025 Montreal Pricing Guide<\/h1>\n\n        <div class=\"highlight-box\">\n            <h2 style=\"margin-top: 0; border: none; padding: 0;\">WHAT YOU NEED TO KNOW<\/h2>\n            <ul>\n                <li><strong>Calculator base price:<\/strong> <span class=\"price-highlight\">$200-350 per linear foot<\/span><\/li>\n                <li><strong>Variables can double the price:<\/strong> rock, winter, emergency<\/li>\n                <li><strong>68% of projects exceed initial budget by 15-25%<\/strong><\/li>\n                <li><strong>Potential savings:<\/strong> up to <span class=\"percentage-positive\">35%<\/span> (subsidies + timing)<\/li>\n                <li><strong>Warning signal:<\/strong> price <span class=\"price-highlight\">&lt;$150\/ft = DANGER<\/span><\/li>\n            <\/ul>\n        <\/div>\n\n        <h2>Introduction<\/h2>\n        <p>The calculator above gives you the base price according to length. However, 15 to 20 factors can modify this amount from -20% to +200%. Here&#8217;s everything that truly influences the final French drain cost.<\/p>\n\n        <p>French drain cost has evolved significantly from 2020-2025, increasing by 35-45% across Montreal&#8217;s market. Understanding how much does a French drain cost requires analyzing multiple variables beyond the basic linear footage calculation. The price for French drain installation varies dramatically: installation <span class=\"price-highlight\">$200-350\/ft<\/span>, replacement <span class=\"price-highlight\">$250-400\/ft<\/span>, repair <span class=\"price-highlight\">$100-200\/ft<\/span>.<\/p>\n\n        <p>When considering the cost to install French drain systems, the average cost for French drain installation fluctuates based on 20+ factors specific to Montreal&#8217;s unique conditions. This analysis, based on 150+ verified quotes in Montreal and surrounding areas, reveals the true cost structure behind professional French drain installations.<\/p>\n\n        <div class=\"section-divider\"><\/div>\n\n        <h2>Beyond the Calculator: Hidden Price Variables<\/h2>\n        <p>The calculator provides baseline estimates, but real-world French drain cost depends on critical multiplying factors that contractors encounter during Montreal installations:<\/p>\n\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Factor<\/th>\n                        <th>Calculator Impact<\/th>\n                        <th>Real Surcharge<\/th>\n                        <th>Montreal Frequency<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>Rock presence<\/td>\n                        <td><span class=\"percentage-negative\">\u00d72 to \u00d73<\/span><\/td>\n                        <td class=\"price-highlight\">+$150-300\/ft<\/td>\n                        <td>15% of cases<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Clay soil (H1A, H2B)<\/td>\n                        <td><span class=\"percentage-negative\">\u00d71.3<\/span><\/td>\n                        <td class=\"price-highlight\">+$50-75\/ft<\/td>\n                        <td>40% of cases<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>High water table<\/td>\n                        <td><span class=\"percentage-negative\">\u00d71.4<\/span><\/td>\n                        <td class=\"price-highlight\">+$60-100\/ft<\/td>\n                        <td>25% of cases<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Access &lt;3 feet<\/td>\n                        <td><span class=\"percentage-negative\">\u00d71.5<\/span><\/td>\n                        <td class=\"price-highlight\">+$75-125\/ft<\/td>\n                        <td>30% downtown<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Depth &gt;8 feet<\/td>\n                        <td><span class=\"percentage-negative\">\u00d71.6<\/span><\/td>\n                        <td class=\"price-highlight\">+$100-150\/ft<\/td>\n                        <td>20% of cases<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Century home<\/td>\n                        <td><span class=\"percentage-negative\">\u00d71.5<\/span><\/td>\n                        <td class=\"price-highlight\">+$75-100\/ft<\/td>\n                        <td>15% Plateau<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Slope &gt;15%<\/td>\n                        <td><span class=\"percentage-negative\">\u00d71.4<\/span><\/td>\n                        <td class=\"price-highlight\">+$60-80\/ft<\/td>\n                        <td>10% of cases<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <div class=\"warning-box\">\n            <strong>TRAP TO AVOID:<\/strong> Never accept French drain price quotes without soil evaluation. Difference between &#8220;visual&#8221; estimates and post-soil test quotes: 35-60%.\n        <\/div>\n\n        <h2>Installation vs Replacement vs Repair: Cost Breakdown<\/h2>\n\n        <div class=\"article-image\">\n            <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/excavationchanthier.ca\/en\/wp-content\/uploads\/2025\/08\/french-drain-cost-1.jpg\" alt=\"French drain installation showing excavation, pipe placement, and gravel backfill - key components that determine your final cost\" width=\"500\" height=\"375\">\n            <p><em>Professional French drain installation showing excavation, pipe placement, and gravel backfill &#8211; key components that determine your final cost<\/em><\/p>\n        <\/div>\n\n        <h3>New Installation &#8211; Complete Cost Structure<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Component<\/th>\n                        <th>% of Price<\/th>\n                        <th>$\/foot<\/th>\n                        <th>What Makes It Vary<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>Excavation<\/td>\n                        <td>30-40%<\/td>\n                        <td class=\"price-highlight\">$60-100<\/td>\n                        <td>Depth, access<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Materials<\/td>\n                        <td>25-30%<\/td>\n                        <td class=\"price-highlight\">$50-75<\/td>\n                        <td>Grade selected<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Labor<\/td>\n                        <td>30-35%<\/td>\n                        <td class=\"price-highlight\">$60-120<\/td>\n                        <td>Complexity<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Contractor margins<\/td>\n                        <td>15-25%<\/td>\n                        <td class=\"price-highlight\">$30-60<\/td>\n                        <td>Reputation<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Equipment<\/td>\n                        <td>5-10%<\/td>\n                        <td class=\"price-highlight\">$10-25<\/td>\n                        <td>Type required<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <h3>Replacement &#8211; Why 25-30% More Expensive<\/h3>\n        <p>French drain cost for replacement exceeds new installation due to:<\/p>\n        <div class=\"info-list\">\n            <ul>\n                <li>Old system demolition: <span class=\"price-highlight\">+$30-50\/ft<\/span><\/li>\n                <li>Contaminated waste management: <span class=\"price-highlight\">+$20-30\/ft<\/span><\/li>\n                <li>Hidden complications (68% of cases): <span class=\"price-highlight\">+$40-60\/ft<\/span><\/li>\n                <li>Working around landscaping: <span class=\"price-highlight\">+$25-40\/ft<\/span><\/li>\n            <\/ul>\n        <\/div>\n\n        <h3>Repair &#8211; Decision Table<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Situation<\/th>\n                        <th>Repair Cost<\/th>\n                        <th>Recommended Action<\/th>\n                        <th>Financial Impact<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>&lt;30% of replacement<\/td>\n                        <td class=\"price-highlight\">$3,000-8,000<\/td>\n                        <td>Repair<\/td>\n                        <td class=\"percentage-positive\">70% savings<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>30-50% of replacement<\/td>\n                        <td class=\"price-highlight\">$8,000-15,000<\/td>\n                        <td>Evaluate remaining life<\/td>\n                        <td>Variable<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>&gt;50% of replacement<\/td>\n                        <td class=\"price-highlight\">$15,000+<\/td>\n                        <td>Replace<\/td>\n                        <td class=\"percentage-positive\">Better ROI<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Defer work<\/td>\n                        <td>$0 immediate<\/td>\n                        <td>Risky<\/td>\n                        <td class=\"percentage-negative\">$500\/month potential damage<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <div class=\"cta-button\">\n            <a href=\"https:\/\/excavationchanthier.ca\/en\/contact\/\" target=\"_self\">Request A Free Quote<\/a>\n        <\/div>\n\n        <h2>Montreal Regional Variations: 19 Boroughs + 15 Cities<\/h2>\n\n        <h3>Montreal Borough Breakdown<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Sector<\/th>\n                        <th>Variation vs Base<\/th>\n                        <th>Primary Reason<\/th>\n                        <th>Problematic Postal Codes<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>Plateau-Mont-Royal<\/td>\n                        <td class=\"percentage-negative\">+15-20%<\/td>\n                        <td>Difficult access<\/td>\n                        <td>H2H, H2J<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Ville-Marie<\/td>\n                        <td class=\"percentage-negative\">+20-25%<\/td>\n                        <td>Dense downtown<\/td>\n                        <td>H3A, H3B<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Rosemont<\/td>\n                        <td class=\"percentage-negative\">+5-10%<\/td>\n                        <td>Standard soil<\/td>\n                        <td>H1X, H1Y<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Ahuntsic<\/td>\n                        <td class=\"percentage-negative\">+10-15%<\/td>\n                        <td>Old properties<\/td>\n                        <td>H3L, H4J<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Westmount<\/td>\n                        <td class=\"percentage-negative\">+10-15%<\/td>\n                        <td>Client\/finishes<\/td>\n                        <td>H3Y, H3Z<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Rivi\u00e8re-des-Prairies<\/td>\n                        <td class=\"percentage-negative\">+25-30%<\/td>\n                        <td>Problematic soil<\/td>\n                        <td>H1E, H1G<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Verdun<\/td>\n                        <td class=\"percentage-positive\">-5%<\/td>\n                        <td>Good accessibility<\/td>\n                        <td>H4G, H4H<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <h3>Greater Montreal Comparison<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>City<\/th>\n                        <th>Difference vs Montreal<\/th>\n                        <th>Average Price\/ft<\/th>\n                        <th>Specialty<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>Laval<\/td>\n                        <td class=\"percentage-positive\">-5 to -10%<\/td>\n                        <td class=\"price-highlight\">$250-315<\/td>\n                        <td>More accessible terrain<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Longueuil<\/td>\n                        <td class=\"percentage-positive\">-5 to -10%<\/td>\n                        <td class=\"price-highlight\">$250-315<\/td>\n                        <td>Less rock<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Brossard<\/td>\n                        <td class=\"percentage-positive\">-8%<\/td>\n                        <td class=\"price-highlight\">$255-320<\/td>\n                        <td>Sandy soil<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Terrebonne<\/td>\n                        <td class=\"percentage-positive\">-12%<\/td>\n                        <td class=\"price-highlight\">$240-310<\/td>\n                        <td>Local labor<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Quebec City (reference)<\/td>\n                        <td class=\"percentage-positive\">-15%<\/td>\n                        <td class=\"price-highlight\">$235-300<\/td>\n                        <td>Different market<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Toronto (reference)<\/td>\n                        <td class=\"percentage-negative\">+40-50%<\/td>\n                        <td class=\"price-highlight\">$350-525<\/td>\n                        <td>Cost of living<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <h2>Seasonal Impact &amp; Emergency Pricing Reality<\/h2>\n\n        <h3>Detailed Seasonal Pricing Grid<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Period<\/th>\n                        <th>Variation<\/th>\n                        <th>Availability<\/th>\n                        <th>Timeline<\/th>\n                        <th>Client Strategy<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>May-June<\/td>\n                        <td>Base<\/td>\n                        <td>Excellent<\/td>\n                        <td>2-3 weeks<\/td>\n                        <td>Ideal for planning<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>July-August<\/td>\n                        <td class=\"percentage-negative\">+10-15%<\/td>\n                        <td>Limited<\/td>\n                        <td>4-6 weeks<\/td>\n                        <td>Avoid if possible<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>September-October<\/td>\n                        <td class=\"percentage-positive\">-10-15%<\/td>\n                        <td>Very good<\/td>\n                        <td>1-2 weeks<\/td>\n                        <td>Best value<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>November<\/td>\n                        <td class=\"percentage-positive\">-15-20%<\/td>\n                        <td>Excellent<\/td>\n                        <td>&lt;1 week<\/td>\n                        <td>End-season deals<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>December-March<\/td>\n                        <td class=\"percentage-negative\">+30-50%<\/td>\n                        <td>Emergency only<\/td>\n                        <td>24-48h<\/td>\n                        <td>Only if critical<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>April<\/td>\n                        <td class=\"percentage-negative\">+15-20%<\/td>\n                        <td>Average<\/td>\n                        <td>2-3 weeks<\/td>\n                        <td>Wait for May<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <h3>Emergency Pricing Structure<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Emergency Type<\/th>\n                        <th>Surcharge<\/th>\n                        <th>Example Price<\/th>\n                        <th>When Justified<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>&lt;24h<\/td>\n                        <td class=\"percentage-negative\">+75-100%<\/td>\n                        <td class=\"price-highlight\">$500-700\/ft<\/td>\n                        <td>Active flooding<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>48-72h<\/td>\n                        <td class=\"percentage-negative\">+50%<\/td>\n                        <td class=\"price-highlight\">$400-525\/ft<\/td>\n                        <td>Imminent risk<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Weekend<\/td>\n                        <td class=\"percentage-negative\">+35-50%<\/td>\n                        <td class=\"price-highlight\">$350-450\/ft<\/td>\n                        <td>Progressive damage<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Holidays<\/td>\n                        <td class=\"percentage-negative\">+100%<\/td>\n                        <td class=\"price-highlight\">$550-700\/ft<\/td>\n                        <td>Avoid except catastrophe<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <div class=\"cta-button\">\n            <a href=\"https:\/\/excavationchanthier.ca\/en\/contact\/\" target=\"_self\">Request A Free Quote<\/a>\n        <\/div>\n\n        <h2>Material Quality: Direct Impact on French Drain Cost and Durability<\/h2>\n\n        <h3>Material Grade Comparison<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Grade<\/th>\n                        <th>Price Impact<\/th>\n                        <th>Lifespan<\/th>\n                        <th>Warranty<\/th>\n                        <th>ROI<\/th>\n                        <th>Recommended For<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>Economy<\/td>\n                        <td class=\"percentage-positive\">-20%<\/td>\n                        <td>15-20 years<\/td>\n                        <td>5 years<\/td>\n                        <td>Low<\/td>\n                        <td>Short-term rental<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Standard<\/td>\n                        <td>Base<\/td>\n                        <td>25-30 years<\/td>\n                        <td>10 years<\/td>\n                        <td>Good<\/td>\n                        <td>Most cases<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Premium<\/td>\n                        <td class=\"percentage-negative\">+25%<\/td>\n                        <td>40-50 years<\/td>\n                        <td>15-25 years<\/td>\n                        <td>Excellent<\/td>\n                        <td>Lifetime property<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Commercial<\/td>\n                        <td class=\"percentage-negative\">+40%<\/td>\n                        <td>50+ years<\/td>\n                        <td>25 years<\/td>\n                        <td>Variable<\/td>\n                        <td>Revenue buildings<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <div class=\"info-list\">\n            <strong>Concrete Differences:<\/strong>\n            <ul>\n                <li>Pipe: PVC vs ABS vs Concrete (<span class=\"price-highlight\">$15-40\/ft difference<\/span>)<\/li>\n                <li>Geotextile: 70g vs 110g vs 140g (<span class=\"price-highlight\">$3-8\/ft difference<\/span>)<\/li>\n                <li>Gravel: 0-3\/4&#8243; vs 3\/4&#8243; net (<span class=\"price-highlight\">$20-35\/tonne difference<\/span>)<\/li>\n                <li>Membrane: Standard vs reinforced (<span class=\"price-highlight\">$5-12\/sq ft difference<\/span>)<\/li>\n            <\/ul>\n        <\/div>\n\n        <h2>Financing &amp; Tax Impacts: The Real French Drain Cost<\/h2>\n\n        <h3>Available Financing Options 2025<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Type<\/th>\n                        <th>Rate 2025<\/th>\n                        <th>Term<\/th>\n                        <th>Monthly Impact<\/th>\n                        <th>Total Cost<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>Credit line<\/td>\n                        <td>7-9%<\/td>\n                        <td>Flexible<\/td>\n                        <td class=\"price-highlight\">$250-400\/month<\/td>\n                        <td class=\"percentage-negative\">+15-25%<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Renovation loan<\/td>\n                        <td>6-8%<\/td>\n                        <td>5-10 years<\/td>\n                        <td class=\"price-highlight\">$450-700\/month<\/td>\n                        <td class=\"percentage-negative\">+20-35%<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Contractor financing<\/td>\n                        <td>9-12%<\/td>\n                        <td>2-5 years<\/td>\n                        <td class=\"price-highlight\">$800-1200\/month<\/td>\n                        <td class=\"percentage-negative\">+25-40%<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Credit card<\/td>\n                        <td>19-22%<\/td>\n                        <td>&#8211;<\/td>\n                        <td>Variable<\/td>\n                        <td class=\"percentage-negative\">+40-60%<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <div class=\"stats-grid\">\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">+3-5%<\/span>\n                <div class=\"stat-label\">Property value increase<\/div>\n            <\/div>\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">100%<\/span>\n                <div class=\"stat-label\">Revenue properties deductible<\/div>\n            <\/div>\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">+$50-150<\/span>\n                <div class=\"stat-label\">Municipal tax impact\/year<\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"danger-box\">\n            <strong>Cost of Inaction:<\/strong>\n            <ul>\n                <li>Foundation damage: <span class=\"price-highlight\">$15,000-50,000<\/span><\/li>\n                <li>Mold: <span class=\"price-highlight\">$5,000-20,000<\/span><\/li>\n                <li>Value loss: <span class=\"percentage-negative\">-5 to -15%<\/span><\/li>\n                <li>Inability to sell<\/li>\n            <\/ul>\n        <\/div>\n\n        <h2>Subsidies &amp; Aid Programs: Savings Up to 35%<\/h2>\n\n        <h3>Available 2025 Programs<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Program<\/th>\n                        <th>Max Amount<\/th>\n                        <th>Conditions<\/th>\n                        <th>Stackable<\/th>\n                        <th>Timeline<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>R\u00e9noVert<\/td>\n                        <td class=\"price-highlight\">20% ($10,000)<\/td>\n                        <td>Eco-responsible<\/td>\n                        <td>Yes<\/td>\n                        <td>3-6 months<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Municipal flood<\/td>\n                        <td class=\"price-highlight\">$15,000<\/td>\n                        <td>Flood zone<\/td>\n                        <td>No<\/td>\n                        <td>2-4 months<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Disaster aid<\/td>\n                        <td class=\"price-highlight\">80% costs<\/td>\n                        <td>Disaster declaration<\/td>\n                        <td>Limited<\/td>\n                        <td>1-2 months<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Tax credit 65+<\/td>\n                        <td class=\"price-highlight\">20% ($10,000)<\/td>\n                        <td>Owner 65+<\/td>\n                        <td>Yes<\/td>\n                        <td>Tax credit<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>FHCC Program<\/td>\n                        <td class=\"price-highlight\">$40,000<\/td>\n                        <td>Designated sector<\/td>\n                        <td>No<\/td>\n                        <td>6-12 months<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <div class=\"highlight-box\">\n            <strong>How to Maximize Subsidies:<\/strong>\n            <ol>\n                <li>Combine R\u00e9noVert + 65+ credit = up to <span class=\"percentage-positive\">35% savings<\/span><\/li>\n                <li>Timing: apply BEFORE work begins<\/li>\n                <li>Documentation: keep ALL detailed invoices<\/li>\n                <li>RBQ contractor mandatory for eligibility<\/li>\n            <\/ol>\n        <\/div>\n\n        <div class=\"cta-button\">\n            <a href=\"https:\/\/excavationchanthier.ca\/en\/contact\/\" target=\"_self\">Request A Free Quote<\/a>\n        <\/div>\n\n        <h2>Warning Signals: Suspicious Prices &amp; Scams<\/h2>\n\n        <h3>Too Low Prices &#8211; RED FLAGS<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Signal<\/th>\n                        <th>Risk<\/th>\n                        <th>Consequence<\/th>\n                        <th>Action<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td class=\"price-highlight\">&lt;$150\/ft<\/td>\n                        <td>Inadequate materials<\/td>\n                        <td>Redo in 5 years<\/td>\n                        <td>Refuse<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>-40% vs average<\/td>\n                        <td>No insurance\/RBQ<\/td>\n                        <td>No recourse<\/td>\n                        <td><a href=\"https:\/\/montreal.ca\/en\/how-to\/obtain-permit-to-construct-building\" target=\"_blank\" style=\"color: #9e0505;\" rel=\"noopener\">Verify RBQ<\/a><\/td>\n                    <\/tr>\n                    <tr>\n                        <td>&#8220;Friend pricing&#8221;<\/td>\n                        <td>Under-table work<\/td>\n                        <td>Legal problems<\/td>\n                        <td>Demand invoice<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Discount &gt;25%<\/td>\n                        <td>Hidden additions later<\/td>\n                        <td class=\"percentage-negative\">+50-100% final<\/td>\n                        <td>Detailed contract<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <h3>Too High Prices &#8211; BEWARE<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Signal<\/th>\n                        <th>Indication<\/th>\n                        <th>Verification<\/th>\n                        <th>Alternative<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td class=\"price-highlight\">&gt;$400\/ft without rock<\/td>\n                        <td>Overcharging<\/td>\n                        <td>3 other quotes<\/td>\n                        <td>Negotiate<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Unjustified urgency<\/td>\n                        <td>Exploitation<\/td>\n                        <td>Assess real danger<\/td>\n                        <td>Delay<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Signature pressure<\/td>\n                        <td>Sales technique<\/td>\n                        <td>48h reflection<\/td>\n                        <td>Refuse<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Deposit &gt;30%<\/td>\n                        <td>Financial risk<\/td>\n                        <td>Maximum 15%<\/td>\n                        <td>Negotiate<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <div class=\"warning-box\">\n            <strong>Common Scams:<\/strong>\n            <ol>\n                <li><strong>Double material billing:<\/strong> Verify supplier invoices<\/li>\n                <li><strong>False problem discovery:<\/strong> +30-50% mid-project<\/li>\n                <li><strong>Price change after signing:<\/strong> &#8220;Calculation error&#8221;<\/li>\n                <li><strong>Abusive warranty holdbacks:<\/strong> 10% maximum, not 25%<\/li>\n                <li><strong>Hidden subcontracting:<\/strong> Price inflated 20-30%<\/li>\n            <\/ol>\n        <\/div>\n\n        <div class=\"cta-button\">\n            <a href=\"https:\/\/excavationchanthier.ca\/en\/contact\/\" target=\"_self\">Request A Free Quote<\/a>\n        <\/div>\n\n        <h2>Maintenance Costs &amp; Life Cycle<\/h2>\n\n        <h3>Annual Costs by Type<\/h3>\n        <div class=\"responsive-table\">\n            <table>\n                <thead>\n                    <tr>\n                        <th>Service<\/th>\n                        <th>Frequency<\/th>\n                        <th>Cost<\/th>\n                        <th>Impact if Neglected<\/th>\n                    <\/tr>\n                <\/thead>\n                <tbody>\n                    <tr>\n                        <td>Inspection<\/td>\n                        <td>Annual<\/td>\n                        <td class=\"price-highlight\">$150-250<\/td>\n                        <td>Early detection<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Cleaning<\/td>\n                        <td>Every 2 years<\/td>\n                        <td class=\"price-highlight\">$300-500<\/td>\n                        <td>Clogging -10 years life<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Unclogging<\/td>\n                        <td>As needed<\/td>\n                        <td class=\"price-highlight\">$200-400<\/td>\n                        <td>Backflow<\/td>\n                    <\/tr>\n                    <tr>\n                        <td>Minor repair<\/td>\n                        <td>Variable<\/td>\n                        <td class=\"price-highlight\">$500-1500<\/td>\n                        <td>Becomes major<\/td>\n                    <\/tr>\n                <\/tbody>\n            <\/table>\n        <\/div>\n\n        <div class=\"stats-grid\">\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">$1,333<\/span>\n                <div class=\"stat-label\">Annual amortization ($40,000 \u00f7 30 years)<\/div>\n            <\/div>\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">$250<\/span>\n                <div class=\"stat-label\">Annual maintenance cost<\/div>\n            <\/div>\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">$1,583<\/span>\n                <div class=\"stat-label\">Total yearly cost<\/div>\n            <\/div>\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">$2,000-5,000<\/span>\n                <div class=\"stat-label\">Annual risk without drain<\/div>\n            <\/div>\n        <\/div>\n\n        <section class=\"faq-section\">\n            <h2 style=\"color: #2c3e50; margin-bottom: 1.5rem; font-size: 1.8rem; border: none; padding: 0;\">Frequently Asked Questions: French Drain Cost<\/h2>\n\n            <div class=\"faq-item\">\n                <h3>Q: How much does a French drain cost in Montreal 2025?<\/h3>\n                <p><strong>A:<\/strong> French drain cost ranges $200-350 per linear foot for installation in Montreal. A typical 100-foot project costs $25,000-40,000 including variables like rock (+$150-300\/ft), difficult access (+$75-125\/ft), permits ($300-800), and taxes (+14.975%). Use the calculator above for your base estimate.<\/p>\n            <\/div>\n\n            <div class=\"faq-item\">\n                <h3>Q: Why does my French drain quote cost more than online calculators?<\/h3>\n                <p><strong>A:<\/strong> Online calculators show base pricing only. Real French drain cost includes: rock excavation (+30-50%), winter installation (+30-50%), difficult access (+20%), soil conditions (+15-25%), permits ($300-800), and taxes (+14.975%). A $30,000 calculator estimate often becomes $40,000-45,000.<\/p>\n            <\/div>\n\n            <div class=\"faq-item\">\n                <h3>Q: What is the cheapest time to install a French drain?<\/h3>\n                <p><strong>A:<\/strong> November offers the lowest French drain cost with 15-20% savings, excellent contractor availability, and 1-week timelines. Avoid December-March (+30-50% emergency pricing) and July-August (+10-15% peak pricing). September-October provides moderate savings (-10%).<\/p>\n            <\/div>\n\n            <div class=\"faq-item\">\n                <h3>Q: How much should I budget for French drain installation?<\/h3>\n                <p><strong>A:<\/strong> Budget 25-35% above calculator estimates for total French drain cost: base price + permits ($300-800) + unforeseen issues (+20%) + taxes (+14.975%) + seasonal adjustments (\u00b120%). Example: $35,000 calculator = $45,000-50,000 actual project cost.<\/p>\n            <\/div>\n\n            <div class=\"faq-item\">\n                <h3>Q: How to get the best French drain price in Montreal?<\/h3>\n                <p><strong>A:<\/strong> Best French drain cost savings: Install in November (-15-20%), pay cash (-3-5%), coordinate with neighbors (-10-15%), get 4-5 quotes, verify RBQ licensing, and combine R\u00e9noVert + 65+ tax credits (up to 35% total savings). Avoid quotes under $150\/ft or over $400\/ft without justification.<\/p>\n            <\/div>\n        <\/section>\n\n        <h2>GET YOUR REAL FRENCH DRAIN COST WITH EXCAVATION CHANTHIER<\/h2>\n        \n        <div class=\"highlight-box\">\n            <p>The calculator above provides a base, but your project has its particularities. Each factor detailed in this article can significantly influence the final French drain cost.<\/p>\n\n            <p>Want to know EXACTLY how much does a French drain cost for your situation, without surprises?<\/p>\n\n            <p>At <strong>Excavation Chanthier<\/strong>, we analyze the 20+ factors specific to your property: soil type, required depth, access, obstacles, local regulations in your borough. Our free evaluation identifies ALL elements affecting your French drain price. Expert for 20+ years across Montreal and 15 surrounding cities, we master the cost to install French drain for every configuration, including replacement scenarios.<\/p>\n\n            <p><strong>Our absolute transparency commitment:<\/strong><\/p>\n            <ul>\n                <li>Complete free evaluation with soil testing<\/li>\n                <li>Firm detailed pricing, no overruns except major discoveries<\/li>\n                <li>Identification of ALL possible savings (subsidies, timing)<\/li>\n                <li>10-year transferable warranty included<\/li>\n                <li>Complete documentation for resale<\/li>\n            <\/ul>\n\n            <p><strong>Call now<\/strong> for your free evaluation and discover your exact price, guaranteed without surprise.<\/p>\n        <\/div>\n\n        <h2>FRENCH DRAIN COST 2025 DECISION MEMO<\/h2>\n\n        <div class=\"stats-grid\">\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">$200-350<\/span>\n                <div class=\"stat-label\">Installation per linear foot<\/div>\n            <\/div>\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">$250-400<\/span>\n                <div class=\"stat-label\">Replacement (+25-30%)<\/div>\n            <\/div>\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">$100-200<\/span>\n                <div class=\"stat-label\">Repair (if <30% replacement)<\/div>\n            <\/div>\n            <div class=\"stat-card\">\n                <span class=\"stat-number\">35%<\/span>\n                <div class=\"stat-label\">Maximum potential savings<\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"info-list\">\n            <strong>Main Multiplying Factors:<\/strong>\n            <ul>\n                <li>Rock: <span class=\"percentage-negative\">\u00d72 to \u00d73<\/span><\/li>\n                <li>Winter: <span class=\"percentage-negative\">\u00d71.3 to \u00d71.5<\/span><\/li>\n                <li>Emergency &lt;48h: <span class=\"percentage-negative\">\u00d71.75 to \u00d72<\/span><\/li>\n                <li>Century home: <span class=\"percentage-negative\">\u00d71.5<\/span><\/li>\n                <li>Downtown: <span class=\"percentage-negative\">\u00d71.2 to \u00d71.25<\/span><\/li>\n            <\/ul>\n        <\/div>\n\n        <div class=\"info-list\">\n            <strong>Systematic Additional Costs:<\/strong>\n            <ul>\n                <li><a href=\"https:\/\/montreal.ca\/en\/how-to\/obtain-permit-to-construct-building\" target=\"_blank\" style=\"color: #9e0505;\" rel=\"noopener\">Permits: $300-800<\/a><\/li>\n                <li>Unforeseen: <span class=\"percentage-negative\">+20% budget<\/span><\/li>\n                <li>Taxes: <span class=\"percentage-negative\">+14.975%<\/span><\/li>\n                <li>Annual maintenance: <span class=\"price-highlight\">$200-500<\/span><\/li>\n            <\/ul>\n        <\/div>\n\n        <div class=\"info-list\">\n            <strong>Maximum Savings:<\/strong>\n            <ul>\n                <li>November: <span class=\"percentage-positive\">-15 to -20%<\/span><\/li>\n                <li>Subsidies: up to <span class=\"percentage-positive\">-35%<\/span><\/li>\n                <li>Neighbor grouping: <span class=\"percentage-positive\">-10 to -15%<\/span><\/li>\n                <li>Cash payment: <span class=\"percentage-positive\">-3 to -5%<\/span><\/li>\n            <\/ul>\n        <\/div>\n\n        <div class=\"danger-box\">\n            <strong>Absolute Warning Signals:<\/strong>\n            <ul>\n                <li>Price &lt;$150\/ft = <strong>DANGER<\/strong><\/li>\n                <li>Price &gt;$400\/ft without rock = <strong>OVERCHARGING<\/strong><\/li>\n                <li>Warranty &lt;5 years = <strong>ILLEGAL<\/strong><\/li>\n                <li>No RBQ license = <strong>FLEE<\/strong><\/li>\n                <li>Deposit &gt;30% = <strong>RISK<\/strong><\/li>\n            <\/ul>\n        <\/div>\n\n        <div class=\"highlight-box\">\n            <p><strong>Final Note:<\/strong> &#8220;Prices verified August 2025 with 25 RBQ contractors. Annual evolution +8-12%. Use the above calculator for an initial estimate of your <a href=\"https:\/\/excavationchanthier.ca\/en\/excavation\/french-drain\/\" style=\"color: #9e0505;\">French drain installation<\/a>, then adjust according to factors detailed in this article.&#8221;<\/p>\n        <\/div>\n\n        <div class=\"cta-button\">\n            <a href=\"https:\/\/excavationchanthier.ca\/en\/contact\/\" target=\"_self\">REQUEST A FREE QUOTE<\/a>\n        <\/div>\n    <\/div>\n<!-- End French Drain Cost Article -->\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>REQUEST A FREE QUOTE French Drain Cost: Complete 2025 Montreal Pricing Guide WHAT YOU NEED TO KNOW Calculator base price: $200-350 per linear foot Variables can double the price: rock, winter, emergency 68% of projects exceed initial budget by 15-25% Potential savings: up to 35% (subsidies + timing) Warning signal: price &lt;$150\/ft = DANGER Introduction [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":8640,"parent":367,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_theme","meta":{"footnotes":""},"class_list":["post-5432","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/excavationchanthier.ca\/en\/wp-json\/wp\/v2\/pages\/5432","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/excavationchanthier.ca\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/excavationchanthier.ca\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/excavationchanthier.ca\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/excavationchanthier.ca\/en\/wp-json\/wp\/v2\/comments?post=5432"}],"version-history":[{"count":1,"href":"https:\/\/excavationchanthier.ca\/en\/wp-json\/wp\/v2\/pages\/5432\/revisions"}],"predecessor-version":[{"id":8638,"href":"https:\/\/excavationchanthier.ca\/en\/wp-json\/wp\/v2\/pages\/5432\/revisions\/8638"}],"up":[{"embeddable":true,"href":"https:\/\/excavationchanthier.ca\/en\/wp-json\/wp\/v2\/pages\/367"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/excavationchanthier.ca\/en\/wp-json\/wp\/v2\/media\/8640"}],"wp:attachment":[{"href":"https:\/\/excavationchanthier.ca\/en\/wp-json\/wp\/v2\/media?parent=5432"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}