{"id":2655,"date":"2025-12-01T22:46:16","date_gmt":"2025-12-01T22:46:16","guid":{"rendered":"https:\/\/www.lafarques.be\/order-gift-vouchers\/"},"modified":"2026-04-27T18:43:58","modified_gmt":"2026-04-27T18:43:58","slug":"order-gift-vouchers","status":"publish","type":"page","link":"https:\/\/www.lafarques.be\/en\/order-gift-vouchers\/","title":{"rendered":"Order gift vouchers"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2655\" class=\"elementor elementor-2655 elementor-2263\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-65efbf8 e-flex e-con-boxed e-con e-parent\" data-id=\"65efbf8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[],&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e0157c elementor-widget elementor-widget-shortcode\" data-id=\"4e0157c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div id=\"bc-wrap\">\n    <style>\n    @import url('https:\/\/fonts.googleapis.com\/css2?family=Raleway:wght@300;400;500;600&family=Lato:wght@300;400;700&family=Cormorant+Garamond:wght@300;400&display=swap');\n    #bc-wrap,#bc-wrap~*{}\n    .elementor-widget-shortcode,.elementor-widget-shortcode .elementor-widget-container{background:#000!important;}\n    #bc-wrap{\n        --gold:#c9a96e;--gold2:#dbb97e;\n        --bg:#000000;--bg2:#0a0a0a;--bg3:#0d0b06;\n        --bd:#2a2720;--bd2:#4a4438;\n        --txt:#e8e0d0;--muted:#a09070;--hint:#6a6050;--dim:#4a4030;\n        font-family:'Lato',sans-serif;font-weight:300;font-size:14px;\n        color:var(--txt);background:#000000!important;\n        padding:2.5rem 2.5rem;border-radius:0;\n        max-width:1100px;margin:0 auto;box-sizing:border-box;\n    }\n    .bc-cols{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;}\n    .bc-col-divider{width:1px;background:var(--bd);margin:0;}\n    #bc-wrap *{box-sizing:border-box;}\n    .bc-h1{font-family:'Raleway',Georgia,serif;font-size:32px;font-weight:300;letter-spacing:.12em;text-align:center;color:var(--gold);margin:0 0 .4rem;}\n    .bc-sub{text-align:center;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--hint);margin:0;}\n    .bc-sep{width:36px;height:1px;background:var(--gold);margin:1.25rem auto 2.5rem;opacity:.35;}\n    .bc-lbl{display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-family:'Raleway',sans-serif;font-weight:500;}\n    .bc-field{margin:0 0 2rem;}\n    .bc-select,.bc-input,.bc-textarea{\n        width:100%;background:var(--bg2);border:1px solid var(--bd);\n        color:var(--txt);font-family:inherit;font-weight:300;font-size:14px;\n        padding:13px 18px;border-radius:6px;appearance:none;transition:border-color .2s;\n        margin:0;\n    }\n    .bc-select:focus,.bc-input:focus,.bc-textarea:focus{outline:none;border-color:var(--gold);}\n    .bc-select option{background:var(--bg2);}\n    .bc-sw{position:relative;}\n    .bc-sw::after{content:'\u203a';position:absolute;right:16px;top:50%;transform:translateY(-50%) rotate(90deg);color:var(--gold);pointer-events:none;font-size:18px;}\n    .bc-textarea{resize:vertical;min-height:100px;}\n    .bc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:0;}\n    .bc-rows{display:flex;flex-direction:column;gap:10px;}\n    .bc-row{\n        display:flex;align-items:center;justify-content:space-between;\n        padding:13px 16px;background:var(--bg2);border:1px solid var(--bd);\n        border-radius:6px;cursor:pointer;transition:border-color .2s,background .2s;\n        margin:0;\n    }\n    .bc-row:hover{border-color:var(--bd2);}\n    .bc-row.on{border-color:var(--gold);background:var(--bg3);}\n    .bc-row input{accent-color:var(--gold);width:16px;height:16px;flex-shrink:0;cursor:pointer;margin:0;}\n    .bc-row-left{display:flex;align-items:center;gap:12px;}\n    .bc-row-right{font-size:12px;color:var(--gold);white-space:nowrap;padding-left:1rem;}\n    .bc-fee{font-size:11px;color:var(--hint);margin-left:6px;}\n    .bc-pbox{\n        background:#12110a;border:1px solid rgba(201,169,110,.18);border-radius:6px;\n        padding:1.5rem 1.75rem;display:flex;flex-direction:column;gap:1rem;\n        margin-top:2rem;transition:border-color .3s;\n    }\n    .bc-pbox.live{border-color:rgba(201,169,110,.45);}\n    .bc-plbl{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--hint);margin:0 0 4px;}\n    .bc-pdet{font-size:12px;color:var(--muted);line-height:1.7;margin:0;}\n    .bc-pamt-row{display:flex;align-items:baseline;justify-content:space-between;padding-top:.75rem;border-top:1px solid rgba(201,169,110,.15);}\n    .bc-pamt-lbl{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--hint);}\n    .bc-pamt{font-family:'Cormorant Garamond',Georgia,serif;font-size:44px;font-weight:300;color:var(--gold);line-height:1;}\n    .bc-btn{\n        width:100%;margin-top:1.75rem;padding:17px;\n        background:var(--gold);color:#0d0d0d;\n        font-family:inherit;font-weight:500;font-size:11px;\n        letter-spacing:.28em;text-transform:uppercase;\n        border:none;border-radius:4px;cursor:pointer;\n        transition:background .2s,transform .1s;\n    }\n    .bc-btn:hover{background:var(--gold2);}\n    .bc-btn:active{transform:scale(.99);}\n    .bc-btn:disabled{background:var(--bg2);color:var(--dim);cursor:not-allowed;}\n    .bc-err{display:none;background:rgba(200,50,50,.1);border:1px solid rgba(200,50,50,.3);color:#f08080;padding:12px 16px;border-radius:6px;font-size:13px;margin-top:1.25rem;}\n    .bc-spin{display:none;text-align:center;padding:12px;font-size:12px;color:var(--hint);letter-spacing:.12em;}\n    .bc-note{font-size:11px;color:var(--dim);text-align:center;margin-top:1.25rem;letter-spacing:.08em;}\n    .bc-stepper{display:flex;align-items:center;gap:0;border:1px solid var(--bd);border-radius:6px;overflow:hidden;width:fit-content;}\n    .bc-stepper button{background:var(--bg2);border:none;color:var(--gold);font-size:20px;font-weight:300;width:44px;height:44px;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center;line-height:1;outline:none;-webkit-appearance:none;appearance:none;}\n    .bc-stepper button:hover{background:var(--bg3);}\n    .bc-stepper button:active{background:var(--bd);}\n    .bc-stepper-val{min-width:52px;text-align:center;font-family:'Cormorant Garamond',Georgia,serif;font-size:22px;font-weight:300;color:var(--txt);border-left:1px solid var(--bd);border-right:1px solid var(--bd);height:44px;display:flex;align-items:center;justify-content:center;}\n    .bc-stepper-lbl{font-size:11px;color:var(--hint);margin-left:12px;}\n    .bc-step{}\n    .bc-step.off{display:none!important;}\n    \/* \u2500\u2500 Cat\u00e9gories \u2500\u2500 *\/\n    .bc-cats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;margin-bottom:2rem;}\n    .bc-cat{\n        padding:1.25rem 1rem;background:var(--bg2);border:1px solid var(--bd);\n        border-radius:8px;cursor:pointer;text-align:center;transition:all .2s;\n        font-family:'Raleway',sans-serif;user-select:none;-webkit-user-select:none;\n    }\n    .bc-cat:hover{border-color:var(--bd2);}\n    .bc-cat.on{border-color:var(--gold);background:var(--bg3);}\n    .bc-cat-icon{font-size:24px;margin-bottom:.5rem;display:block;}\n    .bc-cat-lbl{display:block;font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--txt);font-weight:500;}\n    .bc-cat-sub{display:block;font-size:11px;color:var(--hint);margin-top:3px;letter-spacing:.05em;}\n    \/* \u2500\u2500 Descriptions formules \u2500\u2500 *\/\n    .bc-row-desc{font-size:11px;color:var(--hint);margin-top:3px;display:block;font-family:'Lato',sans-serif;}\n    .bc-row-content{display:flex;flex-direction:column;gap:1px;}\n    .bc-row-name{font-size:14px;color:var(--txt);font-family:'Lato',sans-serif;}\n    \/* \u2500\u2500 Formules masqu\u00e9es par cat\u00e9gorie \u2500\u2500 *\/\n    .bc-formule-item{transition:opacity .2s;}\n    .bc-formule-item.hidden{display:none;}\n    @media(max-width:780px){.bc-cols{grid-template-columns:1fr;gap:0;}.bc-col-divider{display:none;}.bc-cats{grid-template-columns:1fr!important;}}\n    \/* \u2500\u2500 Bon valeur \u2500\u2500 *\/\n    .bc-valeur-input{display:none;}\n    .bc-valeur-input.on{display:block;}\n    .bc-valeur-wrap{position:relative;}\n    .bc-valeur-wrap::after{content:'\u20ac';position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--gold);pointer-events:none;font-size:16px;}\n    \/* \u2500\u2500 Soci\u00e9t\u00e9 \/ TVA \u2500\u2500 *\/\n    .bc-societe-fields{display:none;margin-top:1rem;}\n    .bc-societe-fields.on{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}\n    .bc-tva-ok{color:#4caf7d;font-size:11px;margin-top:4px;}\n    .bc-tva-err{color:#f08080;font-size:11px;margin-top:4px;}\n    \/* \u2500\u2500 Note bas de page \u2500\u2500 *\/\n    .bc-legal{font-size:10px;color:var(--dim);text-align:center;margin-top:.5rem;letter-spacing:.06em;font-style:italic;}\n    \/* Supprimer les fl\u00e8ches sur input number *\/\n    #bc-montant::-webkit-outer-spin-button,\n    #bc-montant::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}\n    #bc-montant{-moz-appearance:textfield;}\n    @media(max-width:500px){.bc-grid2{grid-template-columns:1fr;}#bc-wrap{padding:2rem 1.25rem;}.bc-societe-fields.on{grid-template-columns:1fr;}}\n    <\/style>\n\n    <div class=\"bc-h1\">Bons Cadeaux<\/div>\n    <div class=\"bc-sub\">Offrez un moment d'exception<\/div>\n    <div class=\"bc-sep\"><\/div>\n\n    <form id=\"bc-form\" novalidate>\n    <div class=\"bc-cols\">\n\n        <!-- \u2550\u2550\u2550 COLONNE GAUCHE \u2550\u2550\u2550 -->\n        <div class=\"bc-col-left\">\n\n            <!-- \u2460 Cat\u00e9gorie -->\n            <div class=\"bc-field\">\n                <label class=\"bc-lbl\">Que souhaitez-vous offrir ?<\/label>\n                <div class=\"bc-cats\">\n                    <div class=\"bc-cat\" id=\"bc-cat-sejour\" data-cat=\"sejour\">\n                        <span class=\"bc-cat-icon\">\n                            <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#c9a96e\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                <path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\/><polyline points=\"9 22 9 12 15 12 15 22\"\/>\n                            <\/svg>\n                        <\/span>\n                        <span class=\"bc-cat-lbl\">Un s\u00e9jour gastronomique<\/span>\n                        <span class=\"bc-cat-sub\">Nuit \u00b7 Spa \u00b7 Gastronomie<\/span>\n                    <\/div>\n                    <div class=\"bc-cat\" id=\"bc-cat-restaurant\" data-cat=\"restaurant\">\n                        <span class=\"bc-cat-icon\">\n                            <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#c9a96e\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                <path d=\"M18 8h1a4 4 0 0 1 0 8h-1\"\/><path d=\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"\/><line x1=\"6\" y1=\"1\" x2=\"6\" y2=\"4\"\/><line x1=\"10\" y1=\"1\" x2=\"10\" y2=\"4\"\/><line x1=\"14\" y1=\"1\" x2=\"14\" y2=\"4\"\/>\n                            <\/svg>\n                        <\/span>\n                        <span class=\"bc-cat-lbl\">Un bon pour le restaurant<\/span>\n                        <span class=\"bc-cat-sub\">D\u00eener \u00b7 Menu gastronomique<\/span>\n                    <\/div>\n                    <div class=\"bc-cat\" id=\"bc-cat-valeur\" data-cat=\"valeur\">\n                        <span class=\"bc-cat-icon\">\n                            <svg width=\"28\" height=\"28\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#c9a96e\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                                <rect x=\"2\" y=\"6\" width=\"20\" height=\"12\" rx=\"2\"\/><circle cx=\"12\" cy=\"12\" r=\"2\"\/><path d=\"M6 12h.01M18 12h.01\"\/>\n                            <\/svg>\n                        <\/span>\n                        <span class=\"bc-cat-lbl\">Offrir un bon cadeau<\/span>\n                        <span class=\"bc-cat-sub\">Montant libre \u00b7 Toutes prestations<\/span>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- \u2461 Formule \u2014 radio buttons avec prix + description -->\n            <div class=\"bc-field bc-step off\" id=\"bc-formules-wrap\">\n                <label class=\"bc-lbl\">Formule choisie *<\/label>\n                <div class=\"bc-rows\" id=\"bc-formules\">\n                                        <label class=\"bc-row bc-formule-item hidden\" data-cat=\"sejour\" for=\"bc-f-decouverte\">\n                        <div class=\"bc-row-left\">\n                            <input type=\"radio\" name=\"bc_formule\" id=\"bc-f-decouverte\"\n                                   value=\"decouverte\">\n                            <div class=\"bc-row-content\">\n                                <span class=\"bc-row-name\">S\u00e9jour D\u00e9couverte<\/span>\n                                                                <span class=\"bc-row-desc\">1 nuit \u00b7 Chambre &amp; petit-d\u00e9jeuner \u00b7 Acc\u00e8s spa<\/span>\n                                                            <\/div>\n                        <\/div>\n                                                <span class=\"bc-row-right\">\u00e0 partir de 409 \u20ac<\/span>\n                                            <\/label>\n                                        <label class=\"bc-row bc-formule-item hidden\" data-cat=\"sejour\" for=\"bc-f-bienetre\">\n                        <div class=\"bc-row-left\">\n                            <input type=\"radio\" name=\"bc_formule\" id=\"bc-f-bienetre\"\n                                   value=\"bienetre\">\n                            <div class=\"bc-row-content\">\n                                <span class=\"bc-row-name\">S\u00e9jour Bien-\u00eatre<\/span>\n                                                                <span class=\"bc-row-desc\">1 nuit \u00b7 Soin signature \u00b7 Acc\u00e8s spa &amp; piscine<\/span>\n                                                            <\/div>\n                        <\/div>\n                                                <span class=\"bc-row-right\">\u00e0 partir de 499 \u20ac<\/span>\n                                            <\/label>\n                                        <label class=\"bc-row bc-formule-item hidden\" data-cat=\"sejour\" for=\"bc-f-gourmands\">\n                        <div class=\"bc-row-left\">\n                            <input type=\"radio\" name=\"bc_formule\" id=\"bc-f-gourmands\"\n                                   value=\"gourmands\">\n                            <div class=\"bc-row-content\">\n                                <span class=\"bc-row-name\">S\u00e9jour Plaisirs Gourmands<\/span>\n                                                                <span class=\"bc-row-desc\">2 nuits \u00b7 D\u00eener gastronomique inclus \u00b7 Acc\u00e8s spa<\/span>\n                                                            <\/div>\n                        <\/div>\n                                                <span class=\"bc-row-right\">\u00e0 partir de 789 \u20ac<\/span>\n                                            <\/label>\n                                        <label class=\"bc-row bc-formule-item hidden\" data-cat=\"restaurant\" for=\"bc-f-renaissance\">\n                        <div class=\"bc-row-left\">\n                            <input type=\"radio\" name=\"bc_formule\" id=\"bc-f-renaissance\"\n                                   value=\"renaissance\">\n                            <div class=\"bc-row-content\">\n                                <span class=\"bc-row-name\">Menu Renaissance<\/span>\n                                                                <span class=\"bc-row-desc\">Exp\u00e9rience culinaire \u00b7 Prix fixe par personne<\/span>\n                                                            <\/div>\n                        <\/div>\n                                                <span class=\"bc-row-right\">\u00e0 partir de 104 \u20ac<\/span>\n                                            <\/label>\n                                        <label class=\"bc-row bc-formule-item hidden\" data-cat=\"restaurant\" for=\"bc-f-grand-menu\">\n                        <div class=\"bc-row-left\">\n                            <input type=\"radio\" name=\"bc_formule\" id=\"bc-f-grand-menu\"\n                                   value=\"grand-menu\">\n                            <div class=\"bc-row-content\">\n                                <span class=\"bc-row-name\">Grand Menu Lafarques<\/span>\n                                                                <span class=\"bc-row-desc\">Menu gastronomique signature \u00b7 5 ou 6 services<\/span>\n                                                            <\/div>\n                        <\/div>\n                                                <span class=\"bc-row-right\">\u00e0 partir de 118 \u20ac<\/span>\n                                            <\/label>\n                                        <label class=\"bc-row bc-formule-item hidden\" data-cat=\"restaurant\" for=\"bc-f-equilibre\">\n                        <div class=\"bc-row-left\">\n                            <input type=\"radio\" name=\"bc_formule\" id=\"bc-f-equilibre\"\n                                   value=\"equilibre\">\n                            <div class=\"bc-row-content\">\n                                <span class=\"bc-row-name\">Menu \u00c9quilibre<\/span>\n                                                                <span class=\"bc-row-desc\">Menu \u00e9quilibr\u00e9 \u00b7 59 \u20ac \/ personne<\/span>\n                                                            <\/div>\n                        <\/div>\n                                                <span class=\"bc-row-right\">\u00e0 partir de 59 \u20ac<\/span>\n                                            <\/label>\n                                    <\/div>\n            <\/div>\n\n            <!-- \u2461 H\u00f4tel : P\u00e9riode + Chambre (masqu\u00e9 par d\u00e9faut) -->\n            <div class=\"bc-field bc-step off\" id=\"bc-step2-hotel\">\n                <div class=\"bc-grid2\" style=\"gap:1rem\">\n                    <div>\n                        <label class=\"bc-lbl\" for=\"bc-periode\">P\u00e9riode *<\/label>\n                        <div class=\"bc-sw\">\n                            <select class=\"bc-select\" id=\"bc-periode\">\n                                <option value=\"\">\u2014 Choisissez \u2014<\/option>\n                            <\/select>\n                        <\/div>\n                    <\/div>\n                    <div>\n                        <label class=\"bc-lbl\" for=\"bc-chambre\">Chambre *<\/label>\n                        <div class=\"bc-sw\">\n                            <select class=\"bc-select\" id=\"bc-chambre\">\n                                <option value=\"\">\u2014 Choisissez \u2014<\/option>\n                            <\/select>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <!-- \u2462 Restaurant variable : Services (masqu\u00e9 par d\u00e9faut) -->\n            <div class=\"bc-field bc-step off\" id=\"bc-step2-resto\">\n                <label class=\"bc-lbl\" for=\"bc-services\">Nombre de services *<\/label>\n                <div class=\"bc-sw\">\n                    <select class=\"bc-select\" id=\"bc-services\">\n                        <option value=\"\">\u2014 Choisissez \u2014<\/option>\n                    <\/select>\n                <\/div>\n            <\/div>\n\n            <!-- \u2461 bis Montant bon valeur -->\n            <div class=\"bc-field bc-step off\" id=\"bc-valeur-input-wrap\">\n                <label class=\"bc-lbl\" for=\"bc-montant\">Montant du bon *<\/label>\n                <div style=\"position:relative\">\n                    <input class=\"bc-input\" type=\"number\" id=\"bc-montant\" min=\"10\" max=\"5000\" step=\"1\" placeholder=\"Ex : 150\" style=\"padding-right:2.5rem\">\n                    <span style=\"position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--gold);pointer-events:none\">\u20ac<\/span>\n                <\/div>\n                <p style=\"font-size:11px;color:var(--hint);margin-top:6px\">Montant minimum 10 \u20ac<\/p>\n            <\/div>\n\n            <!-- \u2463 S\u00e9lection de vins (masqu\u00e9 par d\u00e9faut) -->\n            <div class=\"bc-field bc-step off\" id=\"bc-addon-vins-wrap\">\n                <label class=\"bc-lbl\">Option<\/label>\n                <div class=\"bc-rows\">\n                    <label class=\"bc-row\" for=\"bc-addon-vins\">\n                        <div class=\"bc-row-left\">\n                            <input type=\"checkbox\" id=\"bc-addon-vins\" name=\"addon_vins\" value=\"1\">\n                            <span id=\"bc-addon-vins-label\">S\u00e9lection de vins<\/span>\n                        <\/div>\n                        <span class=\"bc-row-right\" id=\"bc-addon-vins-price\"><\/span>\n                    <\/label>\n                <\/div>\n            <\/div>\n\n            <!-- \u2464 Nombre de personnes \u2014 restaurant uniquement (masqu\u00e9 par d\u00e9faut) -->\n            <div class=\"bc-field bc-step off\" id=\"bc-nb-personnes-wrap\">\n                <label class=\"bc-lbl\">Nombre de personnes *<\/label>\n                <div style=\"display:flex;align-items:center;gap:16px\">\n                    <div class=\"bc-stepper\">\n                        <button type=\"button\" id=\"bc-nb-moins\" aria-label=\"Moins\">\u2212<\/button>\n                        <div class=\"bc-stepper-val\" id=\"bc-nb-val\">1<\/div>\n                        <button type=\"button\" id=\"bc-nb-plus\"  aria-label=\"Plus\">+<\/button>\n                    <\/div>\n                    <span class=\"bc-stepper-lbl\" id=\"bc-nb-lbl\">personne<\/span>\n                    <input type=\"hidden\" id=\"bc-nb-personnes\" value=\"1\">\n                <\/div>\n            <\/div>\n\n            <!-- \u2464b \u00c0 qui offrez-vous ce bon ? (visible apr\u00e8s s\u00e9lection formule) -->\n            <div class=\"bc-field bc-step off\" id=\"bc-destinataire-wrap\">\n                <label class=\"bc-lbl\" for=\"bc-destinataire\">\u00c0 qui souhaitez-vous offrir ce bon ? (optionnel)<\/label>\n                <input class=\"bc-input\" type=\"text\" id=\"bc-destinataire\" name=\"destinataire\" placeholder=\"Pr\u00e9nom et nom du destinataire\">\n            <\/div>\n\n            <!-- \u2465 Mode de r\u00e9ception -->\n            <div class=\"bc-field\">\n                <label class=\"bc-lbl\">Mode de r\u00e9ception du bon *<\/label>\n                <div class=\"bc-rows\">\n                    <label class=\"bc-row on\" for=\"bc-liv-mail\">\n                        <div class=\"bc-row-left\">\n                            <input type=\"radio\" name=\"livraison\" id=\"bc-liv-mail\" value=\"mail\" checked>\n                            <span>Recevoir par e-mail <span class=\"bc-fee\">\u00b7 Gratuit<\/span><\/span>\n                        <\/div>\n                    <\/label>\n                    <label class=\"bc-row\" for=\"bc-liv-courrier\">\n                        <div class=\"bc-row-left\">\n                            <input type=\"radio\" name=\"livraison\" id=\"bc-liv-courrier\" value=\"courrier\">\n                            <span>Recevoir par courrier postal <span class=\"bc-fee\">\u00b7 + 7 \u20ac<\/span><\/span>\n                        <\/div>\n                    <\/label>\n                    <label class=\"bc-row\" for=\"bc-liv-retrait\">\n                        <div class=\"bc-row-left\">\n                            <input type=\"radio\" name=\"livraison\" id=\"bc-liv-retrait\" value=\"retrait\">\n                            <span>Venir le chercher \u00e0 l'h\u00f4tel <span class=\"bc-fee\">\u00b7 Gratuit<\/span><\/span>\n                        <\/div>\n                    <\/label>\n                <\/div>\n            <\/div>\n\n        <\/div><!-- \/col-left -->\n\n        <!-- \u2550\u2550\u2550 COLONNE DROITE \u2550\u2550\u2550 -->\n        <div class=\"bc-col-right\">\n\n            <div class=\"bc-field\">\n                <label class=\"bc-lbl\" for=\"bc-msg\">Message personnalis\u00e9 (optionnel)<\/label>\n                <textarea class=\"bc-textarea\" id=\"bc-msg\" placeholder=\"Votre message pour le destinataire\u2026\" style=\"min-height:130px\"><\/textarea>\n            <\/div>\n\n            <div class=\"bc-field\">\n                <label class=\"bc-lbl\" for=\"bc-nom\">Pr\u00e9nom & Nom *<\/label>\n                <input class=\"bc-input\" type=\"text\" id=\"bc-nom\" placeholder=\"Jean Dupont\" required>\n            <\/div>\n\n            <div class=\"bc-field\">\n                <label class=\"bc-lbl\" for=\"bc-email\">E-mail *<\/label>\n                <input class=\"bc-input\" type=\"email\" id=\"bc-email\" placeholder=\"jean@exemple.fr\" required>\n            <\/div>\n\n            <!-- Facture soci\u00e9t\u00e9 -->\n            <div class=\"bc-field\">\n                <label class=\"bc-row\" for=\"bc-need-facture\" style=\"cursor:pointer;padding:11px 14px\">\n                    <div class=\"bc-row-left\">\n                        <input type=\"checkbox\" id=\"bc-need-facture\">\n                        <span>Avez-vous besoin d'une facture au nom d'une soci\u00e9t\u00e9 ?<\/span>\n                    <\/div>\n                <\/label>\n                <div class=\"bc-societe-fields\" id=\"bc-societe-fields\">\n                    <div>\n                        <label class=\"bc-lbl\" for=\"bc-societe\" style=\"margin-top:.75rem\">Nom de la soci\u00e9t\u00e9 *<\/label>\n                        <input class=\"bc-input\" type=\"text\" id=\"bc-societe\" placeholder=\"Ma Soci\u00e9t\u00e9 SA\">\n                    <\/div>\n                    <div>\n                        <label class=\"bc-lbl\" for=\"bc-tva\" style=\"margin-top:.75rem\">N\u00b0 TVA *<\/label>\n                        <input class=\"bc-input\" type=\"text\" id=\"bc-tva\" placeholder=\"BE0123456789\" maxlength=\"12\">\n                        <p class=\"bc-tva-err\" id=\"bc-tva-msg\" style=\"display:none\"><\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"bc-pbox\" id=\"bc-pbox\">\n                <div>\n                    <div class=\"bc-plbl\">R\u00e9capitulatif<\/div>\n                    <div class=\"bc-pdet\" id=\"bc-pdet\">S\u00e9lectionnez une formule<\/div>\n                <\/div>\n                <div class=\"bc-pamt-row\">\n                    <span class=\"bc-pamt-lbl\">Total<\/span>\n                    <span class=\"bc-pamt\" id=\"bc-pamt\">\u2014 \u20ac<\/span>\n                <\/div>\n            <\/div>\n\n            <div class=\"bc-err\"  id=\"bc-err\"><\/div>\n            <div class=\"bc-spin\" id=\"bc-spin\">Pr\u00e9paration de votre commande\u2026<\/div>\n            <button type=\"submit\" class=\"bc-btn\" id=\"bc-btn\" disabled>Proc\u00e9der au paiement \u2192<\/button>\n            <p class=\"bc-note\">Paiement 100 % s\u00e9curis\u00e9 \u00b7 Bon valable 12 mois<\/p>\n            <p class=\"bc-legal\">Chaque bon cadeau est consid&eacute;r&eacute; comme un bon valeur &agrave; la date d&rsquo;&eacute;mission<\/p>\n\n        <\/div><!-- \/col-right -->\n\n    <\/div><!-- \/bc-cols -->\n    <\/form>\n    <\/div>\n\n    <script>\n    (function(){\n        var PRODUCTS = [{\"id\":3991,\"slug\":\"decouverte\",\"label\":\"S\\u00e9jour D\\u00e9couverte\",\"desc\":\"1 nuit \\u00b7 Chambre & petit-d\\u00e9jeuner \\u00b7 Acc\\u00e8s spa\",\"cat\":\"sejour\",\"type\":\"hotel\",\"addon_vins\":{\"label\":\"S\\u00e9lection de vins\",\"price\":116},\"periodes\":[\"Week\",\"Weekend\"],\"chambres\":[\"Deluxe\",\"Junior Suite\",\"Standard\"],\"variations\":[{\"variation_id\":3992,\"periode\":\"Week\",\"chambre\":\"Deluxe\",\"price\":449,\"price_html\":\"449 \\u20ac\"},{\"variation_id\":3993,\"periode\":\"Week\",\"chambre\":\"Junior Suite\",\"price\":469,\"price_html\":\"469 \\u20ac\"},{\"variation_id\":3994,\"periode\":\"Week\",\"chambre\":\"Standard\",\"price\":409,\"price_html\":\"409 \\u20ac\"},{\"variation_id\":3995,\"periode\":\"Weekend\",\"chambre\":\"Deluxe\",\"price\":549,\"price_html\":\"549 \\u20ac\"},{\"variation_id\":3996,\"periode\":\"Weekend\",\"chambre\":\"Junior Suite\",\"price\":589,\"price_html\":\"589 \\u20ac\"},{\"variation_id\":3997,\"periode\":\"Weekend\",\"chambre\":\"Standard\",\"price\":509,\"price_html\":\"509 \\u20ac\"}]},{\"id\":4273,\"slug\":\"bienetre\",\"label\":\"S\\u00e9jour Bien-\\u00eatre\",\"desc\":\"1 nuit \\u00b7 Soin signature \\u00b7 Acc\\u00e8s spa & piscine\",\"cat\":\"sejour\",\"type\":\"hotel\",\"addon_vins\":null,\"periodes\":[\"Week\",\"Weekend\"],\"chambres\":[\"Standard\",\"Deluxe\",\"Junior Suite\"],\"variations\":[{\"variation_id\":4276,\"periode\":\"Week\",\"chambre\":\"Standard\",\"price\":499,\"price_html\":\"499 \\u20ac\"},{\"variation_id\":4274,\"periode\":\"Week\",\"chambre\":\"Deluxe\",\"price\":539,\"price_html\":\"539 \\u20ac\"},{\"variation_id\":4275,\"periode\":\"Week\",\"chambre\":\"Junior Suite\",\"price\":559,\"price_html\":\"559 \\u20ac\"},{\"variation_id\":4279,\"periode\":\"Weekend\",\"chambre\":\"Standard\",\"price\":599,\"price_html\":\"599 \\u20ac\"},{\"variation_id\":4277,\"periode\":\"Weekend\",\"chambre\":\"Deluxe\",\"price\":639,\"price_html\":\"639 \\u20ac\"},{\"variation_id\":4278,\"periode\":\"Weekend\",\"chambre\":\"Junior Suite\",\"price\":679,\"price_html\":\"679 \\u20ac\"}]},{\"id\":4336,\"slug\":\"gourmands\",\"label\":\"S\\u00e9jour Plaisirs Gourmands\",\"desc\":\"2 nuits \\u00b7 D\\u00eener gastronomique inclus \\u00b7 Acc\\u00e8s spa\",\"cat\":\"sejour\",\"type\":\"hotel\",\"addon_vins\":{\"label\":\"S\\u00e9lection de vins\",\"price\":212},\"periodes\":[\"Week\",\"Weekend\"],\"chambres\":[\"Deluxe\",\"Junior Suite\",\"Standard\"],\"variations\":[{\"variation_id\":4337,\"periode\":\"Week\",\"chambre\":\"Deluxe\",\"price\":859,\"price_html\":\"859 \\u20ac\"},{\"variation_id\":4338,\"periode\":\"Week\",\"chambre\":\"Junior Suite\",\"price\":899,\"price_html\":\"899 \\u20ac\"},{\"variation_id\":4339,\"periode\":\"Week\",\"chambre\":\"Standard\",\"price\":789,\"price_html\":\"789 \\u20ac\"},{\"variation_id\":4340,\"periode\":\"Weekend\",\"chambre\":\"Deluxe\",\"price\":1069,\"price_html\":\"1 069 \\u20ac\"},{\"variation_id\":4341,\"periode\":\"Weekend\",\"chambre\":\"Junior Suite\",\"price\":1149,\"price_html\":\"1 149 \\u20ac\"},{\"variation_id\":4342,\"periode\":\"Weekend\",\"chambre\":\"Standard\",\"price\":989,\"price_html\":\"989 \\u20ac\"}]},{\"id\":4348,\"slug\":\"renaissance\",\"label\":\"Menu Renaissance\",\"desc\":\"Exp\\u00e9rience culinaire \\u00b7 Prix fixe par personne\",\"cat\":\"restaurant\",\"type\":\"simple\",\"addon_vins\":{\"label\":\"S\\u00e9lection de vins\",\"price\":48},\"price\":104,\"price_html\":\"104 \\u20ac\"},{\"id\":4360,\"slug\":\"grand-menu\",\"label\":\"Grand Menu Lafarques\",\"desc\":\"Menu gastronomique signature \\u00b7 5 ou 6 services\",\"cat\":\"restaurant\",\"type\":\"restaurant\",\"addon_vins\":{\"label\":\"S\\u00e9lection de vins\",\"price\":58},\"services\":[\"5\",\"6\"],\"variations\":[{\"variation_id\":4361,\"services\":\"5\",\"price\":118,\"price_html\":\"118 \\u20ac\",\"addon_vins\":{\"label\":\"S\\u00e9lection de vins\",\"price\":58}},{\"variation_id\":4362,\"services\":\"6\",\"price\":130,\"price_html\":\"130 \\u20ac\",\"addon_vins\":{\"label\":\"S\\u00e9lection de vins\",\"price\":58}}]},{\"id\":4738,\"slug\":\"equilibre\",\"label\":\"Menu \\u00c9quilibre\",\"desc\":\"Menu \\u00e9quilibr\\u00e9 \\u00b7 59 \\u20ac \\\/ personne\",\"cat\":\"restaurant\",\"type\":\"simple\",\"addon_vins\":{\"label\":\"S\\u00e9lection de vins\",\"price\":29},\"price\":59,\"price_html\":\"59 \\u20ac\"}];\n        \/\/ Ajouter le bon valeur directement en JS (pas de produit WooCommerce n\u00e9cessaire)\n        PRODUCTS.push({\n            id: 0, slug: 'bon-valeur', label: 'Bon cadeau valeur',\n            desc: 'Montant libre \u00b7 Valable sur toutes nos prestations',\n            type: 'valeur', cat: 'valeur',\n            addon_vins: null, variations: [], periodes: [], chambres: []\n        });\n        var AJAX_URL = 'https:\/\/www.lafarques.be\/wp-admin\/admin-ajax.php';\n        var NONCE    = 'ccf0386787';\n        var COURRIER = 7;\n\n        \/* \u2550\u2550 Toutes les refs DOM en premier \u2550\u2550 *\/\n        var selPeriode   = document.getElementById('bc-periode');\n        var selChambre   = document.getElementById('bc-chambre');\n        var selServices  = document.getElementById('bc-services');\n        var step2Hotel   = document.getElementById('bc-step2-hotel');\n        var step2Resto   = document.getElementById('bc-step2-resto');\n        var wrapVins     = document.getElementById('bc-addon-vins-wrap');\n        var formulesWrap  = document.getElementById('bc-formules-wrap');\n        var valeurWrap    = document.getElementById('bc-valeur-input-wrap');\n        var cbFacture     = document.getElementById('bc-need-facture');\n        var societeFields = document.getElementById('bc-societe-fields');\n        var tvaMsgEl      = document.getElementById('bc-tva-msg');\n\n        \/* \u2500\u2500 Soci\u00e9t\u00e9 \/ TVA \u2500\u2500 *\/\n        if (cbFacture) {\n            cbFacture.addEventListener('change', function(){\n                this.closest('.bc-row').classList.toggle('on', this.checked);\n                if (this.checked) {\n                    societeFields.classList.add('on');\n                } else {\n                    societeFields.classList.remove('on');\n                    document.getElementById('bc-societe').value = '';\n                    document.getElementById('bc-tva').value = '';\n                    if (tvaMsgEl) tvaMsgEl.style.display = 'none';\n                }\n            });\n        }\n\n        if (document.getElementById('bc-tva')) {\n            document.getElementById('bc-tva').addEventListener('input', function(){\n                var val = this.value.trim().toUpperCase().replace(\/\\s\/g, '');\n                if (!val) { tvaMsgEl.style.display = 'none'; return; }\n                var ok = \/^BE0[0-9]{9}$\/.test(val);\n                tvaMsgEl.className = ok ? 'bc-tva-ok' : 'bc-tva-err';\n                tvaMsgEl.textContent = ok ? '\u2713 Format valide' : 'Format invalide \u2014 ex\u00a0: BE0123456789';\n                tvaMsgEl.style.display = 'block';\n            });\n        }\n        var wrapPersonne = document.getElementById('bc-nb-personnes-wrap');\n        var cbVins       = document.getElementById('bc-addon-vins');\n        var lblVins      = document.getElementById('bc-addon-vins-label');\n        var priceVins    = document.getElementById('bc-addon-vins-price');\n        var nbInput      = document.getElementById('bc-nb-personnes');\n        var nbVal        = document.getElementById('bc-nb-val');\n        var nbLbl        = document.getElementById('bc-nb-lbl');\n        var nbMoins      = document.getElementById('bc-nb-moins');\n        var nbPlus       = document.getElementById('bc-nb-plus');\n        var pbox         = document.getElementById('bc-pbox');\n        var pamt         = document.getElementById('bc-pamt');\n        var pdet         = document.getElementById('bc-pdet');\n        var btn          = document.getElementById('bc-btn');\n        var errBox       = document.getElementById('bc-err');\n        var spinBox      = document.getElementById('bc-spin');\n\n        \/* \u2550\u2550 \u00c9tat \u2550\u2550 *\/\n        var currentProduct   = null;\n        var currentVariation = null;\n        var livraisonFee     = 0;\n        var nbCount          = 1;\n\n        \/* \u2550\u2550 Helpers \u2550\u2550 *\/\n        function show(el){ if(el){ el.classList.remove('off'); el.style.display=''; } }\n        function hide(el){ if(el){ el.classList.add('off'); el.style.display='none'; } }\n\n        function setNb(n){\n            nbCount = Math.max(1, Math.min(20, n));\n            nbInput.value             = nbCount;\n            nbVal.textContent         = nbCount;\n            nbLbl.textContent         = nbCount === 1 ? 'personne' : 'personnes';\n            nbMoins.style.opacity     = nbCount <= 1  ? '0.3' : '1';\n            nbPlus.style.opacity      = nbCount >= 20 ? '0.3' : '1';\n            updatePrice();\n        }\n\n        function getAddonVins(){\n            if ( !currentProduct ) return null;\n            if ( currentProduct.type === 'restaurant' && currentVariation && currentVariation.addon_vins )\n                return currentVariation.addon_vins;\n            return currentProduct.addon_vins || null;\n        }\n\n        function showDestinataireWrap(){\n            var dw = document.getElementById('bc-destinataire-wrap');\n            if ( dw && currentProduct ) show(dw);\n        }\n\n        function updateAddonVinsDisplay(){\n            var av = getAddonVins();\n            if ( av ) {\n                lblVins.textContent   = av.label;\n                priceVins.textContent = '+ ' + Math.round(av.price) + ' \\u20ac';\n                show(wrapVins);\n                cbVins.checked = false;\n                cbVins.closest('.bc-row').classList.remove('on');\n            } else {\n                hide(wrapVins);\n                cbVins.checked = false;\n            }\n            if ( currentProduct && (currentProduct.type === 'restaurant' || currentProduct.type === 'simple') && currentVariation ) {\n                show(wrapPersonne);\n            } else {\n                hide(wrapPersonne);\n                setNb(1);\n            }\n            \/\/ La s\u00e9lection de vins s'affiche pour TOUS les types si l'addon existe\n        }\n\n        function getNbPersonnes(){\n            if ( !currentProduct ) return 1;\n            if ( currentProduct.type === 'restaurant' || currentProduct.type === 'simple' ) return nbCount;\n            return 1;\n        }\n\n        function isFormValid(){\n            var nom   = document.getElementById('bc-nom').value.trim();\n            var email = document.getElementById('bc-email').value.trim();\n            return !!( currentVariation && nom && \/\\S+@\\S+\\.\\S+\/.test(email) );\n        }\n\n        function updatePrice(){\n            errBox.style.display = 'none';\n            \/\/ Bon valeur : prix = montant saisi\n            if ( currentProduct && currentProduct.type === 'valeur' ) {\n                var montant = parseFloat(document.getElementById('bc-montant').value) || 0;\n                if (montant >= 10) {\n                    currentVariation = { price: montant, price_html: montant.toFixed(0) + ' \u20ac', variation_id: 0 };\n                } else {\n                    currentVariation = null;\n                }\n            }\n            if ( !currentVariation ) {\n                pamt.textContent = '\\u2014 \\u20ac';\n                pdet.textContent = !currentProduct\n                    ? 'S\\u00e9lectionnez une formule'\n                    : currentProduct.type === 'hotel'\n                        ? 'Choisissez une p\\u00e9riode et une chambre'\n                        : currentProduct.type === 'restaurant'\n                            ? 'Choisissez le nombre de services'\n                            : 'S\\u00e9lectionnez une formule';\n                pbox.classList.remove('live');\n                btn.disabled = true;\n                return;\n            }\n            var nb        = getNbPersonnes();\n            var av        = getAddonVins();\n            var addonVins = (av && cbVins.checked) ? av.price : 0;\n            var total     = currentVariation.price * nb + addonVins * nb + livraisonFee;\n\n            pamt.textContent = Math.round(total) + ' \\u20ac';\n            pbox.classList.add('live');\n\n            var parts = [ currentProduct.label ];\n            if ( currentProduct.type === 'hotel' )\n                parts.push(selPeriode.value + ' \\u00b7 ' + selChambre.value);\n            else if ( currentProduct.type === 'restaurant' )\n                parts.push(selServices.value);\n            parts.push(currentVariation.price_html + (nb > 1 ? ' \\u00d7 ' + nb : ''));\n            if ( addonVins ) parts.push(av.label + ' +' + Math.round(addonVins * nb) + ' \\u20ac');\n            if ( livraisonFee ) parts.push('Envoi +' + Math.round(livraisonFee) + ' \\u20ac');\n            pdet.textContent = parts.join(' \\u00b7 ');\n\n            var nom   = document.getElementById('bc-nom').value.trim();\n            var email = document.getElementById('bc-email').value.trim();\n            btn.disabled = !isFormValid();\n        }\n\n        \/* \u2550\u2550 Listeners \u2550\u2550 *\/\n\n        \/* Stepper personnes *\/\n        nbMoins.addEventListener('click', function(){ setNb(nbCount - 1); this.blur(); });\n        nbPlus.addEventListener('click',  function(){ setNb(nbCount + 1); this.blur(); });\n        nbMoins.style.opacity = '0.3';\n\n        \/* Cat\u00e9gories *\/\n        document.querySelectorAll('.bc-cat').forEach(function(cat){\n            cat.addEventListener('click', function(){\n                var selectedCat = this.dataset.cat;\n\n                \/\/ Highlight selected category\n                document.querySelectorAll('.bc-cat').forEach(function(c){ c.classList.remove('on'); });\n                this.classList.add('on');\n\n                \/\/ Reset formule selection\n                currentProduct   = null;\n                currentVariation = null;\n                document.querySelectorAll('input[name=bc_formule]').forEach(function(rb){ rb.checked = false; });\n                document.querySelectorAll('#bc-formules .bc-row').forEach(function(r){ r.classList.remove('on'); });\n                selPeriode.innerHTML  = '<option value=\"\">\u2014 Choisissez \u2014<\/option>';\n                selChambre.innerHTML  = '<option value=\"\">\u2014 Choisissez \u2014<\/option>';\n                selServices.innerHTML = '<option value=\"\">\u2014 Choisissez \u2014<\/option>';\n                hide(step2Hotel); hide(step2Resto);\n                hide(wrapVins);   hide(wrapPersonne);\n                if (valeurWrap) hide(valeurWrap);\n                var dw = document.getElementById('bc-destinataire-wrap'); if(dw) hide(dw);\n                cbVins.checked = false;\n                setNb(1);\n                updatePrice();\n\n                \/\/ Show only formulas matching selected category\n                document.querySelectorAll('.bc-formule-item').forEach(function(item){\n                    if ( item.dataset.cat === selectedCat ) {\n                        item.classList.remove('hidden');\n                    } else {\n                        item.classList.add('hidden');\n                        \/\/ Uncheck hidden radios\n                        var rb = item.querySelector('input[type=radio]');\n                        if (rb) rb.checked = false;\n                    }\n                });\n\n                \/\/ Show formules section\n                show(formulesWrap);\n                \/\/ Pour la cat\u00e9gorie 'valeur' : s\u00e9lection auto + affichage direct\n                if ( selectedCat === 'valeur' ) {\n                    hide(formulesWrap);\n                    currentProduct = PRODUCTS.find(function(p){ return p.slug === 'bon-valeur'; }) || null;\n                    if (currentProduct) {\n                        show(valeurWrap);\n                        document.getElementById('bc-montant').value = '';\n                        currentVariation = null;\n                        updatePrice();\n                    }\n                }\n                \/\/ destinataire s'affiche apr\u00e8s s\u00e9lection de formule, g\u00e9r\u00e9 par showDestinataireWrap()\n            });\n        });\n\n        \/* Radios formule *\/\n        document.querySelectorAll('input[name=bc_formule]').forEach(function(rb){\n            rb.addEventListener('change', function(){\n                var slug = this.value;\n                currentProduct   = PRODUCTS.find(function(p){ return p.slug === slug; }) || null;\n                currentVariation = null;\n\n                document.querySelectorAll('#bc-formules .bc-row').forEach(function(r){ r.classList.remove('on'); });\n                this.closest('.bc-row').classList.add('on');\n\n                selPeriode.innerHTML  = '<option value=\"\">\\u2014 Choisissez \\u2014<\/option>';\n                selChambre.innerHTML  = '<option value=\"\">\\u2014 Choisissez \\u2014<\/option>';\n                selServices.innerHTML = '<option value=\"\">\\u2014 Choisissez \\u2014<\/option>';\n                hide(step2Hotel); hide(step2Resto);\n                hide(wrapVins);   hide(wrapPersonne);\n                if (valeurWrap) hide(valeurWrap);\n                var dw = document.getElementById('bc-destinataire-wrap'); if(dw) hide(dw);\n                cbVins.checked = false;\n                setNb(1);\n\n                if ( !currentProduct ) { updatePrice(); return; }\n\n                if ( currentProduct.type === 'hotel' ) {\n                    currentProduct.periodes.forEach(function(p){\n                        var o = document.createElement('option');\n                        o.value = p; o.textContent = p; selPeriode.appendChild(o);\n                    });\n                    show(step2Hotel);\n\n                } else if ( currentProduct.type === 'restaurant' ) {\n                    currentProduct.services.forEach(function(s){\n                        var o = document.createElement('option');\n                        o.value = s; o.textContent = s; selServices.appendChild(o);\n                    });\n                    show(step2Resto);\n\n                } else if ( currentProduct.type === 'simple' ) {\n                    currentVariation = { price: currentProduct.price, price_html: currentProduct.price_html, variation_id: 0 };\n                    updateAddonVinsDisplay();\n                    showDestinataireWrap();\n\n                } else if ( currentProduct.type === 'valeur' ) {\n                    \/\/ Bon valeur : montant libre\n                    show(valeurWrap);\n                    showDestinataireWrap();\n                    document.getElementById('bc-montant').value = '';\n                    currentVariation = { price: 0, price_html: '\u2014 \u20ac', variation_id: 0 };\n                }\n\n                updatePrice();\n            });\n        });\n\n        \/* H\u00f4tel \u2014 P\u00e9riode *\/\n        selPeriode.addEventListener('change', function(){\n            currentVariation = null;\n            selChambre.innerHTML = '<option value=\"\">\\u2014 Choisissez \\u2014<\/option>';\n            if ( currentProduct && this.value ) {\n                var per = this.value, seen = {};\n                currentProduct.variations.filter(function(v){ return v.periode === per; })\n                    .forEach(function(v){\n                        if ( !seen[v.chambre] ) {\n                            seen[v.chambre] = true;\n                            var o = document.createElement('option');\n                            o.value = v.chambre; o.textContent = v.chambre; selChambre.appendChild(o);\n                        }\n                    });\n            }\n            updateVariationHotel();\n        });\n\n        \/* H\u00f4tel \u2014 Chambre *\/\n        selChambre.addEventListener('change', updateVariationHotel);\n        function updateVariationHotel(){\n            currentVariation = null;\n            var per = selPeriode.value, cha = selChambre.value;\n            if ( currentProduct && per && cha ) {\n                currentVariation = currentProduct.variations.find(function(v){\n                    return v.periode === per && v.chambre === cha;\n                }) || null;\n            }\n            updateAddonVinsDisplay();\n            updatePrice();\n        }\n\n        \/* Restaurant \u2014 Services *\/\n        selServices.addEventListener('change', function(){\n            currentVariation = null;\n            if ( currentProduct && this.value ) {\n                var svc = this.value;\n                currentVariation = currentProduct.variations.find(function(v){ return v.services === svc; }) || null;\n            }\n            updateAddonVinsDisplay();\n            updatePrice();\n        });\n\n        \/* Vins *\/\n        cbVins.addEventListener('change', function(){\n            this.closest('.bc-row').classList.toggle('on', this.checked);\n            updatePrice();\n        });\n\n        \/* Livraison *\/\n        document.querySelectorAll('input[name=livraison]').forEach(function(rb){\n            rb.addEventListener('change', function(){\n                document.querySelectorAll('.bc-row').forEach(function(r){\n                    if ( r.querySelector('input[name=livraison]') ) r.classList.remove('on');\n                });\n                this.closest('.bc-row').classList.add('on');\n                livraisonFee = this.value === 'courrier' ? COURRIER : 0;\n                updatePrice();\n            });\n        });\n\n        \/* Champs texte *\/\n        ['bc-nom','bc-email'].forEach(function(id){\n            document.getElementById(id).addEventListener('input', updatePrice);\n        });\n        if (document.getElementById('bc-montant')) document.getElementById('bc-montant').addEventListener('input', function(){\n            if (currentProduct && currentProduct.type === 'valeur') updatePrice();\n        });\n\n        \/* Soumission *\/\n        document.getElementById('bc-form').addEventListener('submit', function(e){\n            e.preventDefault();\n            if ( !currentVariation ) return;\n\n            errBox.style.display  = 'none';\n            spinBox.style.display = 'block';\n            btn.disabled = true;\n\n            var liv = document.querySelector('input[name=livraison]:checked');\n            var formuleRb = document.querySelector('input[name=bc_formule]:checked');\n\n            var body = new URLSearchParams({\n                action:       'bc_add_to_cart',\n                nonce:        NONCE,\n                formule:      formuleRb ? formuleRb.value : '',\n                periode:      selPeriode.value,\n                chambre:      selChambre.value,\n                services:     selServices.value,\n                nb_personnes: getNbPersonnes(),\n                variation_id: currentVariation.variation_id,\n                product_type: currentProduct ? currentProduct.type : 'hotel',\n                livraison:    liv ? liv.value : 'mail',\n                message:      document.getElementById('bc-msg').value,\n                addon_vins:   cbVins.checked ? '1' : '0',\n            });\n\n            fetch(AJAX_URL, {\n                method:  'POST',\n                headers: {'Content-Type':'application\/x-www-form-urlencoded'},\n                body:    body.toString()\n            })\n            .then(function(r){ return r.json(); })\n            .then(function(resp){\n                spinBox.style.display = 'none';\n                if ( resp.success && resp.data.checkout_url ) {\n                    window.location.href = resp.data.checkout_url;\n                } else {\n                    errBox.textContent   = (resp.data && resp.data.message) || 'Une erreur est survenue.';\n                    errBox.style.display = 'block';\n                    btn.disabled = false;\n                }\n            })\n            .catch(function(){\n                spinBox.style.display = 'none';\n                errBox.textContent   = 'Erreur r\\u00e9seau. Veuillez r\\u00e9essayer.';\n                errBox.style.display = 'block';\n                btn.disabled = false;\n            });\n        });\n\n    })();\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2655","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.lafarques.be\/en\/wp-json\/wp\/v2\/pages\/2655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lafarques.be\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lafarques.be\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lafarques.be\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lafarques.be\/en\/wp-json\/wp\/v2\/comments?post=2655"}],"version-history":[{"count":13,"href":"https:\/\/www.lafarques.be\/en\/wp-json\/wp\/v2\/pages\/2655\/revisions"}],"predecessor-version":[{"id":4755,"href":"https:\/\/www.lafarques.be\/en\/wp-json\/wp\/v2\/pages\/2655\/revisions\/4755"}],"wp:attachment":[{"href":"https:\/\/www.lafarques.be\/en\/wp-json\/wp\/v2\/media?parent=2655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}