{"id":2685,"date":"2026-06-15T09:04:04","date_gmt":"2026-06-15T09:04:04","guid":{"rendered":"https:\/\/aiper.com\/blogs\/?page_id=2685"},"modified":"2026-06-24T04:24:06","modified_gmt":"2026-06-24T04:24:06","slug":"calculateur-de-pave","status":"publish","type":"page","link":"https:\/\/aiper.com\/blogs\/fr\/calculateur-de-pave\/","title":{"rendered":"Calculateur de Pav\u00e9 Pr\u00e9cis"},"content":{"rendered":"\n<div class=\"pcalc-wrapper\" id=\"pcalc-root\">\n    <style>\n        :root {\n            --pcalc-bg: #f8f7f4;\n            --pcalc-card: #ffffff;\n            --pcalc-text: #1a1a1a;\n            --pcalc-text-secondary: #5c5c5c;\n            --pcalc-border: #e2e0da;\n            --pcalc-border-focus: #c8c5bd;\n            --pcalc-teal: #1ecad3;\n            --pcalc-teal-deep: #17a8b0;\n            --pcalc-purple: #9486f7;\n            --pcalc-purple-deep: #7b6de0;\n            --pcalc-radius: 10px;\n            --pcalc-radius-sm: 6px;\n            --pcalc-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n            --pcalc-transition: 0.18s ease;\n        }\n\n        .pcalc-wrapper {\n            font-family: var(--pcalc-font);\n            color: var(--pcalc-text);\n            background: var(--pcalc-bg);\n            padding: 32px 28px;\n            border-radius: 14px;\n            max-width: 720px;\n            margin: 0 auto;\n            box-sizing: border-box;\n            line-height: 1.5;\n            -webkit-font-smoothing: antialiased;\n            -moz-osx-font-smoothing: grayscale;\n        }\n        .pcalc-wrapper *,\n        .pcalc-wrapper *::before,\n        .pcalc-wrapper *::after {\n            box-sizing: border-box;\n        }\n\n        \/* Toggle *\/\n        .pcalc-toggle-group {\n            display: flex;\n            align-items: center;\n            gap: 0;\n            background: #eae7e1;\n            border-radius: 28px;\n            padding: 4px;\n            margin-bottom: 28px;\n            width: fit-content;\n        }\n        .pcalc-toggle-btn {\n            font-family: var(--pcalc-font);\n            font-size: 13.5px;\n            font-weight: 600;\n            letter-spacing: 0.01em;\n            padding: 9px 20px;\n            border-radius: 24px;\n            border: none;\n            background: transparent;\n            color: var(--pcalc-text-secondary);\n            cursor: pointer;\n            transition: all var(--pcalc-transition);\n            white-space: nowrap;\n            user-select: none;\n            -webkit-tap-highlight-color: transparent;\n        }\n        .pcalc-toggle-btn.active {\n            background: #ffffff;\n            color: var(--pcalc-text);\n            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 8px rgba(0, 0, 0, 0.04);\n            cursor: default;\n            border-left: 3px solid var(--pcalc-purple);\n            border-right: 3px solid var(--pcalc-teal);\n            border-radius: 24px;\n            padding: 9px 17px;\n        }\n        .pcalc-toggle-btn:not(.active):hover {\n            color: #3a3a3a;\n        }\n        .pcalc-toggle-btn:focus-visible {\n            outline: 2px solid var(--pcalc-teal);\n            outline-offset: 2px;\n        }\n\n        \/* Section cards *\/\n        .pcalc-section {\n            background: var(--pcalc-card);\n            border: 1px solid var(--pcalc-border);\n            border-radius: var(--pcalc-radius);\n            padding: 22px 24px;\n            margin-bottom: 16px;\n        }\n        .pcalc-section-title {\n            font-size: 13px;\n            font-weight: 700;\n            text-transform: uppercase;\n            letter-spacing: 0.06em;\n            color: var(--pcalc-text-secondary);\n            margin: 0 0 14px 0;\n        }\n\n        \/* Form rows *\/\n        .pcalc-row {\n            display: flex;\n            flex-wrap: wrap;\n            gap: 12px 18px;\n            align-items: flex-end;\n            margin-bottom: 10px;\n        }\n        .pcalc-row:last-child {\n            margin-bottom: 0;\n        }\n        .pcalc-field {\n            display: flex;\n            flex-direction: column;\n            gap: 4px;\n            flex: 1;\n            min-width: 70px;\n        }\n        .pcalc-field label {\n            font-size: 12px;\n            font-weight: 600;\n            color: var(--pcalc-text-secondary);\n            letter-spacing: 0.02em;\n            text-transform: uppercase;\n        }\n        .pcalc-field input,\n        .pcalc-field select {\n            font-family: var(--pcalc-font);\n            font-size: 15px;\n            padding: 10px 12px;\n            border: 1px solid var(--pcalc-border);\n            border-radius: var(--pcalc-radius-sm);\n            background: #fcfbf9;\n            color: var(--pcalc-text);\n            transition: border-color var(--pcalc-transition), box-shadow var(--pcalc-transition);\n            width: 100%;\n            -webkit-appearance: none;\n            appearance: none;\n            min-width: 0;\n        }\n        .pcalc-field input:focus,\n        .pcalc-field select:focus {\n            outline: none;\n            border-color: var(--pcalc-teal);\n            box-shadow: 0 0 0 3px rgba(30, 202, 211, 0.10);\n            background: #fff;\n        }\n        .pcalc-field select {\n            background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235c5c5c' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'\/%3E%3C\/svg%3E\");\n            background-repeat: no-repeat;\n            background-position: right 12px center;\n            padding-right: 34px;\n            cursor: pointer;\n        }\n        .pcalc-unit-suffix {\n            font-size: 12px;\n            font-weight: 600;\n            color: var(--pcalc-text-secondary);\n            letter-spacing: 0.03em;\n            text-transform: uppercase;\n            white-space: nowrap;\n            align-self: flex-end;\n            padding-bottom: 12px;\n        }\n        .pcalc-field-dual {\n            display: flex;\n            gap: 6px;\n            align-items: center;\n        }\n        .pcalc-field-dual input {\n            flex: 1;\n            min-width: 40px;\n        }\n        .pcalc-field-dual .pcalc-unit-suffix {\n            padding-bottom: 0;\n            align-self: center;\n            font-size: 11px;\n            min-width: 16px;\n            text-align: center;\n        }\n        .pcalc-field-dual-wrap {\n            display: flex;\n            gap: 10px;\n            flex: 1;\n            min-width: 120px;\n        }\n        .pcalc-field-dual-wrap .pcalc-field-dual {\n            flex: 1;\n            gap: 4px;\n        }\n\n        \/* Add area button *\/\n        .pcalc-add-btn {\n            font-family: var(--pcalc-font);\n            font-size: 13px;\n            font-weight: 600;\n            color: var(--pcalc-purple);\n            background: none;\n            border: 1.5px dashed #d5d0e8;\n            border-radius: var(--pcalc-radius-sm);\n            padding: 10px 16px;\n            cursor: pointer;\n            transition: all var(--pcalc-transition);\n            letter-spacing: 0.02em;\n            margin-top: 4px;\n            width: 100%;\n            text-align: center;\n            -webkit-tap-highlight-color: transparent;\n        }\n        .pcalc-add-btn:hover {\n            border-color: var(--pcalc-purple);\n            background: rgba(148, 134, 247, 0.04);\n            color: var(--pcalc-purple-deep);\n        }\n        .pcalc-add-btn:focus-visible {\n            outline: 2px solid var(--pcalc-purple);\n            outline-offset: 2px;\n        }\n        .pcalc-add-btn.remove-mode {\n            border-style: solid;\n            border-color: #e0d8d8;\n            color: #9e8a8a;\n        }\n        .pcalc-add-btn.remove-mode:hover {\n            border-color: #c9a8a8;\n            color: #7a6060;\n            background: rgba(180, 140, 140, 0.06);\n        }\n\n        \/* Action buttons *\/\n        .pcalc-actions {\n            display: flex;\n            gap: 12px;\n            margin-top: 6px;\n            flex-wrap: wrap;\n        }\n        .pcalc-btn {\n            font-family: var(--pcalc-font);\n            font-size: 15px;\n            font-weight: 650;\n            letter-spacing: 0.02em;\n            padding: 13px 28px;\n            border-radius: var(--pcalc-radius-sm);\n            border: none;\n            cursor: pointer;\n            transition: all var(--pcalc-transition);\n            -webkit-tap-highlight-color: transparent;\n            white-space: nowrap;\n            flex: 1 1 0;\n            min-width: 120px;\n            text-align: center;\n        }\n        .pcalc-btn:focus-visible {\n            outline: 2px solid var(--pcalc-teal);\n            outline-offset: 3px;\n        }\n        .pcalc-btn-calculate {\n            background: linear-gradient(135deg, #1ecad3 0%, #9486f7 100%);\n            color: #ffffff;\n            border: none;\n        }\n        .pcalc-btn-calculate:hover {\n            background: linear-gradient(135deg, #17a8b0 0%, #7b6de0 100%);\n            box-shadow: 0 4px 14px rgba(30, 202, 211, 0.30), 0 2px 8px rgba(148, 134, 247, 0.20);\n            transform: translateY(-1px);\n        }\n        .pcalc-btn-calculate:active {\n            background: linear-gradient(135deg, #14969e 0%, #6a5cc9 100%);\n            transform: translateY(0);\n        }\n        .pcalc-btn-reset {\n            background: transparent;\n            color: var(--pcalc-text-secondary);\n            border: 1.5px solid var(--pcalc-border);\n            border-color: #cfcbe6;\n        }\n        .pcalc-btn-reset:hover {\n            border-color: #b9b3dc;\n            color: var(--pcalc-text);\n            background: #faf8ff;\n            box-shadow: 0 2px 8px rgba(148, 134, 247, 0.08);\n        }\n        .pcalc-btn-reset:active {\n            background: #f0eefb;\n        }\n\n        \/* Results *\/\n        .pcalc-results {\n            display: none;\n            background: var(--pcalc-card);\n            border: 1px solid var(--pcalc-border);\n            border-radius: var(--pcalc-radius);\n            padding: 26px 28px;\n            margin-top: 20px;\n            border-left: 4px solid;\n            border-image: linear-gradient(to bottom, #1ecad3, #9486f7) 1;\n            border-image-slice: 1;\n        }\n        .pcalc-results.visible {\n            display: block;\n            animation: pcalc-fadein 0.3s ease;\n        }\n        @keyframes pcalc-fadein {\n            from {\n                opacity: 0;\n                transform: translateY(8px);\n            }\n            to {\n                opacity: 1;\n                transform: translateY(0);\n            }\n        }\n        .pcalc-results-title {\n            font-size: 14px;\n            font-weight: 700;\n            text-transform: uppercase;\n            letter-spacing: 0.06em;\n            color: var(--pcalc-text-secondary);\n            margin: 0 0 16px 0;\n        }\n        .pcalc-result-grid {\n            display: grid;\n            grid-template-columns: 1fr 1fr;\n            gap: 14px 20px;\n        }\n        @media (max-width: 480px) {\n            .pcalc-result-grid {\n                grid-template-columns: 1fr;\n            }\n            .pcalc-wrapper {\n                padding: 20px 14px;\n            }\n            .pcalc-section {\n                padding: 16px 14px;\n            }\n            .pcalc-row {\n                gap: 8px 10px;\n            }\n            .pcalc-actions {\n                flex-wrap: nowrap;\n                gap: 8px;\n            }\n            .pcalc-btn {\n                font-size: 13px;\n                padding: 12px 8px;\n                flex: 1 1 auto;\n                min-width: 0;\n                white-space: nowrap;\n            }\n        }\n        .pcalc-result-item {\n            background: #fcfbf9;\n            border-radius: var(--pcalc-radius-sm);\n            padding: 14px 16px;\n            border: 1px solid #eceae4;\n        }\n        .pcalc-result-label {\n            font-size: 11px;\n            font-weight: 600;\n            text-transform: uppercase;\n            letter-spacing: 0.05em;\n            color: var(--pcalc-text-secondary);\n            margin-bottom: 4px;\n        }\n        .pcalc-result-value {\n            font-size: 22px;\n            font-weight: 700;\n            color: var(--pcalc-text);\n            letter-spacing: -0.01em;\n        }\n        .pcalc-result-value.accent-teal {\n            color: var(--pcalc-teal-deep);\n        }\n        .pcalc-result-sub {\n            font-size: 12px;\n            color: var(--pcalc-text-secondary);\n            margin-top: 2px;\n        }\n        .pcalc-result-note {\n            margin-top: 16px;\n            padding: 12px 16px;\n            background: #fdfcfa;\n            border-radius: var(--pcalc-radius-sm);\n            font-size: 12.5px;\n            color: #6b6358;\n            line-height: 1.5;\n            border: 1px solid #ece8df;\n            letter-spacing: 0.01em;\n        }\n        .pcalc-result-note strong {\n            color: #4a3f2f;\n        }\n        .pcalc-divider {\n            border: none;\n            border-top: 1px solid var(--pcalc-border);\n            margin: 14px 0;\n        }\n    <\/style>\n\n    <!-- Syst\u00e8me de mesures -->\n    <div class=\"pcalc-toggle-group\" role=\"radiogroup\" aria-label=\"Syst\u00e8me de mesure\">\n        <button class=\"pcalc-toggle-btn active\" data-pcalc-system=\"imperial\" id=\"pcalc-toggle-imperial\" aria-pressed=\"true\">Imp\u00e9rial (US\/UK)<\/button>\n        <button class=\"pcalc-toggle-btn\" data-pcalc-system=\"metric\" id=\"pcalc-toggle-metric\" aria-pressed=\"false\">M\u00e9trique (AU\/EU)<\/button>\n    <\/div>\n\n    <!-- Sp\u00e9cifications des pav\u00e9s -->\n    <div class=\"pcalc-section\">\n        <p class=\"pcalc-section-title\">Sp\u00e9cifications des pav\u00e9s<\/p>\n        <div class=\"pcalc-row\">\n            <div class=\"pcalc-field\" style=\"flex:2; min-width:160px;\">\n                <label for=\"pcalc-preset\">Taille de pav\u00e9<\/label>\n                <select id=\"pcalc-preset\">\n                    <option value=\"4x8\">4\u2033 \u00d7 8\u2033 (Format standard)<\/option>\n                    <option value=\"6x6\">6\u2033 \u00d7 6\u2033 (Carr\u00e9)<\/option>\n                    <option value=\"12x12\">12\u2033 \u00d7 12\u2033 (Grand format)<\/option>\n                    <option value=\"custom\">Taille personnalis\u00e9e<\/option>\n                <\/select>\n            <\/div>\n            <div id=\"pcalc-custom-fields\" style=\"display:none; flex:3; min-width:200px;\">\n                <div class=\"pcalc-field-dual-wrap\">\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-custom-length\" placeholder=\"L\" min=\"0.1\" step=\"any\" aria-label=\"Longueur personnalis\u00e9e\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-custom-unit\">po<\/span>\n                    <\/div>\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-custom-width\" placeholder=\"l\" min=\"0.1\" step=\"any\" aria-label=\"Largeur personnalis\u00e9e\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-custom-unit2\">po<\/span>\n                    <\/div>\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-custom-thickness\" placeholder=\"\u00c9p.\" min=\"0.1\" step=\"any\" aria-label=\"\u00c9paisseur personnalis\u00e9e\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-custom-unit3\">po<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Surface du projet -->\n    <div class=\"pcalc-section\" id=\"pcalc-area-section\">\n        <p class=\"pcalc-section-title\">Surface du projet<\/p>\n        <!-- Zone 1 -->\n        <div class=\"pcalc-row\" id=\"pcalc-area1-row\">\n            <div class=\"pcalc-field\" style=\"flex:2; min-width:180px;\">\n                <label>Longueur<\/label>\n                <div class=\"pcalc-field-dual-wrap\">\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-a1-len-major\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Longueur zone 1 (unit\u00e9 principale)\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-len-major\">pi<\/span>\n                    <\/div>\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-a1-len-minor\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Longueur zone 1 (sous-unit\u00e9)\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-len-minor\">po<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n            <div class=\"pcalc-field\" style=\"flex:2; min-width:180px;\">\n                <label>Largeur<\/label>\n                <div class=\"pcalc-field-dual-wrap\">\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-a1-wid-major\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Largeur zone 1 (unit\u00e9 principale)\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-wid-major\">pi<\/span>\n                    <\/div>\n                    <div class=\"pcalc-field-dual\">\n                        <input type=\"number\" id=\"pcalc-a1-wid-minor\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Largeur zone 1 (sous-unit\u00e9)\">\n                        <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-wid-minor\">po<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n\n        <!-- Zone 2 (cach\u00e9e au d\u00e9part) -->\n        <div id=\"pcalc-area2-container\" style=\"display:none;\">\n            <hr class=\"pcalc-divider\">\n            <p style=\"font-size:12px;font-weight:600;color:var(--pcalc-text-secondary);margin:0 0 8px 0;text-transform:uppercase;letter-spacing:0.04em;\">Zone 2<\/p>\n            <div class=\"pcalc-row\" id=\"pcalc-area2-row\">\n                <div class=\"pcalc-field\" style=\"flex:2; min-width:180px;\">\n                    <label>Longueur<\/label>\n                    <div class=\"pcalc-field-dual-wrap\">\n                        <div class=\"pcalc-field-dual\">\n                            <input type=\"number\" id=\"pcalc-a2-len-major\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Longueur zone 2 (unit\u00e9 principale)\">\n                            <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-len-major2\">pi<\/span>\n                        <\/div>\n                        <div class=\"pcalc-field-dual\">\n                            <input type=\"number\" id=\"pcalc-a2-len-minor\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Longueur zone 2 (sous-unit\u00e9)\">\n                            <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-len-minor2\">po<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"pcalc-field\" style=\"flex:2; min-width:180px;\">\n                    <label>Largeur<\/label>\n                    <div class=\"pcalc-field-dual-wrap\">\n                        <div class=\"pcalc-field-dual\">\n                            <input type=\"number\" id=\"pcalc-a2-wid-major\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Largeur zone 2 (unit\u00e9 principale)\">\n                            <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-wid-major2\">pi<\/span>\n                        <\/div>\n                        <div class=\"pcalc-field-dual\">\n                            <input type=\"number\" id=\"pcalc-a2-wid-minor\" placeholder=\"0\" min=\"0\" step=\"any\" aria-label=\"Largeur zone 2 (sous-unit\u00e9)\">\n                            <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-wid-minor2\">po<\/span>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        <button class=\"pcalc-add-btn\" id=\"pcalc-add-area-btn\" type=\"button\">+ Ajouter une zone<\/button>\n    <\/div>\n\n    <!-- \u00c9paisseurs de fondation et de lit de pose -->\n    <div class=\"pcalc-section\">\n        <p class=\"pcalc-section-title\">Fondation &amp; lit de pose<\/p>\n        <div class=\"pcalc-row\">\n            <div class=\"pcalc-field\" style=\"flex:1; min-width:100px;\">\n                <label for=\"pcalc-gravel-depth\">\u00c9paisseur du gravier<\/label>\n                <div class=\"pcalc-field-dual\">\n                    <input type=\"number\" id=\"pcalc-gravel-depth\" value=\"4\" min=\"0.5\" step=\"any\" aria-label=\"\u00c9paisseur gravier\">\n                    <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-gravel-depth\">po<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"pcalc-field\" style=\"flex:1; min-width:100px;\">\n                <label for=\"pcalc-sand-depth\">\u00c9paisseur du sable<\/label>\n                <div class=\"pcalc-field-dual\">\n                    <input type=\"number\" id=\"pcalc-sand-depth\" value=\"1\" min=\"0.25\" step=\"any\" aria-label=\"\u00c9paisseur sable\">\n                    <span class=\"pcalc-unit-suffix\" id=\"pcalc-unit-sand-depth\">po<\/span>\n                <\/div>\n            <\/div>\n            <div class=\"pcalc-field\" style=\"flex:1; min-width:90px; max-width:130px;\">\n                <label for=\"pcalc-waste\">Marge de coupe (%)<\/label>\n                <input type=\"number\" id=\"pcalc-waste\" value=\"10\" min=\"0\" max=\"50\" step=\"any\" aria-label=\"Pourcentage de perte\">\n            <\/div>\n        <\/div>\n    <\/div>\n\n    <!-- Boutons d'action -->\n    <div class=\"pcalc-actions\">\n        <button class=\"pcalc-btn pcalc-btn-calculate\" id=\"pcalc-calculate-btn\" type=\"button\">Calculer<\/button>\n        <button class=\"pcalc-btn pcalc-btn-reset\" id=\"pcalc-reset-btn\" type=\"button\">R\u00e9initialiser<\/button>\n    <\/div>\n\n    <!-- R\u00e9sultats -->\n    <div class=\"pcalc-results\" id=\"pcalc-results\">\n        <p class=\"pcalc-results-title\">Aper\u00e7u des mat\u00e9riaux<\/p>\n        <div class=\"pcalc-result-grid\" id=\"pcalc-result-grid\">\n            <!-- Rempli par JS -->\n        <\/div>\n        <div class=\"pcalc-result-note\" id=\"pcalc-result-note\">\n            <!-- Rempli par JS -->\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n    (function() {\n        const root = document.getElementById('pcalc-root');\n        if (!root) return;\n\n        \/\/ \u00c9tat\n        let currentSystem = 'imperial';\n        let area2Visible = false;\n\n        \/\/ Pr\u00e9r\u00e9glages\n        const imperialPresets = {\n            '4x8': { length: 4, width: 8, thickness: 2.375, label: '4\u2033 \u00d7 8\u2033 (Format standard)' },\n            '6x6': { length: 6, width: 6, thickness: 2.375, label: '6\u2033 \u00d7 6\u2033 (Carr\u00e9)' },\n            '12x12': { length: 12, width: 12, thickness: 2, label: '12\u2033 \u00d7 12\u2033 (Grand format)' },\n            'custom': { length: null, width: null, thickness: null, label: 'Taille personnalis\u00e9e' }\n        };\n        const metricPresets = {\n            '10x20': { length: 10, width: 20, thickness: 5, label: '10 \u00d7 20 cm (Standard)' },\n            '15x15': { length: 15, width: 15, thickness: 6, label: '15 \u00d7 15 cm (Carr\u00e9)' },\n            '30x30': { length: 30, width: 30, thickness: 6, label: '30 \u00d7 30 cm (Grand format)' },\n            'custom': { length: null, width: null, thickness: null, label: 'Taille personnalis\u00e9e' }\n        };\n\n        \/\/ R\u00e9f\u00e9rences DOM\n        const toggleImperial = document.getElementById('pcalc-toggle-imperial');\n        const toggleMetric = document.getElementById('pcalc-toggle-metric');\n        const presetSelect = document.getElementById('pcalc-preset');\n        const customFields = document.getElementById('pcalc-custom-fields');\n        const customLength = document.getElementById('pcalc-custom-length');\n        const customWidth = document.getElementById('pcalc-custom-width');\n        const customThickness = document.getElementById('pcalc-custom-thickness');\n        const customUnitEls = [\n            document.getElementById('pcalc-custom-unit'),\n            document.getElementById('pcalc-custom-unit2'),\n            document.getElementById('pcalc-custom-unit3')\n        ];\n        const area2Container = document.getElementById('pcalc-area2-container');\n        const addAreaBtn = document.getElementById('pcalc-add-area-btn');\n        const gravelDepth = document.getElementById('pcalc-gravel-depth');\n        const sandDepth = document.getElementById('pcalc-sand-depth');\n        const wasteInput = document.getElementById('pcalc-waste');\n        const unitGravelDepth = document.getElementById('pcalc-unit-gravel-depth');\n        const unitSandDepth = document.getElementById('pcalc-unit-sand-depth');\n        const calculateBtn = document.getElementById('pcalc-calculate-btn');\n        const resetBtn = document.getElementById('pcalc-reset-btn');\n        const resultsDiv = document.getElementById('pcalc-results');\n        const resultGrid = document.getElementById('pcalc-result-grid');\n        const resultNote = document.getElementById('pcalc-result-note');\n\n        \/\/ Tous les suffixes d'unit\u00e9s pour les surfaces\n        const allMajorUnits = document.querySelectorAll('[id^=\"pcalc-unit-len-major\"], [id^=\"pcalc-unit-wid-major\"]');\n        const allMinorUnits = document.querySelectorAll('[id^=\"pcalc-unit-len-minor\"], [id^=\"pcalc-unit-wid-minor\"]');\n\n        \/\/ IDs des champs de surface\n        const areaInputIds = [\n            'pcalc-a1-len-major', 'pcalc-a1-len-minor', 'pcalc-a1-wid-major', 'pcalc-a1-wid-minor',\n            'pcalc-a2-len-major', 'pcalc-a2-len-minor', 'pcalc-a2-wid-major', 'pcalc-a2-wid-minor'\n        ];\n\n        function getAreaInputVal(id) {\n            const el = document.getElementById(id);\n            if (!el) return 0;\n            const v = parseFloat(el.value);\n            return isNaN(v) || v < 0 ? 0 : v;\n        }\n\n        function getTotalAreaSqBase() {\n            if (currentSystem === 'imperial') {\n                const a1LenFt = getAreaInputVal('pcalc-a1-len-major') + getAreaInputVal('pcalc-a1-len-minor') \/ 12;\n                const a1WidFt = getAreaInputVal('pcalc-a1-wid-major') + getAreaInputVal('pcalc-a1-wid-minor') \/ 12;\n                let totalSqFt = a1LenFt * a1WidFt;\n                if (area2Visible) {\n                    const a2LenFt = getAreaInputVal('pcalc-a2-len-major') + getAreaInputVal('pcalc-a2-len-minor') \/ 12;\n                    const a2WidFt = getAreaInputVal('pcalc-a2-wid-major') + getAreaInputVal('pcalc-a2-wid-minor') \/ 12;\n                    totalSqFt += a2LenFt * a2WidFt;\n                }\n                return totalSqFt;\n            } else {\n                const a1LenM = getAreaInputVal('pcalc-a1-len-major') + getAreaInputVal('pcalc-a1-len-minor') \/ 100;\n                const a1WidM = getAreaInputVal('pcalc-a1-wid-major') + getAreaInputVal('pcalc-a1-wid-minor') \/ 100;\n                let totalSqM = a1LenM * a1WidM;\n                if (area2Visible) {\n                    const a2LenM = getAreaInputVal('pcalc-a2-len-major') + getAreaInputVal('pcalc-a2-len-minor') \/ 100;\n                    const a2WidM = getAreaInputVal('pcalc-a2-wid-major') + getAreaInputVal('pcalc-a2-wid-minor') \/ 100;\n                    totalSqM += a2LenM * a2WidM;\n                }\n                return totalSqM;\n            }\n        }\n\n        function getPaverDimensions() {\n            const presetVal = presetSelect.value;\n            const presets = currentSystem === 'imperial' ? imperialPresets : metricPresets;\n            if (presetVal !== 'custom' &#038;&#038; presets[presetVal]) {\n                const p = presets[presetVal];\n                return { length: p.length, width: p.width, thickness: p.thickness };\n            }\n            const l = parseFloat(customLength.value);\n            const w = parseFloat(customWidth.value);\n            const t = parseFloat(customThickness.value);\n            return {\n                length: isNaN(l) || l <= 0 ? null : l,\n                width: isNaN(w) || w <= 0 ? null : w,\n                thickness: isNaN(t) || t <= 0 ? null : t\n            };\n        }\n\n        function getGravelDepth() {\n            const v = parseFloat(gravelDepth.value);\n            return isNaN(v) || v <= 0 ? (currentSystem === 'imperial' ? 4 : 10) : v;\n        }\n\n        function getSandDepth() {\n            const v = parseFloat(sandDepth.value);\n            return isNaN(v) || v <= 0 ? (currentSystem === 'imperial' ? 1 : 2.5) : v;\n        }\n\n        function getWastePercent() {\n            const v = parseFloat(wasteInput.value);\n            return isNaN(v) || v < 0 ? 10 : Math.min(v, 50);\n        }\n\n        function updateSystemUI() {\n            toggleImperial.classList.toggle('active', currentSystem === 'imperial');\n            toggleMetric.classList.toggle('active', currentSystem === 'metric');\n            toggleImperial.setAttribute('aria-pressed', currentSystem === 'imperial' ? 'true' : 'false');\n            toggleMetric.setAttribute('aria-pressed', currentSystem === 'metric' ? 'true' : 'false');\n\n            const presets = currentSystem === 'imperial' ? imperialPresets : metricPresets;\n            const currentVal = presetSelect.value;\n            presetSelect.innerHTML = '';\n            for (const [key, p] of Object.entries(presets)) {\n                const opt = document.createElement('option');\n                opt.value = key;\n                opt.textContent = p.label;\n                presetSelect.appendChild(opt);\n            }\n            const presetKeys = Object.keys(presets);\n            if (presetKeys.includes(currentVal) &#038;&#038; currentVal !== 'custom') {\n                presetSelect.value = currentVal;\n            } else if (currentVal === 'custom') {\n                presetSelect.value = 'custom';\n            } else {\n                presetSelect.value = presetKeys[0];\n            }\n\n            const unitLabel = currentSystem === 'imperial' ? 'po' : 'cm';\n            customUnitEls.forEach(el => { if (el) el.textContent = unitLabel; });\n\n            toggleCustomFields();\n\n            const majorUnit = currentSystem === 'imperial' ? 'pi' : 'm';\n            const minorUnit = currentSystem === 'imperial' ? 'po' : 'cm';\n            allMajorUnits.forEach(el => { el.textContent = majorUnit; });\n            allMinorUnits.forEach(el => { el.textContent = minorUnit; });\n\n            unitGravelDepth.textContent = currentSystem === 'imperial' ? 'po' : 'cm';\n            unitSandDepth.textContent = currentSystem === 'imperial' ? 'po' : 'cm';\n\n            gravelDepth.value = currentSystem === 'imperial' ? 4 : 10;\n            sandDepth.value = currentSystem === 'imperial' ? 1 : 2.5;\n        }\n\n        function toggleCustomFields() {\n            const isCustom = presetSelect.value === 'custom';\n            customFields.style.display = isCustom ? 'block' : 'none';\n            if (!isCustom) {\n                customLength.value = '';\n                customWidth.value = '';\n                customThickness.value = '';\n            }\n        }\n\n        function toggleArea2() {\n            area2Visible = !area2Visible;\n            area2Container.style.display = area2Visible ? 'block' : 'none';\n            if (area2Visible) {\n                addAreaBtn.textContent = '\u2212 Retirer la zone';\n                addAreaBtn.classList.add('remove-mode');\n            } else {\n                addAreaBtn.textContent = '+ Ajouter une zone';\n                addAreaBtn.classList.remove('remove-mode');\n                document.getElementById('pcalc-a2-len-major').value = '';\n                document.getElementById('pcalc-a2-len-minor').value = '';\n                document.getElementById('pcalc-a2-wid-major').value = '';\n                document.getElementById('pcalc-a2-wid-minor').value = '';\n            }\n        }\n\n        function hideResults() {\n            resultsDiv.classList.remove('visible');\n            resultGrid.innerHTML = '';\n            resultNote.innerHTML = '';\n        }\n\n        function resetAll() {\n            currentSystem = 'imperial';\n            area2Visible = false;\n            area2Container.style.display = 'none';\n            addAreaBtn.textContent = '+ Ajouter une zone';\n            addAreaBtn.classList.remove('remove-mode');\n            updateSystemUI();\n            presetSelect.value = '4x8';\n            toggleCustomFields();\n            wasteInput.value = 10;\n            areaInputIds.forEach(id => {\n                const el = document.getElementById(id);\n                if (el) el.value = '';\n            });\n            hideResults();\n        }\n\n        function calculate() {\n            const totalArea = getTotalAreaSqBase();\n            if (totalArea <= 0) {\n                hideResults();\n                resultGrid.innerHTML =\n                    '<div class=\"pcalc-result-item\" style=\"grid-column:1\/-1;\"><div class=\"pcalc-result-label\">Erreur<\/div><div class=\"pcalc-result-value\" style=\"font-size:15px;\">Veuillez entrer des dimensions valides avant de calculer.<\/div><\/div>';\n                resultNote.innerHTML = '';\n                resultsDiv.classList.add('visible');\n                return;\n            }\n\n            const paverDims = getPaverDimensions();\n            if (paverDims.length === null || paverDims.width === null || paverDims.thickness === null) {\n                hideResults();\n                resultGrid.innerHTML =\n                    '<div class=\"pcalc-result-item\" style=\"grid-column:1\/-1;\"><div class=\"pcalc-result-label\">Erreur<\/div><div class=\"pcalc-result-value\" style=\"font-size:15px;\">Veuillez entrer des dimensions de pav\u00e9 personnalis\u00e9es valides.<\/div><\/div>';\n                resultNote.innerHTML = '';\n                resultsDiv.classList.add('visible');\n                return;\n            }\n\n            const gravelD = getGravelDepth();\n            const sandD = getSandDepth();\n            const wastePct = getWastePercent();\n\n            if (currentSystem === 'imperial') {\n                const totalSqFt = totalArea;\n                const paverSqFt = (paverDims.length * paverDims.width) \/ 144;\n                const basePavers = Math.ceil(totalSqFt \/ paverSqFt);\n                const paversWithWaste = Math.ceil(basePavers * (1 + wastePct \/ 100));\n                const wastePavers = paversWithWaste - basePavers;\n\n                const gravelDepthFt = gravelD \/ 12;\n                const gravelCuYd = totalSqFt * gravelDepthFt \/ 27;\n                const sandDepthFt = sandD \/ 12;\n                const sandCuYd = totalSqFt * sandDepthFt \/ 27;\n\n                const jointWidthIn = 0.125;\n                const jointWidthFt = jointWidthIn \/ 12;\n                const thicknessFt = paverDims.thickness \/ 12;\n                const paverLenIn = paverDims.length;\n                const paverWidIn = paverDims.width;\n                const linearJointsPerSqFt = (12 \/ paverLenIn) + (12 \/ paverWidIn);\n                const jointVolPerSqFt = linearJointsPerSqFt * thicknessFt * jointWidthFt;\n                const totalJointVolCuFt = totalSqFt * jointVolPerSqFt;\n                const sandDensityLbsPerCuFt = 100;\n                const totalSandLbs = totalJointVolCuFt * sandDensityLbsPerCuFt;\n                const bagWeightLbs = 50;\n                const polyBags = Math.ceil(totalSandLbs \/ bagWeightLbs);\n\n                resultGrid.innerHTML = `\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Surface totale<\/div>\n                        <div class=\"pcalc-result-value accent-teal\">${totalSqFt.toFixed(2)} <span style=\"font-size:14px;font-weight:500;\">pi\u00b2<\/span><\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Pav\u00e9s n\u00e9cessaires<\/div>\n                        <div class=\"pcalc-result-value accent-teal\">${paversWithWaste.toLocaleString()}<\/div>\n                        <div class=\"pcalc-result-sub\">Base : ${basePavers.toLocaleString()} + ${wastePavers.toLocaleString()} coupe (${wastePct}%)<\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Gravier (${gravelD}\u2033 \u00e9p.)<\/div>\n                        <div class=\"pcalc-result-value\">${gravelCuYd.toFixed(3)} <span style=\"font-size:14px;font-weight:500;\">vg\u00b3<\/span><\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Sable de pose (${sandD}\u2033 \u00e9p.)<\/div>\n                        <div class=\"pcalc-result-value\">${sandCuYd.toFixed(3)} <span style=\"font-size:14px;font-weight:500;\">vg\u00b3<\/span><\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Sable polym\u00e8re<\/div>\n                        <div class=\"pcalc-result-value\">${polyBags} <span style=\"font-size:14px;font-weight:500;\">\u00d7 sac de 50 lb<\/span><\/div>\n                        <div class=\"pcalc-result-sub\">Remplissage des joints bas\u00e9 sur \u215b\u2033<\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Surface unitaire<\/div>\n                        <div class=\"pcalc-result-value\" style=\"font-size:18px;\">${paverSqFt.toFixed(4)} <span style=\"font-size:13px;font-weight:500;\">pi\u00b2 par pav\u00e9<\/span><\/div>\n                    <\/div>\n                `;\n                resultNote.innerHTML = `\n                    <strong>Note sur la marge de coupe :<\/strong> Calculs incluant ${wastePct}% de perte pour d\u00e9coupes et casses.\n                    Les motifs complexes comme <strong>chevrons<\/strong> ou <strong>Versailles<\/strong> peuvent n\u00e9cessiter <strong>15\u201320%<\/strong> de marge suppl\u00e9mentaire.\n                    Commandez toujours 5\u201310% de plus que l'estimation pour les designs complexes.\n                `;\n            } else {\n                const totalSqM = totalArea;\n                const paverSqM = (paverDims.length * paverDims.width) \/ 10000;\n                const basePavers = Math.ceil(totalSqM \/ paverSqM);\n                const paversWithWaste = Math.ceil(basePavers * (1 + wastePct \/ 100));\n                const wastePavers = paversWithWaste - basePavers;\n\n                const gravelDepthM = gravelD \/ 100;\n                const gravelCuM = totalSqM * gravelDepthM;\n                const gravelMetricTons = gravelCuM * 1.7;\n                const sandDepthM = sandD \/ 100;\n                const sandCuM = totalSqM * sandDepthM;\n\n                const jointWidthCm = 0.3;\n                const jointWidthM = jointWidthCm \/ 100;\n                const thicknessM = paverDims.thickness \/ 100;\n                const paverLenCm = paverDims.length;\n                const paverWidCm = paverDims.width;\n                const linearJointsPerSqM = (100 \/ paverLenCm) + (100 \/ paverWidCm);\n                const jointVolPerSqM = linearJointsPerSqM * thicknessM * jointWidthM;\n                const totalJointVolCuM = totalSqM * jointVolPerSqM;\n                const sandDensityKgPerCuM = 1600;\n                const totalSandKg = totalJointVolCuM * sandDensityKgPerCuM;\n                const bagWeightKg = 25;\n                const polyBags = Math.ceil(totalSandKg \/ bagWeightKg);\n\n                resultGrid.innerHTML = `\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Surface totale<\/div>\n                        <div class=\"pcalc-result-value accent-teal\">${totalSqM.toFixed(2)} <span style=\"font-size:14px;font-weight:500;\">m\u00b2<\/span><\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Pav\u00e9s n\u00e9cessaires<\/div>\n                        <div class=\"pcalc-result-value accent-teal\">${paversWithWaste.toLocaleString()}<\/div>\n                        <div class=\"pcalc-result-sub\">Base : ${basePavers.toLocaleString()} + ${wastePavers.toLocaleString()} coupe (${wastePct}%)<\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Gravier (${gravelD} cm \u00e9p.)<\/div>\n                        <div class=\"pcalc-result-value\">${gravelCuM.toFixed(3)} <span style=\"font-size:14px;font-weight:500;\">m\u00b3<\/span><\/div>\n                        <div class=\"pcalc-result-sub\">\u2248 ${gravelMetricTons.toFixed(2)} tonnes<\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Sable de pose (${sandD} cm \u00e9p.)<\/div>\n                        <div class=\"pcalc-result-value\">${sandCuM.toFixed(3)} <span style=\"font-size:14px;font-weight:500;\">m\u00b3<\/span><\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Sable polym\u00e8re<\/div>\n                        <div class=\"pcalc-result-value\">${polyBags} <span style=\"font-size:14px;font-weight:500;\">\u00d7 sac de 25 kg<\/span><\/div>\n                        <div class=\"pcalc-result-sub\">Remplissage des joints bas\u00e9 sur 3 mm<\/div>\n                    <\/div>\n                    <div class=\"pcalc-result-item\">\n                        <div class=\"pcalc-result-label\">Surface unitaire<\/div>\n                        <div class=\"pcalc-result-value\" style=\"font-size:18px;\">${paverSqM.toFixed(4)} <span style=\"font-size:13px;font-weight:500;\">m\u00b2 par pav\u00e9<\/span><\/div>\n                    <\/div>\n                `;\n                resultNote.innerHTML = `\n                    <strong>Note sur la marge de coupe :<\/strong> Calculs incluant ${wastePct}% de perte pour d\u00e9coupes et casses.\n                    Les motifs complexes comme <strong>chevrons<\/strong> ou <strong>Versailles<\/strong> peuvent n\u00e9cessiter <strong>15\u201320%<\/strong> de marge suppl\u00e9mentaire.\n                    Commandez toujours 5\u201310% de plus que l'estimation pour les designs complexes.\n                `;\n            }\n\n            resultsDiv.classList.add('visible');\n            resultsDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n        }\n\n        \/\/ \u00c9couteurs d'\u00e9v\u00e9nements\n        toggleImperial.addEventListener('click', function() {\n            if (currentSystem === 'imperial') return;\n            currentSystem = 'imperial';\n            updateSystemUI();\n            hideResults();\n        });\n        toggleMetric.addEventListener('click', function() {\n            if (currentSystem === 'metric') return;\n            currentSystem = 'metric';\n            updateSystemUI();\n            hideResults();\n        });\n        presetSelect.addEventListener('change', function() {\n            toggleCustomFields();\n            hideResults();\n        });\n        addAreaBtn.addEventListener('click', function() {\n            toggleArea2();\n            hideResults();\n        });\n        calculateBtn.addEventListener('click', calculate);\n        resetBtn.addEventListener('click', resetAll);\n\n        const allInputs = root.querySelectorAll('input, select');\n        allInputs.forEach(inp => {\n            inp.addEventListener('input', function() {\n                hideResults();\n            });\n            inp.addEventListener('change', function() {\n                hideResults();\n            });\n        });\n\n        \/\/ Initialisation\n        updateSystemUI();\n        hideResults();\n        area2Container.style.display = 'none';\n        addAreaBtn.textContent = '+ Ajouter une zone';\n        addAreaBtn.classList.remove('remove-mode');\n        area2Visible = false;\n        presetSelect.value = '4x8';\n        toggleCustomFields();\n        wasteInput.value = 10;\n    })();\n<\/script>\n\n\n<!-- aiper-tool-links -->\n<div class=\"aiper-tool-links\">\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">Plus d&#8217;outils<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-cloture\/\" class=\"aiper-tl-tag\">Calculateur de mat\u00e9riaux de cl\u00f4ture<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-terrasse\/\" class=\"aiper-tl-tag\">Calculateur de Terrasse<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/fr\/calculateur-mur-de-soutenement\/\" class=\"aiper-tl-tag\">Calculateur De Mur De Sout\u00e8nement<\/a>\n    <\/div>\n  <\/div>\n  <div class=\"aiper-tl-section\">\n    <div class=\"aiper-tl-heading\">Articles connexes<\/div>\n    <div class=\"aiper-tl-tags\">\n      <a href=\"https:\/\/aiper.com\/blogs\/fr\/reduire-alcalinite-piscine\/\" class=\"aiper-tl-tag\">Comment r\u00e9duire l&#8217;alcalinit\u00e9 d&#8217;une piscine<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/fr\/comment-eloigner-bernaches-pelouse\/\" class=\"aiper-tl-tag\">Comment \u00e9loigner les bernaches de la pelouse<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/fr\/comment-eliminer-champignons-pelouse\/\" class=\"aiper-tl-tag\">Comment se d\u00e9barrasser des champignons dans la pelouse<\/a>\n<a href=\"https:\/\/aiper.com\/blogs\/fr\/defeutrer-pelouse-reconnaitre-traiter-feutre\/\" class=\"aiper-tl-tag\">D\u00e9feutrer sa pelouse : reconna\u00eetre et traiter le feutre<\/a>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n.aiper-tool-links{margin:2.5rem 0 1.5rem;padding:1.5rem 1.75rem;background:linear-gradient(135deg,rgba(148,134,247,.04),rgba(30,202,211,.04));border-radius:12px;border:1px solid rgba(148,134,247,.10)}\n.aiper-tl-section{margin-bottom:1.25rem}\n.aiper-tl-section:last-child{margin-bottom:0}\n.aiper-tl-heading{font-size:.75rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#8899aa;margin:0 0 .65rem}\n.aiper-tl-tags{display:flex;flex-wrap:wrap;gap:.5rem}\n.aiper-tl-tag{display:inline-block;padding:.4rem .95rem;font-size:.82rem;font-weight:500;line-height:1.35;color:#9486f7;background:rgba(148,134,247,.055);border:1px solid rgba(30,202,211,.25);border-radius:22px;text-decoration:none;transition:all .18s}\n.aiper-tl-tag:hover{background:#1ecad3;color:#fff;border-color:#1ecad3;box-shadow:0 2px 10px rgba(30,202,211,.22)}\n<\/style>","protected":false},"excerpt":{"rendered":"<p>Imp\u00e9rial (US\/UK) M\u00e9trique (AU\/EU) Sp\u00e9cifications des pav\u00e9s Taille de pav\u00e9 4\u2033 \u00d7 8\u2033 (Format standard)6\u2033 \u00d7 6\u2033 (Carr\u00e9)12\u2033 \u00d7 12\u2033 (Grand format)Taille personnalis\u00e9e po po po Surface du projet Longueur pi po Largeur pi po Zone 2 Longueur pi po Largeur pi po + Ajouter une zone Fondation &amp; lit de pose \u00c9paisseur du gravier&#8230;<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-2685","page","type-page","status-publish","hentry"],"lang":"fr","translations":{"fr":2685,"es":2688,"en":2608,"de":2682},"_links":{"self":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/comments?post=2685"}],"version-history":[{"count":3,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2685\/revisions"}],"predecessor-version":[{"id":4344,"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/pages\/2685\/revisions\/4344"}],"wp:attachment":[{"href":"https:\/\/aiper.com\/blogs\/wp-json\/wp\/v2\/media?parent=2685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}