{"id":1322,"date":"2026-11-03T13:08:31","date_gmt":"2026-11-03T12:08:31","guid":{"rendered":"https:\/\/brudrill.be\/index.php\/demander-un-devis\/"},"modified":"2026-11-03T16:45:49","modified_gmt":"2026-11-03T15:45:49","slug":"demander-un-devis","status":"publish","type":"page","link":"https:\/\/brudrill.be\/index.php\/demander-un-devis\/","title":{"rendered":"Demander un devis"},"content":{"rendered":"\n<style>.bdq{--bdq-yellow:#f9b900;--bdq-yellow-btn:#efbc40;--bdq-yellow-soft:#fff4d1;--bdq-ink:#111111;--bdq-muted:#636363;--bdq-faint:#a4a4a4;--bdq-line:#dcdcdc;--bdq-soft:#f9f9f9;--bdq-bg:#ffffff;--bdq-error:#cf2e2e;--bdq-radius:5px;font-family:\"Inter\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;color:var(--bdq-ink);background:var(--bdq-bg);max-width:880px;margin:0 auto;padding:clamp(20px,5vw,56px);border-radius:16px;box-sizing:border-box;line-height:1.55;font-size:16.8px;-webkit-font-smoothing:antialiased}.bdq *,.bdq *::before,.bdq *::after{box-sizing:border-box}.bdq p{margin:0}.bdq-head{border-left:8px solid var(--bdq-yellow);padding:4px 0 4px 20px;margin-bottom:30px}.bdq-title{font-family:Impact,Haettenschweiler,\"Arial Narrow Bold\",\"Roboto Condensed\",sans-serif-condensed,sans-serif;font-weight:800;font-synthesis:none;font-size:clamp(1.9rem,6vw,3.4rem);line-height:1.04;letter-spacing:.2px;margin:0;color:var(--bdq-ink);text-transform:none}.bdq-progress{display:none;margin-bottom:30px}.bdq-js .bdq-progress{display:block}.bdq-progress-label{display:flex;justify-content:space-between;align-items:baseline;font-size:.88rem;color:var(--bdq-muted);margin-bottom:10px}.bdq-progress-label strong{color:var(--bdq-ink);font-weight:600}.bdq-progress-label span{color:var(--bdq-yellow);font-weight:700;font-size:1.05rem}.bdq-bar{height:4px;background:#ececec;border-radius:99px;overflow:hidden}.bdq-bar span{display:block;height:100%;width:25%;background:var(--bdq-yellow);border-radius:99px;transition:width .3s ease}.bdq-step{border:0;padding:0;margin:0 0 36px;min-width:0}.bdq-js .bdq-step{display:none;margin-bottom:0}.bdq-js .bdq-step.is-active{display:block}.bdq-step>legend{padding:0;margin-bottom:22px;width:100%}.bdq-step h3{font-size:1.32rem;font-weight:700;line-height:1.3;margin:0;color:var(--bdq-ink);display:flex;align-items:center;gap:12px}.bdq-step h3::before{content:\"\";width:22px;height:22px;flex:none;background:var(--bdq-muted);-webkit-mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M12 2v20M2 12h20M4.9 4.9l14.2 14.2M19.1 4.9 4.9 19.1'\/%3E%3C\/svg%3E\") center \/ contain no-repeat;mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'%3E%3Cpath d='M12 2v20M2 12h20M4.9 4.9l14.2 14.2M19.1 4.9 4.9 19.1'\/%3E%3C\/svg%3E\") center \/ contain no-repeat}.bdq-field{margin-bottom:24px}.bdq [hidden]{display:none !important}.bdq-label{display:block;font-weight:600;margin-bottom:9px;font-size:.97rem}.bdq-label .bdq-req{color:var(--bdq-yellow);margin-left:3px;font-weight:700}.bdq-label .bdq-opt{font-weight:400;color:var(--bdq-muted);font-size:.85rem;margin-left:5px}.bdq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.bdq-grid-3{grid-template-columns:1fr 1fr 1fr}.bdq-span-2{grid-column:span 2}.bdq-full{grid-column:1 \/ -1}.bdq-inline{display:flex;gap:8px}.bdq-inline input{flex:1 1 auto;min-width:0}.bdq-inline select{flex:0 0 auto;width:auto !important}.bdq input[type=\"text\"],.bdq input[type=\"email\"],.bdq input[type=\"tel\"],.bdq input[type=\"number\"],.bdq select,.bdq textarea{width:100%;font:inherit;font-size:16px;color:var(--bdq-ink);background:var(--bdq-bg);border:1px solid var(--bdq-line);border-radius:var(--bdq-radius);padding:11px 13px;margin:0;transition:border-color .15s,box-shadow .15s;box-shadow:none}.bdq textarea{min-height:110px;resize:vertical}.bdq input::placeholder,.bdq textarea::placeholder{color:var(--bdq-faint)}.bdq input:focus,.bdq select:focus,.bdq textarea:focus{outline:none;border-color:var(--bdq-ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--bdq-yellow) 45%,transparent)}.bdq-choices{display:flex;flex-wrap:wrap;gap:8px}.bdq-choice{position:relative;display:inline-flex;cursor:pointer;margin:0}.bdq-choice input,.bdq-card input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}.bdq-choice span{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border:1px solid var(--bdq-line);border-radius:var(--bdq-radius);background:var(--bdq-bg);font-size:.93rem;line-height:1.3;transition:border-color .15s,background .15s;user-select:none}.bdq-choice:hover span{border-color:var(--bdq-ink)}.bdq-choice input:checked + span{border-color:var(--bdq-yellow);background:var(--bdq-yellow-soft);box-shadow:inset 0 0 0 1px var(--bdq-yellow);font-weight:600}.bdq-choice input[type=\"checkbox\"] + span::before{content:\"\";width:15px;height:15px;border:1.5px solid var(--bdq-faint);border-radius:3px;flex:none;background:var(--bdq-bg)}.bdq-choice input[type=\"checkbox\"]:checked + span::before{border-color:var(--bdq-ink);background:var(--bdq-ink) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'\/%3E%3C\/svg%3E\") center \/ 11px no-repeat}.bdq-choice input:focus-visible + span,.bdq-card input:focus-visible + .bdq-card-body{outline:3px solid color-mix(in srgb,var(--bdq-yellow) 60%,transparent);outline-offset:2px}.bdq-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bdq-card{position:relative;display:flex;cursor:pointer;margin:0}.bdq-card-body{position:relative;display:flex;align-items:center;width:100%;min-height:58px;padding:12px 40px 12px 16px;border:1px solid var(--bdq-line);border-radius:8px;background:var(--bdq-bg);font-weight:600;font-size:.97rem;line-height:1.3;transition:border-color .15s,box-shadow .15s,background .15s}.bdq-card:hover .bdq-card-body{border-color:var(--bdq-ink)}.bdq-card input:checked + .bdq-card-body{border-color:var(--bdq-yellow);box-shadow:inset 0 0 0 2px var(--bdq-yellow);background:var(--bdq-yellow-soft)}.bdq-card-body::after{content:\"\";position:absolute;top:50%;right:12px;width:22px;height:22px;margin-top:-11px;border-radius:50%;background:var(--bdq-yellow) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'\/%3E%3C\/svg%3E\") center \/ 13px no-repeat;opacity:0;transform:scale(.6);transition:opacity .15s,transform .15s}.bdq-card input:checked + .bdq-card-body::after{opacity:1;transform:none}.bdq-drop{display:block;width:100%;border:1.5px dashed #c8c8c8;border-radius:8px;padding:22px 16px;text-align:center;cursor:pointer;background:var(--bdq-soft);font:inherit;color:var(--bdq-ink);transition:border-color .15s,background .15s}.bdq-drop:hover,.bdq-drop.is-over{border-color:var(--bdq-yellow);background:var(--bdq-yellow-soft)}.bdq-drop:focus-visible{outline:3px solid color-mix(in srgb,var(--bdq-yellow) 60%,transparent);outline-offset:2px}.bdq-drop strong{display:block;font-weight:600;font-size:.95rem}.bdq-drop span{display:block;font-size:.82rem;color:var(--bdq-muted);margin-top:3px}.bdq-drop strong::before{content:\"\";display:inline-block;width:18px;height:18px;margin-right:8px;vertical-align:-3px;background:var(--bdq-ink);-webkit-mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4M7 9l5-5 5 5M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'\/%3E%3C\/svg%3E\") center \/ contain no-repeat;mask:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 16V4M7 9l5-5 5 5M4 16v3a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-3'\/%3E%3C\/svg%3E\") center \/ contain no-repeat}.bdq-files{list-style:none;margin:8px 0 0;padding:0}.bdq-files li{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid #ececec;border-radius:var(--bdq-radius);margin-top:6px;font-size:.9rem;background:var(--bdq-bg)}.bdq-files li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bdq-files li small{color:var(--bdq-muted);flex:none}.bdq-files button{flex:none;border:0;background:none;cursor:pointer;font:inherit;font-size:1.1rem;line-height:1;color:var(--bdq-muted);padding:2px 6px;border-radius:4px}.bdq-files button:hover{color:var(--bdq-ink);background:#f0f0f0}.bdq-file-error{display:block;color:var(--bdq-error);font-size:.85rem;margin-top:6px}.bdq-consent{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--bdq-muted);cursor:pointer}.bdq-consent input{margin-top:4px;width:16px;height:16px;accent-color:var(--bdq-ink);flex:none}.bdq-consent strong{color:var(--bdq-ink);font-weight:600}.bdq-subblock{background:var(--bdq-soft);border-left:3px solid var(--bdq-yellow);border-radius:0 var(--bdq-radius) var(--bdq-radius) 0;padding:16px 18px;margin:-8px 0 24px}.bdq-subblock .bdq-field{margin-bottom:0}.bdq-field.is-invalid .bdq-label{color:var(--bdq-error)}.bdq-field.is-invalid input:not([type=\"radio\"]):not([type=\"checkbox\"]),.bdq-field.is-invalid select,.bdq-field.is-invalid textarea{border-color:var(--bdq-error)}.bdq-field.is-invalid .bdq-choice span,.bdq-field.is-invalid .bdq-card-body{border-color:color-mix(in srgb,var(--bdq-error) 60%,var(--bdq-line))}.bdq-alert{display:none;color:var(--bdq-error);font-size:.9rem;margin:0 0 14px !important}.bdq-alert.is-visible{display:block}.bdq-nav{display:flex;gap:10px;justify-content:space-between;align-items:center;border-top:1px solid #ececec;padding-top:24px;margin-top:8px}.bdq-btn{font:inherit;font-size:16.8px;font-weight:500;cursor:pointer;padding:10px 20px;border-radius:var(--bdq-radius);border:0;transition:background .15s,filter .15s;line-height:1.55}.bdq-btn-primary{background:var(--bdq-ink);color:#f9f9f9;margin-left:auto}.bdq-btn-primary:hover{background:#333}.bdq-btn-yellow{background:var(--bdq-yellow-btn);color:var(--bdq-ink);margin-left:auto;font-weight:600}.bdq-btn-yellow:hover{filter:brightness(1.05)}.bdq-btn-yellow:disabled{opacity:.7;cursor:wait}.bdq-btn-ghost{background:transparent;color:var(--bdq-muted);padding-left:4px;padding-right:4px}.bdq-btn-ghost:hover{color:var(--bdq-ink);text-decoration:underline}.bdq-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--bdq-yellow) 60%,transparent);outline-offset:2px}.bdq [data-bdq-prev],.bdq [data-bdq-next]{display:none}.bdq-js [data-bdq-prev].is-shown,.bdq-js [data-bdq-next].is-shown{display:inline-block}.bdq-js [data-bdq-submit]{display:none}.bdq-js [data-bdq-submit].is-shown{display:inline-block}.bdq-done{padding:8px 0 4px}.bdq-done h3{font-size:1.32rem;font-weight:700;margin:0 0 10px;display:flex;align-items:center;gap:12px}.bdq-done h3::before{content:\"\";width:28px;height:28px;flex:none;border-radius:50%;background:var(--bdq-yellow) url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'\/%3E%3C\/svg%3E\") center \/ 16px no-repeat}.bdq-done p{color:var(--bdq-muted)}.bdq-done a{color:var(--bdq-ink)}.bdq-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;overflow:hidden}@media (max-width:680px){.bdq{border-radius:12px;font-size:16px}.bdq-grid,.bdq-grid-3{grid-template-columns:1fr}.bdq-span-2{grid-column:auto}.bdq-cards{grid-template-columns:1fr 1fr;gap:8px}.bdq-card-body{font-size:.9rem;padding:10px 36px 10px 12px}.bdq-nav{flex-wrap:wrap}.bdq-btn-primary,.bdq-btn-yellow{flex:1 1 auto}}<\/style>\n<div class=\"bdq\" id=\"bdq\">\n<div class=\"bdq-head\"><h2 class=\"bdq-title\">Demande de devis<br>forage g\u00e9othermique<\/h2><\/div>\n<div class=\"bdq-progress\" aria-hidden=\"true\">\n<div class=\"bdq-progress-label\"><strong data-bdq-steptitle>Votre projet<\/strong><span data-bdq-stepcount>\u00c9tape 1 sur 4<\/span><\/div>\n<div class=\"bdq-bar\"><span data-bdq-bar><\/span><\/div>\n<\/div>\n<form action=\"\/index.php?rest_route=\/contact-form-7\/v1\/contact-forms\/1325\/feedback\" method=\"POST\" enctype=\"multipart\/form-data\" novalidate data-bdq-form data-cf7=\"1325\" data-post=\"1322\">\n<input type=\"text\" name=\"website\" class=\"bdq-hp\" tabindex=\"-1\" autocomplete=\"off\" aria-hidden=\"true\">\n<fieldset class=\"bdq-step is-active\" data-title=\"Votre projet\">\n<legend><h3>1. Votre projet<\/h3><\/legend>\n<div class=\"bdq-field\">\n<span class=\"bdq-label\">Type de b\u00e2timent<span class=\"bdq-req\">*<\/span><\/span>\n<div class=\"bdq-cards\">\n<label class=\"bdq-card\"><input type=\"radio\" name=\"situation\" value=\"Maison avec jardin accessible\" required><span class=\"bdq-card-body\">Maison avec jardin accessible<\/span><\/label>\n<label class=\"bdq-card\"><input type=\"radio\" name=\"situation\" value=\"Maison avec jardinet \u00e0 l'avant\"><span class=\"bdq-card-body\">Maison avec jardinet \u00e0 l&rsquo;avant<\/span><\/label>\n<label class=\"bdq-card\"><input type=\"radio\" name=\"situation\" value=\"Maison mitoyenne\"><span class=\"bdq-card-body\">Maison mitoyenne<\/span><\/label>\n<label class=\"bdq-card\"><input type=\"radio\" name=\"situation\" value=\"Copropri\u00e9t\u00e9 \/ immeuble\"><span class=\"bdq-card-body\">Copropri\u00e9t\u00e9 \/ immeuble<\/span><\/label>\n<label class=\"bdq-card\"><input type=\"radio\" name=\"situation\" value=\"Bureaux, \u00e9cole ou autre\"><span class=\"bdq-card-body\">Bureaux, \u00e9cole ou autre<\/span><\/label>\n<label class=\"bdq-card\"><input type=\"radio\" name=\"situation\" value=\"Terrain \u00e0 b\u00e2tir\"><span class=\"bdq-card-body\">Terrain \u00e0 b\u00e2tir<\/span><\/label>\n<\/div>\n<\/div>\n<div class=\"bdq-field\">\n<span class=\"bdq-label\">Type de travaux<span class=\"bdq-req\">*<\/span><\/span>\n<div class=\"bdq-choices\">\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"nature\" value=\"Construction neuve\" required><span>Construction neuve<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"nature\" value=\"R\u00e9novation\"><span>R\u00e9novation<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"nature\" value=\"Remplacement du chauffage\"><span>Remplacement du chauffage<\/span><\/label>\n<\/div>\n<\/div>\n<\/fieldset>\n<fieldset class=\"bdq-step\" data-title=\"Localisation\">\n<legend><h3>2. Localisation<\/h3><\/legend>\n<div class=\"bdq-grid bdq-grid-3\">\n<div class=\"bdq-field bdq-full\">\n<label class=\"bdq-label\" for=\"bdq-rue\">Adresse du chantier<span class=\"bdq-req\">*<\/span><\/label>\n<input type=\"text\" id=\"bdq-rue\" name=\"adresse\" required autocomplete=\"street-address\" placeholder=\"Rue et num\u00e9ro\">\n<\/div>\n<div class=\"bdq-field\">\n<label class=\"bdq-label\" for=\"bdq-cp\">Code postal<span class=\"bdq-req\">*<\/span><\/label>\n<input type=\"text\" id=\"bdq-cp\" name=\"cp\" inputmode=\"numeric\" pattern=\"[0-9]{4}\" maxlength=\"4\" required autocomplete=\"postal-code\">\n<\/div>\n<div class=\"bdq-field bdq-span-2\">\n<label class=\"bdq-label\" for=\"bdq-commune\">Commune<span class=\"bdq-req\">*<\/span><\/label>\n<input type=\"text\" id=\"bdq-commune\" name=\"commune\" required autocomplete=\"address-level2\">\n<\/div>\n<\/div>\n<\/fieldset>\n<fieldset class=\"bdq-step\" data-title=\"Besoins thermiques\">\n<legend><h3>3. Besoins thermiques<\/h3><\/legend>\n<div class=\"bdq-field\" data-bdq-group=\"Utilisation\" data-min=\"1\">\n<span class=\"bdq-label\">Utilisation<span class=\"bdq-req\">*<\/span><\/span>\n<div class=\"bdq-choices\">\n<label class=\"bdq-choice\"><input type=\"checkbox\" value=\"Chauffage\"><span>Chauffage<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"checkbox\" value=\"Refroidissement (cooling)\"><span>Refroidissement (cooling)<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"checkbox\" value=\"Eau chaude sanitaire\"><span>Eau chaude sanitaire<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"checkbox\" value=\"Je ne sais pas encore\"><span>Je ne sais pas encore<\/span><\/label>\n<\/div>\n<input type=\"hidden\" name=\"usages\">\n<\/div>\n<div class=\"bdq-grid\">\n<div class=\"bdq-field\">\n<label class=\"bdq-label\" for=\"bdq-surface\">Surface \u00e0 chauffer (m\u00b2)<\/label>\n<input type=\"number\" id=\"bdq-surface\" name=\"surface\" min=\"0\" step=\"1\" inputmode=\"numeric\">\n<\/div>\n<div class=\"bdq-field\">\n<label class=\"bdq-label\" for=\"bdq-kw\">Puissance PAC (kW)<\/label>\n<input type=\"number\" id=\"bdq-kw\" name=\"puissance\" min=\"0\" step=\"0.1\" inputmode=\"decimal\">\n<\/div>\n<div class=\"bdq-field bdq-full\">\n<label class=\"bdq-label\" for=\"bdq-conso\">Consommation annuelle de chauffage<\/label>\n<div class=\"bdq-inline\">\n<input type=\"number\" id=\"bdq-conso\" name=\"conso\" min=\"0\" step=\"1\" inputmode=\"numeric\">\n<select name=\"conso_unite\" aria-label=\"Unit\u00e9\">\n<option value=\"kWh\/an\">kWh \/ an<\/option>\n<option value=\"m\u00b3 de gaz\/an\">m\u00b3 de gaz \/ an<\/option>\n<option value=\"litres de mazout\/an\">litres de mazout \/ an<\/option>\n<\/select>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"bdq-field\">\n<span class=\"bdq-label\">Un chauffagiste est-il d\u00e9j\u00e0 sur le projet ?<span class=\"bdq-req\">*<\/span><\/span>\n<div class=\"bdq-choices\">\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"chauffagiste\" value=\"Oui\" required><span>Oui<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"chauffagiste\" value=\"Non, pas encore\"><span>Non, pas encore<\/span><\/label>\n<\/div>\n<\/div>\n<div class=\"bdq-subblock\" data-show-if=\"chauffagiste=Oui\" hidden>\n<div class=\"bdq-field\">\n<label class=\"bdq-label\" for=\"bdq-chauff\">Nom du chauffagiste<\/label>\n<input type=\"text\" id=\"bdq-chauff\" name=\"chauffagiste_nom\">\n<\/div>\n<\/div>\n<div class=\"bdq-subblock\" data-show-if=\"chauffagiste=Non, pas encore\" hidden>\n<div class=\"bdq-field\">\n<label class=\"bdq-consent\">\n<input type=\"checkbox\" name=\"partenaires\" value=\"Oui\">\n<span><strong>Je souhaite que Brudrill me renseigne des chauffagistes partenaires.<\/strong><\/span>\n<\/label>\n<\/div>\n<\/div>\n<div class=\"bdq-field\">\n<span class=\"bdq-label\">Certificat PEB<span class=\"bdq-opt\">(si disponible)<\/span><\/span>\n<button type=\"button\" class=\"bdq-drop\" data-bdq-drop=\"peb\">\n<strong>D\u00e9poser le PEB<\/strong>\n<span>PDF ou photo<\/span>\n<\/button>\n<input type=\"file\" data-bdq-file=\"peb\" accept=\".pdf,.jpg,.jpeg,.png,.heic,.heif\" hidden>\n<ul class=\"bdq-files\" data-bdq-list=\"peb\"><\/ul>\n<\/div>\n<div class=\"bdq-field\">\n<span class=\"bdq-label\">Photos du site et plans<\/span>\n<button type=\"button\" class=\"bdq-drop\" data-bdq-drop=\"docs\">\n<strong>D\u00e9poser des photos ou des plans<\/strong>\n<span>PDF, JPG, PNG, DWG \u00b7 8 fichiers max.<\/span>\n<\/button>\n<input type=\"file\" data-bdq-file=\"docs\" accept=\".pdf,.jpg,.jpeg,.png,.heic,.heif,.dwg,.dxf\" multiple hidden>\n<ul class=\"bdq-files\" data-bdq-list=\"docs\"><\/ul>\n<\/div>\n<\/fieldset>\n<fieldset class=\"bdq-step\" data-title=\"Vos coordonn\u00e9es\">\n<legend><h3>4. Vos coordonn\u00e9es<\/h3><\/legend>\n<div class=\"bdq-field\">\n<span class=\"bdq-label\">Vous \u00eates<span class=\"bdq-req\">*<\/span><\/span>\n<div class=\"bdq-choices\">\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"profil\" value=\"Particulier \/ propri\u00e9taire\" required><span>Particulier \/ propri\u00e9taire<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"profil\" value=\"Architecte\"><span>Architecte<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"profil\" value=\"Bureau d'\u00e9tudes\"><span>Bureau d&rsquo;\u00e9tudes<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"profil\" value=\"Chauffagiste \/ installateur\"><span>Chauffagiste \/ installateur<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"profil\" value=\"Promoteur \/ entreprise g\u00e9n\u00e9rale\"><span>Promoteur \/ entreprise g\u00e9n\u00e9rale<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"profil\" value=\"Syndic \/ copropri\u00e9t\u00e9\"><span>Syndic \/ copropri\u00e9t\u00e9<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"profil\" value=\"Pouvoir public\"><span>Pouvoir public<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"profil\" value=\"Autre\"><span>Autre<\/span><\/label>\n<\/div>\n<\/div>\n<div class=\"bdq-grid\">\n<div class=\"bdq-field\">\n<label class=\"bdq-label\" for=\"bdq-nom\">Nom et pr\u00e9nom<span class=\"bdq-req\">*<\/span><\/label>\n<input type=\"text\" id=\"bdq-nom\" name=\"nom\" required autocomplete=\"name\">\n<\/div>\n<div class=\"bdq-field\" data-show-if=\"profil=Architecte|Bureau d'\u00e9tudes|Chauffagiste \/ installateur|Promoteur \/ entreprise g\u00e9n\u00e9rale|Syndic \/ copropri\u00e9t\u00e9|Pouvoir public\" hidden>\n<label class=\"bdq-label\" for=\"bdq-societe\">Soci\u00e9t\u00e9 \/ organisation<span class=\"bdq-req\">*<\/span><\/label>\n<input type=\"text\" id=\"bdq-societe\" name=\"societe\" required autocomplete=\"organization\">\n<\/div>\n<div class=\"bdq-field\">\n<label class=\"bdq-label\" for=\"bdq-email\">E-mail<span class=\"bdq-req\">*<\/span><\/label>\n<input type=\"email\" id=\"bdq-email\" name=\"email\" required autocomplete=\"email\">\n<\/div>\n<div class=\"bdq-field\">\n<label class=\"bdq-label\" for=\"bdq-tel\">T\u00e9l\u00e9phone<span class=\"bdq-req\">*<\/span><\/label>\n<input type=\"tel\" id=\"bdq-tel\" name=\"tel\" required autocomplete=\"tel\">\n<\/div>\n<\/div>\n<div class=\"bdq-field\">\n<span class=\"bdq-label\">Contact pr\u00e9f\u00e9r\u00e9<\/span>\n<div class=\"bdq-choices\">\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"contact_pref\" value=\"T\u00e9l\u00e9phone\"><span>T\u00e9l\u00e9phone<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"contact_pref\" value=\"E-mail\"><span>E-mail<\/span><\/label>\n<label class=\"bdq-choice\"><input type=\"radio\" name=\"contact_pref\" value=\"Indiff\u00e9rent\"><span>Indiff\u00e9rent<\/span><\/label>\n<\/div>\n<\/div>\n<div class=\"bdq-field\">\n<label class=\"bdq-label\" for=\"bdq-msg\">Message<\/label>\n<textarea id=\"bdq-msg\" name=\"message\"><\/textarea>\n<\/div>\n<div class=\"bdq-field\">\n<label class=\"bdq-consent\">\n<input type=\"checkbox\" name=\"consentement\" value=\"Oui\" required>\n<span>J&rsquo;accepte que Brudrill utilise ces informations pour traiter ma demande et me recontacter.<span style=\"color:var(--bdq-yellow)\">*<\/span><\/span>\n<\/label>\n<\/div>\n<\/fieldset>\n<p class=\"bdq-alert\" role=\"alert\" data-bdq-alert>Merci de compl\u00e9ter les champs marqu\u00e9s d&rsquo;un ast\u00e9risque.<\/p>\n<div class=\"bdq-nav\">\n<button type=\"button\" class=\"bdq-btn bdq-btn-ghost\" data-bdq-prev>\u2190 Pr\u00e9c\u00e9dent<\/button>\n<button type=\"button\" class=\"bdq-btn bdq-btn-primary\" data-bdq-next>Suivant \u2192<\/button>\n<button type=\"submit\" class=\"bdq-btn bdq-btn-yellow\" data-bdq-submit>Envoyer ma demande<\/button>\n<\/div>\n<\/form>\n<div class=\"bdq-done\" data-bdq-done role=\"status\" hidden><h3>Merci, votre demande est bien envoy\u00e9e.<\/h3><p>Nous revenons vers vous rapidement. Une question ? <a href=\"mailto:info@brudrill.be\">info@brudrill.be<\/a><\/p><\/div>\n<\/div>\n<script>\n(function () {\nvar root = document.getElementById('bdq');\nif (!root) return;\nvar form = root.querySelector('[data-bdq-form]');\nvar steps = Array.prototype.slice.call(form.querySelectorAll('.bdq-step'));\nvar prevBtn = form.querySelector('[data-bdq-prev]');\nvar nextBtn = form.querySelector('[data-bdq-next]');\nvar submitBtn = form.querySelector('[data-bdq-submit]');\nvar alertBox = form.querySelector('[data-bdq-alert]');\nvar alertText = alertBox.textContent;\nvar bar = root.querySelector('[data-bdq-bar]');\nvar stepTitle = root.querySelector('[data-bdq-steptitle]');\nvar stepCount = root.querySelector('[data-bdq-stepcount]');\nvar done = root.querySelector('[data-bdq-done]');\nvar current = 0;\nvar MAX_DOCS = 8;\nvar MAX_MB = 15;\nvar files = { peb: [], docs: [] };\nroot.classList.add('bdq-js');\nfunction $all(sel, ctx) { return Array.prototype.slice.call((ctx || form).querySelectorAll(sel)); }\nfunction radioValue(name) {\nvar checked = $all('input[type=\"radio\"]').filter(function (r) { return r.name === name ? (r.checked ? !r.disabled : false) : false; })[0];\nreturn checked ? checked.value : '';\n}\nfunction applyConditions() {\n$all('[data-show-if]').forEach(function (el) {\nvar show = el.getAttribute('data-show-if').split(';').some(function (rule) {\nvar i = rule.indexOf('=');\nreturn rule.slice(i + 1).split('|').indexOf(radioValue(rule.slice(0, i))) !== -1;\n});\nel.hidden = !show;\n$all('input, select, textarea', el).forEach(function (input) { input.disabled = !show; });\n});\n}\nfunction syncGroups() {\n$all('[data-bdq-group]').forEach(function (group) {\nvar values = $all('input[type=\"checkbox\"]', group).filter(function (c) { return c.checked; }).map(function (c) { return c.value; });\nvar hidden = group.querySelector('input[type=\"hidden\"]');\nif (hidden) hidden.value = values.join(', ');\n});\n}\nfunction fieldOf(el) { return el.closest('.bdq-field') || el.parentNode; }\nfunction validateStep(index) {\nvar step = steps[index];\nvar firstInvalid = null;\n$all('.bdq-field.is-invalid', step).forEach(function (f) { f.classList.remove('is-invalid'); });\n$all('input, select, textarea', step).forEach(function (el) {\nif (el.disabled || el.type === 'hidden' || el.type === 'file' || (el.type === 'checkbox' ? !el.name : false)) return;\nvar invalid = false;\nif (el.type === 'radio') {\nif (!el.required) return;\ninvalid = !radioValue(el.name);\n} else {\ninvalid = !el.checkValidity();\n}\nif (invalid) {\nfieldOf(el).classList.add('is-invalid');\nif (!firstInvalid) firstInvalid = el;\n}\n});\n$all('[data-bdq-group][data-min]', step).forEach(function (group) {\nif (group.closest('[hidden]')) return;\nvar n = $all('input[type=\"checkbox\"]:checked', group).length;\nif (parseInt(group.getAttribute('data-min'), 10) > n) {\ngroup.classList.add('is-invalid');\nif (!firstInvalid) firstInvalid = group.querySelector('input');\n}\n});\nalertBox.textContent = alertText;\nalertBox.classList.toggle('is-visible', !!firstInvalid);\nif (firstInvalid) {\nfieldOf(firstInvalid).scrollIntoView({ behavior: 'smooth', block: 'center' });\ntry { firstInvalid.focus({ preventScroll: true }); } catch (e) {}\nreturn false;\n}\nreturn true;\n}\nfunction scrollToTop() {\nif (0 > root.getBoundingClientRect().top) {\nwindow.scrollTo({ top: root.getBoundingClientRect().top + window.pageYOffset - 90, behavior: 'smooth' });\n}\n}\nfunction showStep(index, scroll) {\ncurrent = index;\nsteps.forEach(function (s, i) { s.classList.toggle('is-active', i === index); });\nvar last = index === steps.length - 1;\nprevBtn.classList.toggle('is-shown', index > 0);\nnextBtn.classList.toggle('is-shown', !last);\nsubmitBtn.classList.toggle('is-shown', last);\nbar.style.width = ((index + 1) \/ steps.length * 100) + '%';\nstepTitle.textContent = steps[index].getAttribute('data-title');\nstepCount.textContent = '\u00c9tape ' + (index + 1) + ' sur ' + steps.length;\nalertBox.classList.remove('is-visible');\nif (scroll) scrollToTop();\n}\nvar allowed = \/\\.(pdf|jpe?g|png|heic|heif|dwg|dxf)$\/i;\nfunction sizeLabel(b) { return b > 1048576 ? (b \/ 1048576).toFixed(1) + ' Mo' : Math.max(1, Math.round(b \/ 1024)) + ' ko'; }\nfunction renderFiles(kind) {\nvar list = form.querySelector('[data-bdq-list=\"' + kind + '\"]');\nlist.innerHTML = '';\nfiles[kind].forEach(function (f, i) {\nvar li = document.createElement('li');\nvar name = document.createElement('span'); name.textContent = f.name;\nvar size = document.createElement('small'); size.textContent = sizeLabel(f.size);\nvar del = document.createElement('button'); del.type = 'button'; del.textContent = '\u00d7'; del.setAttribute('aria-label', 'Retirer ' + f.name);\ndel.addEventListener('click', function () { files[kind].splice(i, 1); renderFiles(kind); });\nli.appendChild(name); li.appendChild(size); li.appendChild(del);\nlist.appendChild(li);\n});\n}\nfunction fileError(kind, msg) {\nvar list = form.querySelector('[data-bdq-list=\"' + kind + '\"]');\nvar old = list.parentNode.querySelector('.bdq-file-error');\nif (old) old.remove();\nif (!msg) return;\nvar p = document.createElement('span'); p.className = 'bdq-file-error'; p.textContent = msg;\nlist.after(p);\n}\nfunction addFiles(kind, fileList) {\nvar errors = [];\nArray.prototype.forEach.call(fileList, function (f) {\nif (!allowed.test(f.name)) { errors.push(f.name + ' : format non accept\u00e9'); return; }\nif (f.size > MAX_MB * 1048576) { errors.push(f.name + ' : fichier trop lourd (' + MAX_MB + ' Mo max.)'); return; }\nif (kind === 'peb') { files.peb = [f]; return; }\nif (files.docs.length === MAX_DOCS) { errors.push(f.name + ' : ' + MAX_DOCS + ' fichiers maximum'); return; }\nfiles.docs.push(f);\n});\nfileError(kind, errors.join(' \u00b7 '));\nrenderFiles(kind);\n}\n$all('[data-bdq-drop]').forEach(function (zone) {\nvar kind = zone.getAttribute('data-bdq-drop');\nvar input = form.querySelector('[data-bdq-file=\"' + kind + '\"]');\nzone.addEventListener('click', function () { input.click(); });\ninput.addEventListener('change', function () { addFiles(kind, input.files); input.value = ''; });\n['dragenter', 'dragover'].forEach(function (ev) { zone.addEventListener(ev, function (e) { e.preventDefault(); zone.classList.add('is-over'); }); });\n['dragleave', 'drop'].forEach(function (ev) { zone.addEventListener(ev, function (e) { e.preventDefault(); zone.classList.remove('is-over'); }); });\nzone.addEventListener('drop', function (e) { if (e.dataTransfer) addFiles(kind, e.dataTransfer.files); });\n});\nfunction shrink(f) {\nif (!\/\\.(jpe?g|png)$\/i.test(f.name)) return Promise.resolve(f);\nif (!window.createImageBitmap) return Promise.resolve(f);\nreturn createImageBitmap(f).then(function (img) {\nvar scale = Math.min(1, 2000 \/ Math.max(img.width, img.height));\nif (scale === 1) { if (1500000 > f.size) return f; }\nvar c = document.createElement('canvas');\nc.width = Math.round(img.width * scale); c.height = Math.round(img.height * scale);\nc.getContext('2d').drawImage(img, 0, 0, c.width, c.height);\nreturn new Promise(function (res) {\nc.toBlob(function (b) {\nif (!b) { res(f); return; }\nres(new File([b], f.name.replace(\/\\.(jpe?g|png)$\/i, '') + '.jpg', { type: 'image\/jpeg' }));\n}, 'image\/jpeg', 0.82);\n});\n}).catch(function () { return f; });\n}\nfunction showDone() {\nform.hidden = true;\nroot.querySelector('.bdq-progress').hidden = true;\ndone.hidden = false;\nscrollToTop();\n}\nfunction showError(msg) {\nsubmitBtn.disabled = false;\nsubmitBtn.textContent = 'Envoyer ma demande';\nalertBox.textContent = msg ? msg : 'L\u2019envoi n\u2019a pas abouti. R\u00e9essayez dans un instant ou \u00e9crivez-nous \u00e0 info@brudrill.be.';\nalertBox.classList.add('is-visible');\n}\nform.addEventListener('change', function (e) {\nvar t = e.target;\nif (t.type === 'file') return;\nif (t.type === 'checkbox' ? !!t.closest('[data-bdq-group]') : false) {\nvar group = t.closest('[data-bdq-group]');\nvar exclusive = \/^(Je ne sais pas|Aucun)\/;\n$all('input[type=\"checkbox\"]', group).forEach(function (c) {\nif (c === t || !t.checked) return;\nif (exclusive.test(t.value) || exclusive.test(c.value)) c.checked = false;\n});\n}\nif (t.type === 'radio') applyConditions();\nvar f = t.closest ? t.closest('.bdq-field.is-invalid') : null;\nif (f) f.classList.remove('is-invalid');\nrefreshAlert();\n});\nform.addEventListener('input', function (e) {\nvar f = e.target.closest ? e.target.closest('.bdq-field.is-invalid') : null;\nif (f ? e.target.checkValidity() : false) f.classList.remove('is-invalid');\nrefreshAlert();\n});\nfunction refreshAlert() {\nif (!steps[current].querySelector('.bdq-field.is-invalid')) alertBox.classList.remove('is-visible');\n}\nnextBtn.addEventListener('click', function () {\nif (validateStep(current)) showStep(current + 1, true);\n});\nprevBtn.addEventListener('click', function () { showStep(current - 1, true); });\nform.addEventListener('keydown', function (e) {\nif (e.key === 'Enter' ? (e.target.tagName === 'INPUT' ? steps.length - 1 > current : false) : false) {\ne.preventDefault();\nnextBtn.click();\n}\n});\nform.addEventListener('submit', function (e) {\ne.preventDefault();\nfor (var i = 0; steps.length > i; i++) {\nif (!validateStep(i)) { showStep(i, false); validateStep(i); return; }\n}\nsyncGroups();\nvar trap = form.querySelector('[name=\"website\"]');\nif (trap ? trap.value : false) { showDone(); return; }\nvar id = form.getAttribute('data-cf7');\nvar data = new FormData(form);\ndata.delete('website');\ndata.append('_wpcf7', id);\ndata.append('_wpcf7_version', '6.1.7');\ndata.append('_wpcf7_locale', 'fr_FR');\ndata.append('_wpcf7_unit_tag', 'wpcf7-f' + id + '-p' + form.getAttribute('data-post') + '-o1');\ndata.append('_wpcf7_container_post', form.getAttribute('data-post'));\nsubmitBtn.disabled = true;\nsubmitBtn.textContent = files.peb.length + files.docs.length ? 'Envoi des fichiers\u2026' : 'Envoi en cours\u2026';\nPromise.all(files.peb.concat(files.docs).map(shrink)).then(function (ready) {\nready.forEach(function (f, i) {\ndata.append(i === 0 ? (files.peb.length ? 'peb' : 'doc1') : 'doc' + (files.peb.length ? i : i + 1), f, f.name);\n});\nreturn fetch(form.getAttribute('action'), { method: 'POST', body: data });\n})\n.then(function (r) { return r.json(); })\n.then(function (res) {\nif (res.status === 'mail_sent') { showDone(); return; }\nvar fileField = (res.invalid_fields || []).filter(function (x) { return \/^(peb|doc)\/.test(x.field); })[0];\nif (fileField) { showError('Un fichier n\u2019a pas pu \u00eatre envoy\u00e9 : ' + fileField.message); return; }\nshowError(res.status === 'validation_failed' ? 'Certaines informations semblent incorrectes (adresse e-mail ?). V\u00e9rifiez-les puis r\u00e9essayez.' : '');\n})\n.catch(function () { showError(''); });\n});\napplyConditions();\nshowStep(0, false);\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Demande de devisforage g\u00e9othermique Votre projet\u00c9tape 1 sur 4 1. Votre projet Type de b\u00e2timent* Maison avec jardin accessible Maison avec jardinet \u00e0 l&rsquo;avant Maison mitoyenne Copropri\u00e9t\u00e9 \/ immeuble Bureaux, \u00e9cole ou autre Terrain \u00e0 b\u00e2tir Type de travaux* Construction neuve R\u00e9novation Remplacement du chauffage 2. Localisation Adresse du chantier* Code postal* Commune* 3. Besoins [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-no-title","meta":{"editor_plus_copied_stylings":"{}","footnotes":""},"class_list":["post-1322","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/brudrill.be\/index.php\/wp-json\/wp\/v2\/pages\/1322","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/brudrill.be\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/brudrill.be\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/brudrill.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/brudrill.be\/index.php\/wp-json\/wp\/v2\/comments?post=1322"}],"version-history":[{"count":6,"href":"https:\/\/brudrill.be\/index.php\/wp-json\/wp\/v2\/pages\/1322\/revisions"}],"predecessor-version":[{"id":1334,"href":"https:\/\/brudrill.be\/index.php\/wp-json\/wp\/v2\/pages\/1322\/revisions\/1334"}],"wp:attachment":[{"href":"https:\/\/brudrill.be\/index.php\/wp-json\/wp\/v2\/media?parent=1322"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}