{"id":17,"date":"2024-01-09T15:55:53","date_gmt":"2024-01-09T15:55:53","guid":{"rendered":"https:\/\/demo.artureanec.com\/themes\/logico-rounded\/?page_id=17"},"modified":"2026-08-08T21:12:27","modified_gmt":"2026-08-08T19:12:27","slug":"contacts","status":"publish","type":"page","link":"https:\/\/portalisholding.com\/en\/contacts\/","title":{"rendered":"Contacts"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"17\" class=\"elementor elementor-17\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16cb9be e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent\" data-id=\"16cb9be\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-89121a5 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child\" data-id=\"89121a5\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f3bf60b e-con-full e-flex cut-corner-no sticky-container-off e-con e-child\" data-id=\"f3bf60b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-648559a e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-child\" data-id=\"648559a\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5b8e9e7 e-con-full e-flex cut-corner-no sticky-container-off e-con e-child\" data-id=\"5b8e9e7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-90636ea elementor-widget elementor-widget-logico_page_title_line\" data-id=\"90636ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"logico_page_title_line.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"page-title logico-title-h2\">Contacts<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fac1922 elementor-widget__width-auto elementor-absolute elementor-widget elementor-widget-logico_breadcrumbs\" data-id=\"fac1922\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"logico_breadcrumbs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<nav class=\"breadcrumbs\"><a href=\"https:\/\/portalisholding.com\/en\/\">Home<\/a><span class=\"delimiter\">\/<\/span><\/nav>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-18a0a1c elementor-widget__width-auto elementor-absolute elementor-widget elementor-widget-logico_decorative_block\" data-id=\"18a0a1c\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_position&quot;:&quot;absolute&quot;}\" data-widget_type=\"logico_decorative_block.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t            <div class=\"block-decoration animation-enable block-decoration-style-1\">\n                <div class=\"block-decoration-item\">\n                                    <\/div>\n            <\/div>\n        \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\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3971cad e-flex e-con-boxed cut-corner-no sticky-container-off e-con e-parent\" data-id=\"3971cad\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16e3083 elementor-widget elementor-widget-html\" data-id=\"16e3083\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/@emailjs\/browser@4\/dist\/email.min.js\"><\/script>\n<script>emailjs.init('rhnThXMPBYqiKv4Yf');<\/script>\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\n<style>\n:root{--teal:#004C4C;--gold:#EEB646;--gold2:#fac84a;--ff:'Plus Jakarta Sans',sans-serif;}\n.pw *{box-sizing:border-box;margin:0;padding:0;font-family:var(--ff);}\n.pw{display:flex;min-height:680px;border-radius:16px;overflow:hidden;background:url('https:\/\/dev-portalise.pantheonsite.io\/wp-content\/uploads\/2026\/04\/Image_fx4.webp') center\/cover no-repeat #1c3535;position:relative;}\n.pw-ov{position:absolute;inset:0;background:linear-gradient(110deg,rgba(0,28,28,.78) 38%,rgba(0,60,60,.32) 100%);}\n.pw-L{position:relative;z-index:2;flex:1 1 400px;padding:52px 44px 44px;color:#fff;display:flex;flex-direction:column;justify-content:center;}\n.pw-badge{display:inline-flex;align-items:center;gap:7px;background:rgba(238,182,70,.12);border:1px solid rgba(238,182,70,.4);border-radius:99px;padding:5px 14px 5px 9px;color:var(--gold);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:22px;width:fit-content;}\n.pw-dot{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:blink 1.8s ease-in-out infinite;}\n@keyframes blink{0%,100%{opacity:1}50%{opacity:.25}}\n.pw-L h1,.pw-L h2,.pw-L h3,.pw-L h4,.pw-L h5,.pw-L h6{color:#ffffff!important;font-style:normal;}\n.pw-L h5{font-size:clamp(20px,2.6vw,32px);font-weight:800;line-height:1.22;margin-bottom:10px;}\n.pw-portalis-title{color:#ffffff!important;}\n.pw-portalis-title .pl-brand{color:var(--gold)!important;font-style:normal;}\n.pw-portalis-title .pl-brand .pl-big{font-size:1.18em;font-weight:900;}\n.pw-sub{font-size:15px;color:rgba(255,255,255,.72)!important;margin-bottom:32px;font-weight:500;}\n.pw-step{display:flex;gap:16px;margin-bottom:20px;}\n.pw-num{width:36px;height:36px;min-width:36px;border-radius:50%;background:rgba(238,182,70,.1);border:1.5px solid var(--gold);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--gold)!important;}\n.pw-sb{flex:1;}\n.pw-step-title{font-size:13px;font-weight:800;color:var(--gold)!important;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;display:inline;}\n.pw-step-title .pl-brand-sm{color:var(--gold)!important;font-style:normal;}\n.pw-step-title .pl-big-sm{font-size:1.15em;font-weight:900;}\n.pw-step-first{font-size:13px;font-weight:800;color:var(--gold)!important;text-transform:none;display:inline;margin-left:2px;}\n.pw-step-desc{font-size:13px;color:rgba(255,255,255,.68)!important;line-height:1.55;margin-top:3px;}\n.pw-conn{width:1.5px;height:18px;background:rgba(238,182,70,.25);margin:4px 0 4px 17px;}\n.pw-R{position:relative;z-index:2;flex:0 0 395px;background:var(--teal);display:flex;flex-direction:column;padding:34px 28px 26px;min-height:680px;}\n.pw-head{text-align:center;margin-bottom:20px;}\n.pw-logo{width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.12);border:2px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:center;margin:0 auto 10px;}\n.pw-logo svg{width:26px;height:26px;}\n.pw-head-title{font-size:19px;font-weight:700;color:#fff!important;}\n.pw-si{display:flex;align-items:center;justify-content:center;margin-bottom:22px;}\n.pw-si-d{width:26px;height:26px;border-radius:50%;background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.28);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:rgba(255,255,255,.5);transition:all .3s;}\n.pw-si-d.act{background:var(--gold);border-color:var(--gold);color:var(--teal);}\n.pw-si-d.done{background:rgba(238,182,70,.2);border-color:var(--gold);color:var(--gold);}\n.pw-si-l{width:28px;height:1.5px;background:rgba(255,255,255,.18);transition:background .3s;}\n.pw-si-l.done{background:var(--gold);}\n.pw-sc{display:none;flex-direction:column;flex:1;}\n.pw-sc.on{display:flex;animation:fadeUp .32s ease;}\n@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n.pw-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}\n.pw-cal-nav strong{color:#fff;font-size:17px;font-weight:700;}\n.pw-cal-nav button{background:rgba(255,255,255,.1);border:none;cursor:pointer;width:30px;height:30px;border-radius:7px;color:#fff;font-size:18px;display:flex;align-items:center;justify-content:center;transition:background .2s;}\n.pw-cal-nav button:hover{background:rgba(255,255,255,.22);}\n.pw-cg{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-bottom:10px;}\n.pw-ch{text-align:center;font-size:10px;font-weight:700;color:rgba(255,255,255,.5);padding:4px 0;letter-spacing:.04em;}\n.pw-cd{text-align:center;padding:8px 2px;font-size:14px;font-weight:500;border-radius:7px;cursor:pointer;color:rgba(255,255,255,.85);transition:all .18s;border:1px solid transparent;}\n.pw-cd:hover:not(.e):not(.p){background:rgba(238,182,70,.18);border-color:var(--gold);color:var(--gold);}\n.pw-cd.t{color:var(--gold);font-weight:700;}\n.pw-cd.sel{background:var(--gold)!important;color:var(--teal)!important;font-weight:800;border-color:var(--gold);}\n.pw-cd.e,.pw-cd.p{color:rgba(255,255,255,.2);cursor:default;}\n.pw-mtag{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:9px 12px;color:rgba(255,255,255,.75);font-size:12px;margin-bottom:12px;}\n.pw-mtag svg{width:13px;height:13px;fill:var(--gold);min-width:13px;}\n.pw-thd{font-size:12px;font-weight:700;color:var(--gold);margin-bottom:2px;}\n.pw-tsub{font-size:11px;color:rgba(255,255,255,.5);margin-bottom:11px;}\n\n\/* ===== TIMEZONE SELECT AM\u00c9LIOR\u00c9 ===== *\/\n.pw-tz-wrap{margin-bottom:12px;}\n.pw-tz-lbl{font-size:11px;font-weight:700;color:rgba(255,255,255,.6);margin-bottom:4px;}\n.pw-tz{width:100%;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:8px 10px;font-size:12px;color:#fff;background:rgba(255,255,255,.08);outline:none;cursor:pointer;font-family:var(--ff);}\n.pw-tz option{background:var(--teal);}\n.pw-tz-note{font-size:10px;color:rgba(255,255,255,.4);margin-top:3px;}\n\/* ==================================== *\/\n\n.pw-sls{display:flex;flex-direction:column;gap:7px;overflow-y:auto;max-height:290px;padding-right:2px;}\n.pw-sls::-webkit-scrollbar{width:3px;}\n.pw-sls::-webkit-scrollbar-thumb{background:var(--gold);border-radius:99px;}\n.pw-sl{border:1.5px solid rgba(255,255,255,.2);border-radius:9px;padding:11px;text-align:center;font-size:15px;color:#fff;font-weight:600;cursor:pointer;transition:all .18s;position:relative;}\n.pw-sl:hover:not(.taken){background:rgba(238,182,70,.18);border-color:var(--gold);color:var(--gold);}\n.pw-sl.sel{background:var(--gold);border-color:var(--gold);color:var(--teal);font-weight:800;}\n.pw-sl.taken{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.08);color:rgba(255,255,255,.25);cursor:not-allowed;text-decoration:line-through;}\n.pw-sl-tag{font-size:9px;font-weight:700;color:rgba(255,255,255,.35);display:block;margin-top:2px;letter-spacing:.04em;}\n.pw-sl-local{font-size:10px;color:rgba(255,255,255,.45);display:block;margin-top:1px;}\n.pw-sl.sel .pw-sl-local{color:rgba(0,76,76,.6);}\n.pw-sl.taken .pw-sl-tag{color:rgba(255,100,100,.5);}\n.pw-sinf{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:9px;padding:10px 13px;margin-bottom:13px;}\n.pw-sinf strong{display:block;font-size:12.5px;font-weight:700;color:#fff;margin-bottom:2px;}\n.pw-sinf span{font-size:11px;color:rgba(255,255,255,.5);}\n.pw-sinf a{color:var(--gold);cursor:pointer;text-decoration:underline;margin-left:5px;font-size:11px;}\n.pw-fscroll{overflow-y:auto;flex:1;padding-right:2px;}\n.pw-fscroll::-webkit-scrollbar{width:3px;}\n.pw-fscroll::-webkit-scrollbar-thumb{background:var(--gold);border-radius:99px;}\n.pw-f{margin-bottom:11px;}\n.pw-f label{display:block;font-size:11.5px;font-weight:700;color:rgba(255,255,255,.72);margin-bottom:4px;}\n.pw-f label sup{color:var(--gold);}\n.pw-f input,.pw-f select,.pw-f textarea{width:100%;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:9px 11px;font-size:13px;color:#fff;background:rgba(255,255,255,.08);outline:none;transition:border-color .2s,background .2s;font-family:var(--ff);}\n.pw-f input::placeholder,.pw-f textarea::placeholder{color:rgba(255,255,255,.28);}\n.pw-f input:focus,.pw-f select:focus,.pw-f textarea:focus{border-color:var(--gold);background:rgba(255,255,255,.12);}\n.pw-f select{cursor:pointer;}\n.pw-f select option{background:#004C4C;color:#fff;}\n.pw-f textarea{resize:vertical;min-height:58px;}\n.pw-r2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}\n.pw-err{color:#ffaaaa;font-size:11px;margin-top:3px;display:none;}\n.pw-f.er input,.pw-f.er select,.pw-f.er textarea{border-color:#ff6060;background:rgba(255,60,60,.08);}\n.pw-f.er .pw-err{display:block;}\n\n\/* ===== CAPTCHA SLIDER PUZZLE ===== *\/\n.pw-ab{background:rgba(238,182,70,.09);border:1px solid rgba(238,182,70,.32);border-radius:9px;padding:12px 14px;margin-bottom:13px;}\n.pw-ab-lbl{font-size:12px;color:rgba(255,255,255,.78);margin-bottom:8px;font-weight:600;}\n.pw-puzzle-wrap{position:relative;width:100%;height:100px;border-radius:8px;overflow:hidden;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.15);margin-bottom:10px;user-select:none;}\n.pw-puzzle-bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;}\n\/* Formes SVG de fond *\/\n.pw-puzzle-shapes{position:absolute;inset:0;}\n.pw-puzzle-target{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;border:2.5px dashed rgba(238,182,70,.55);background:rgba(238,182,70,.08);display:flex;align-items:center;justify-content:center;transition:border-color .2s,background .2s;}\n.pw-puzzle-target.match{border-color:#6fffb8;background:rgba(111,255,184,.18);animation:pulse-ok .5s ease;}\n@keyframes pulse-ok{0%{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.12)}100%{transform:translateY(-50%) scale(1)}}\n.pw-puzzle-piece{position:absolute;top:50%;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--gold) 60%,var(--gold2));border:2.5px solid rgba(255,255,255,.35);cursor:grab;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px rgba(0,0,0,.35);transition:box-shadow .15s;z-index:10;}\n.pw-puzzle-piece:active{cursor:grabbing;box-shadow:0 4px 20px rgba(238,182,70,.5);}\n.pw-puzzle-piece svg{width:22px;height:22px;fill:var(--teal);}\n.pw-slider-track{position:relative;height:36px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);border-radius:18px;display:flex;align-items:center;padding:0 4px;}\n.pw-slider-fill{position:absolute;left:4px;top:4px;bottom:4px;border-radius:14px;background:linear-gradient(90deg,rgba(238,182,70,.25),rgba(238,182,70,.5));width:28px;transition:width .05s;}\n.pw-slider-fill.done{background:linear-gradient(90deg,rgba(111,255,184,.25),rgba(111,255,184,.5));}\n.pw-slider-btn{position:absolute;left:4px;width:28px;height:28px;border-radius:50%;background:var(--gold);border:2px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;cursor:grab;box-shadow:0 2px 8px rgba(0,0,0,.3);transition:background .2s;z-index:5;}\n.pw-slider-btn:active{cursor:grabbing;}\n.pw-slider-btn.done{background:#6fffb8;cursor:default;}\n.pw-slider-btn svg{width:14px;height:14px;fill:var(--teal);}\n.pw-slider-hint{text-align:center;font-size:11px;color:rgba(255,255,255,.4);margin-top:6px;transition:color .3s;}\n.pw-slider-hint.done{color:#6fffb8;font-weight:700;}\n.pw-ab-ok{color:#6fffb8;font-size:12px;font-weight:700;margin-top:6px;display:none;}\n\/* ================================== *\/\n\n.pw-nav{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:12px;}\n.pw-back{background:rgba(255,255,255,.1);border:1.5px solid rgba(255,255,255,.25);border-radius:9px;padding:10px 18px;font-size:13px;font-weight:700;color:rgba(255,255,255,.8);cursor:pointer;transition:background .2s;font-family:var(--ff);}\n.pw-back:hover{background:rgba(255,255,255,.18);}\n.pw-ok{flex:1;background:var(--gold);color:var(--teal);border:none;border-radius:9px;padding:11px 16px;font-size:14px;font-weight:800;cursor:pointer;transition:background .18s,transform .1s;font-family:var(--ff);display:flex;align-items:center;justify-content:center;gap:7px;}\n.pw-ok:hover{background:var(--gold2);}\n.pw-ok:active{transform:scale(.98);}\n.pw-ok:disabled{background:rgba(238,182,70,.25);color:rgba(0,76,76,.45);cursor:not-allowed;}\n.pw-spin{width:15px;height:15px;border:2.5px solid rgba(0,76,76,.3);border-top-color:var(--teal);border-radius:50%;animation:spin .65s linear infinite;display:none;}\n@keyframes spin{to{transform:rotate(360deg)}}\n.pw-dico{width:58px;height:58px;border-radius:50%;background:rgba(238,182,70,.14);border:2px solid var(--gold);display:flex;align-items:center;justify-content:center;margin:6px auto 14px;}\n.pw-dico svg{width:28px;height:28px;fill:var(--gold);}\n.pw-dtitle{text-align:center;font-size:18px;font-weight:800;color:#fff;margin-bottom:8px;}\n.pw-dmsg{text-align:center;font-size:13px;color:rgba(255,255,255,.68);line-height:1.6;margin-bottom:16px;}\n.pw-ddet{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:13px 15px;font-size:12.5px;color:rgba(255,255,255,.82);line-height:1.9;}\n.pw-ddet strong{color:var(--gold);}\n.pl{font-style:normal;}\n.pl .L{font-size:1.18em;font-weight:900;}\n@media(max-width:740px){.pw{flex-direction:column;border-radius:0;}.pw-R{flex:1 1 auto;min-height:auto;}.pw-L{padding:30px 20px 26px;}.pw-r2{grid-template-columns:1fr;}}\n<\/style>\n\n<div class=\"pw\" id=\"portalisW\">\n  <div class=\"pw-ov\"><\/div>\n  <div class=\"pw-L\">\n    <div class=\"pw-badge\"><div class=\"pw-dot\"><\/div><span style=\"color:var(--gold)!important;\">\n      <span style=\"font-size:1.15em;font-weight:900;\">P<\/span>orta<span style=\"font-size:1.15em;font-weight:900;\">L<\/span>is Group\n    <\/span><\/div>\n\n    <h5 class=\"pw-portalis-title\" style=\"color:#fff!important;\">\n      Planifiez un premier Rendez-vous de pr&#233;sentation des solutions\n      <span style=\"color:#EEB646!important;font-style:normal;font-weight:900;\">\n        <span style=\"font-size:1.18em;\">P<\/span>orta<span style=\"font-size:1.18em;\">L<\/span>is\n      <\/span>\n    <\/h5>\n    <p class=\"pw-sub\">C'est gratuit et sans engagement<\/p>\n\n    <div class=\"pw-step\">\n      <div class=\"pw-num\">1<\/div>\n      <div class=\"pw-sb\">\n        <p style=\"margin:0;\">\n          <span class=\"pw-step-title\">APPEL :<\/span>\n          <span class=\"pw-step-first\"> Planifiez votre appel de prise de contact avec l'\u00e9quipe <span style=\"color:var(--gold)!important;font-weight:800;\"><span style=\"font-size:1.1em;font-weight:900;\">P<\/span>orta<span style=\"font-size:1.1em;font-weight:900;\">L<\/span>is<\/span>.<\/span>\n        <\/p>\n        <p class=\"pw-step-desc\">Rencontrez un membre de notre &#233;quipe pour d&#233;couvrir comment nos solutions commerciales et op&#233;rationnelles peuvent simplifier votre quotidien et optimiser la performance de vos activit&#233;s.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"pw-conn\"><\/div>\n\n    <div class=\"pw-step\">\n      <div class=\"pw-num\">2<\/div>\n      <div class=\"pw-sb\">\n        <p style=\"margin:0;\">\n          <span class=\"pw-step-title\">CONNEXION :<\/span>\n          <span class=\"pw-step-first\"> Nous facilitons l'int&#233;gration de vos op&#233;rations.<\/span>\n        <\/p>\n        <p class=\"pw-step-desc\">D&#232;s que vous devenez partenaire de <span style=\"color:var(--gold)!important;font-weight:800;\"><span style=\"font-size:1.1em;font-weight:900;\">P<\/span>orta<span style=\"font-size:1.1em;font-weight:900;\">L<\/span>is<\/span> Group Holding, nous connectons vos exp&#233;ditions &#224; notre plateforme de gestion et de reporting strat&#233;gique pour une circulation fluide et s&#233;curis&#233;e des donn&#233;es.<\/p>\n      <\/div>\n    <\/div>\n    <div class=\"pw-conn\"><\/div>\n\n    <div class=\"pw-step\">\n      <div class=\"pw-num\">3<\/div>\n      <div class=\"pw-sb\">\n        <p style=\"margin:0;\">\n          <span class=\"pw-step-title\">CONTR&#212;LE :<\/span>\n          <span class=\"pw-step-first\"> Prenez la ma&#238;trise de vos flux strat&#233;giques.<\/span>\n        <\/p>\n        <p class=\"pw-step-desc\">Acc&#233;dez &#224; un tracking clair et structur&#233; pour vos op&#233;rations multimodales. Gr&#226;ce &#224; des donn&#233;es fiables, vous prenez des d&#233;cisions &#233;clair&#233;es qui renforcent la comp&#233;titivit&#233; de vos activit&#233;s.<\/p>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"pw-R\">\n    <div class=\"pw-head\">\n      <div class=\"pw-logo\">\n        <svg viewBox=\"0 0 26 26\" fill=\"none\">\n          <circle cx=\"13\" cy=\"13\" r=\"11\" stroke=\"white\" stroke-width=\"1.5\"\/>\n          <circle cx=\"13\" cy=\"13\" r=\"5\" fill=\"white\"\/>\n          <circle cx=\"13\" cy=\"13\" r=\"2.5\" fill=\"#004C4C\"\/>\n        <\/svg>\n      <\/div>\n      <div class=\"pw-head-title\">Contactez-nous<\/div>\n    <\/div>\n\n    <div class=\"pw-si\" id=\"pwSI\">\n      <div class=\"pw-si-d act\" id=\"si1\">1<\/div>\n      <div class=\"pw-si-l\" id=\"sl1\"><\/div>\n      <div class=\"pw-si-d\" id=\"si2\">2<\/div>\n      <div class=\"pw-si-l\" id=\"sl2\"><\/div>\n      <div class=\"pw-si-d\" id=\"si3\">3<\/div>\n    <\/div>\n\n    <!-- \u00c9TAPE 1 : Calendrier -->\n    <div class=\"pw-sc on\" id=\"sc1\">\n      <div class=\"pw-mtag\">\n        <svg viewBox=\"0 0 24 24\"><path d=\"M6.62 10.79a15.45 15.45 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.1 11.1 0 003.58.57 1 1 0 011 1V20a1 1 0 01-1 1C9.61 21 3 14.39 3 6a1 1 0 011-1h3.5a1 1 0 011 1c0 1.25.2 2.46.57 3.58a1 1 0 01-.24 1.01l-2.21 2.2z\"\/><\/svg>\n        15 min &#183; Par t&#233;l&#233;phone\n      <\/div>\n      <div class=\"pw-cal-nav\">\n        <button id=\"prevM\">&#8249;<\/button>\n        <strong id=\"calLbl\"><\/strong>\n        <button id=\"nextM\">&#8250;<\/button>\n      <\/div>\n      <div class=\"pw-cg\" id=\"calG\"><\/div>\n      <div style=\"margin-top:auto;text-align:center;font-size:11px;color:rgba(255,255,255,.35);padding-top:8px;\"><\/div>\n    <\/div>\n\n    <!-- \u00c9TAPE 2 : Cr\u00e9neaux avec fuseaux horaires -->\n    <div class=\"pw-sc\" id=\"sc2\">\n      <div class=\"pw-thd\" id=\"tHd\"><\/div>\n      <div class=\"pw-tsub\">Dur&#233;e : 15 min &#183; Par t&#233;l&#233;phone<\/div>\n      <!-- TIMEZONE SELECTOR AM\u00c9LIOR\u00c9 -->\n      <div class=\"pw-tz-wrap\">\n        <div class=\"pw-tz-lbl\">\ud83c\udf0d Votre fuseau horaire<\/div>\n        <select class=\"pw-tz\" id=\"tzS\">\n          <optgroup label=\"\ud83c\udf0d Afrique\">\n            <option value=\"0\" selected>GMT+0 \u2014 Dakar, Abidjan, Accra, Conakry<\/option>\n            <option value=\"1\">GMT+1 \u2014 Lagos, Kinshasa, Luanda, Douala, Niamey<\/option>\n            <option value=\"2\">GMT+2 \u2014 Johannesburg, Harare, Lusaka, Nairobi (EET)<\/option>\n            <option value=\"3\">GMT+3 \u2014 Nairobi, Addis-Abeba, Kampala, Mogadiscio<\/option>\n          <\/optgroup>\n          <optgroup label=\"\ud83c\udf0d Europe\">\n            <option value=\"1\">GMT+1 \u2014 Paris, Madrid, Rome, Berlin (CET hiver)<\/option>\n            <option value=\"2\">GMT+2 \u2014 Paris, Madrid, Rome, Berlin (CEST \u00e9t\u00e9)<\/option>\n            <option value=\"2\">GMT+2 \u2014 Ath\u00e8nes, Bucarest, Helsinki (EET hiver)<\/option>\n            <option value=\"3\">GMT+3 \u2014 Moscou, Istanbul, Minsk<\/option>\n          <\/optgroup>\n          <optgroup label=\"\ud83c\udf0e Am\u00e9riques\">\n            <option value=\"-5\">GMT-5 \u2014 New York, Toronto, Lima (EST)<\/option>\n            <option value=\"-4\">GMT-4 \u2014 New York (EDT \u00e9t\u00e9), Santiago<\/option>\n            <option value=\"-6\">GMT-6 \u2014 Mexico, Chicago (CST)<\/option>\n            <option value=\"-7\">GMT-7 \u2014 Denver, Calgary (MST)<\/option>\n            <option value=\"-8\">GMT-8 \u2014 Los Angeles, Vancouver (PST)<\/option>\n            <option value=\"-3\">GMT-3 \u2014 S\u00e3o Paulo, Buenos Aires, Bras\u00edlia<\/option>\n          <\/optgroup>\n          <optgroup label=\"\ud83c\udf0f Asie \/ Moyen-Orient\">\n            <option value=\"3\">GMT+3 \u2014 Riyad, Kowe\u00eft, Bagdad<\/option>\n            <option value=\"4\">GMT+4 \u2014 Duba\u00ef, Abou Dhabi, Bakou<\/option>\n            <option value=\"5\">GMT+5 \u2014 Karachi, Tachkent<\/option>\n            <option value=\"5.5\">GMT+5:30 \u2014 Mumbai, New Delhi, Colombo<\/option>\n            <option value=\"6\">GMT+6 \u2014 Dhaka, Almaty<\/option>\n            <option value=\"7\">GMT+7 \u2014 Bangkok, Hano\u00ef, Jakarta<\/option>\n            <option value=\"8\">GMT+8 \u2014 P\u00e9kin, Singapour, Kuala Lumpur, Hong Kong<\/option>\n            <option value=\"9\">GMT+9 \u2014 Tokyo, S\u00e9oul<\/option>\n          <\/optgroup>\n          <optgroup label=\"\ud83c\udf0f Oc\u00e9anie\">\n            <option value=\"10\">GMT+10 \u2014 Sydney, Melbourne (AEST)<\/option>\n            <option value=\"11\">GMT+11 \u2014 Sydney (AEDT \u00e9t\u00e9)<\/option>\n            <option value=\"12\">GMT+12 \u2014 Auckland, Wellington<\/option>\n          <\/optgroup>\n        <\/select>\n        <div class=\"pw-tz-note\" id=\"tzNote\">Cr\u00e9neaux affich\u00e9s en heure locale de Dakar (GMT+0). Votre \u00e9quivalent horaire est indiqu\u00e9 en dessous de chaque cr\u00e9neau.<\/div>\n      <\/div>\n      <div class=\"pw-sls\" id=\"slsBox\"><\/div>\n      <div class=\"pw-nav\" style=\"margin-top:10px;\"><button class=\"pw-back\" onclick=\"goTo(1)\">&#8249; Retour<\/button><\/div>\n    <\/div>\n\n    <!-- \u00c9TAPE 3 : Formulaire -->\n    <div class=\"pw-sc\" id=\"sc3\">\n      <div class=\"pw-sinf\">\n        <strong id=\"selLbl\"><\/strong>\n        <span>\n          <svg style=\"width:11px;height:11px;fill:var(--gold);vertical-align:middle;margin-right:3px;\" viewBox=\"0 0 24 24\"><path d=\"M6.62 10.79a15.45 15.45 0 006.59 6.59l2.2-2.2a1 1 0 011.01-.24 11.1 11.1 0 003.58.57 1 1 0 011 1V20a1 1 0 01-1 1C9.61 21 3 14.39 3 6a1 1 0 011-1h3.5a1 1 0 011 1c0 1.25.2 2.46.57 3.58a1 1 0 01-.24 1.01l-2.21 2.2z\"\/><\/svg>\n          Par t&#233;l&#233;phone<a onclick=\"goTo(2)\">Modifier<\/a>\n        <\/span>\n      <\/div>\n      <div class=\"pw-fscroll\">\n        <div class=\"pw-r2\">\n          <div class=\"pw-f\" id=\"ff-prenom\"><label>Pr&#233;nom <sup>*<\/sup><\/label><input type=\"text\" id=\"fi-prenom\" placeholder=\"Votre pr&#233;nom\"><div class=\"pw-err\">Champ requis<\/div><\/div>\n          <div class=\"pw-f\" id=\"ff-nom\"><label>Nom <sup>*<\/sup><\/label><input type=\"text\" id=\"fi-nom\" placeholder=\"Votre nom\"><div class=\"pw-err\">Champ requis<\/div><\/div>\n        <\/div>\n        <div class=\"pw-f\"><label>Entreprise<sup>*<\/sup><\/label><input type=\"text\" id=\"fi-entreprise\" placeholder=\"Nom de votre entreprise\"><\/div>\n        <div class=\"pw-f\" id=\"ff-email\"><label>Adresse e-mail <sup>*<\/sup><\/label><input type=\"email\" id=\"fi-email\" placeholder=\"exemple@domaine.com\"><div class=\"pw-err\">E-mail invalide<\/div><\/div>\n        <div class=\"pw-f\" id=\"ff-pays\"><label>Pays <sup>*<\/sup><\/label><select id=\"fi-pays\"><option value=\"\">S&#233;lectionner un pays<\/option><\/select><div class=\"pw-err\">Veuillez s&#233;lectionner<\/div><\/div>\n        <div class=\"pw-f\" id=\"ff-format\"><label>Format du rendez-vous <sup>*<\/sup><\/label>\n          <select id=\"fi-format\">\n            <option value=\"\">S&#233;lectionner un format<\/option>\n            <option value=\"En ligne (visio)\">En ligne<\/option>\n            <option value=\"En pr&#233;sentiel\">En pr&#233;sentiel<\/option>\n          <\/select>\n          <div class=\"pw-err\">Veuillez s&#233;lectionner un format<\/div>\n        <\/div>\n        <div class=\"pw-f\" id=\"ff-tel\"><label>T&#233;l&#233;phone mobile <sup>*<\/sup><\/label><input type=\"tel\" id=\"fi-tel\" placeholder=\"+221 77 000 00 00\"><div class=\"pw-err\">Num&#233;ro requis<\/div><\/div>\n\n        <!-- COMMENTAIRE OBLIGATOIRE -->\n        <div class=\"pw-f\" id=\"ff-comment\"><label>Commentaires ou questions <sup>*<\/sup><\/label><textarea id=\"fi-comment\" placeholder=\"Votre message\"><\/textarea><div class=\"pw-err\">Ce champ est requis<\/div><\/div>\n\n        <!-- ===== CAPTCHA SLIDER PUZZLE ===== -->\n        <div class=\"pw-ab\">\n          <div class=\"pw-ab-lbl\">\ud83d\udee1\ufe0f V\u00e9rification \u2014 Faites glisser la forme vers sa cible<\/div>\n          <!-- Zone puzzle visuelle -->\n          <div class=\"pw-puzzle-wrap\" id=\"puzzleWrap\">\n            <svg class=\"pw-puzzle-shapes\" viewBox=\"0 0 320 100\" preserveAspectRatio=\"none\">\n              <!-- Fond d\u00e9coratif -->\n              <rect width=\"320\" height=\"100\" fill=\"rgba(0,30,30,0.5)\"\/>\n              <!-- Lignes de grille l\u00e9g\u00e8res -->\n              <line x1=\"0\" y1=\"33\" x2=\"320\" y2=\"33\" stroke=\"rgba(255,255,255,0.04)\" stroke-width=\"1\"\/>\n              <line x1=\"0\" y1=\"66\" x2=\"320\" y2=\"66\" stroke=\"rgba(255,255,255,0.04)\" stroke-width=\"1\"\/>\n              <line x1=\"80\" y1=\"0\" x2=\"80\" y2=\"100\" stroke=\"rgba(255,255,255,0.04)\" stroke-width=\"1\"\/>\n              <line x1=\"160\" y1=\"0\" x2=\"160\" y2=\"100\" stroke=\"rgba(255,255,255,0.04)\" stroke-width=\"1\"\/>\n              <line x1=\"240\" y1=\"0\" x2=\"240\" y2=\"100\" stroke=\"rgba(255,255,255,0.04)\" stroke-width=\"1\"\/>\n              <!-- Formes d\u00e9coratives de fond -->\n              <circle cx=\"40\" cy=\"50\" r=\"18\" fill=\"rgba(255,255,255,0.03)\" stroke=\"rgba(255,255,255,0.08)\" stroke-width=\"1\"\/>\n              <rect x=\"110\" y=\"20\" width=\"30\" height=\"30\" rx=\"4\" fill=\"rgba(255,255,255,0.03)\" stroke=\"rgba(255,255,255,0.08)\" stroke-width=\"1\" transform=\"rotate(15,125,35)\"\/>\n              <polygon points=\"200,20 220,60 180,60\" fill=\"rgba(255,255,255,0.03)\" stroke=\"rgba(255,255,255,0.08)\" stroke-width=\"1\"\/>\n              <circle cx=\"280\" cy=\"50\" r=\"14\" fill=\"rgba(255,255,255,0.03)\" stroke=\"rgba(255,255,255,0.08)\" stroke-width=\"1\"\/>\n            <\/svg>\n            <!-- Cible (sera positionn\u00e9e par JS) -->\n            <div class=\"pw-puzzle-target\" id=\"puzzleTarget\">\n              <svg viewBox=\"0 0 24 24\" style=\"width:22px;height:22px;fill:rgba(238,182,70,0.4);\">\n                <circle cx=\"12\" cy=\"12\" r=\"9\" stroke=\"rgba(238,182,70,0.5)\" stroke-width=\"1.5\" fill=\"none\"\/>\n                <line x1=\"12\" y1=\"6\" x2=\"12\" y2=\"18\" stroke=\"rgba(238,182,70,0.4)\" stroke-width=\"1.5\"\/>\n                <line x1=\"6\" y1=\"12\" x2=\"18\" y2=\"12\" stroke=\"rgba(238,182,70,0.4)\" stroke-width=\"1.5\"\/>\n              <\/svg>\n            <\/div>\n            <!-- Pi\u00e8ce \u00e0 glisser -->\n            <div class=\"pw-puzzle-piece\" id=\"puzzlePiece\">\n              <svg viewBox=\"0 0 24 24\">\n                <circle cx=\"12\" cy=\"12\" r=\"9\" fill=\"rgba(0,76,76,0.8)\"\/>\n                <circle cx=\"12\" cy=\"12\" r=\"5\" fill=\"rgba(0,76,76,0.9)\"\/>\n                <line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\" stroke=\"var(--teal)\" stroke-width=\"2\"\/>\n                <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" stroke=\"var(--teal)\" stroke-width=\"2\"\/>\n              <\/svg>\n            <\/div>\n          <\/div>\n          <!-- Slider de contr\u00f4le -->\n          <div class=\"pw-slider-track\" id=\"sliderTrack\">\n            <div class=\"pw-slider-fill\" id=\"sliderFill\"><\/div>\n            <div class=\"pw-slider-btn\" id=\"sliderBtn\">\n              <svg viewBox=\"0 0 24 24\"><path d=\"M8 5l7 7-7 7\"\/><\/svg>\n            <\/div>\n          <\/div>\n          <div class=\"pw-slider-hint\" id=\"sliderHint\">\u25c0 Faites glisser vers la droite \u25b6<\/div>\n          <div class=\"pw-ab-ok\" id=\"abOk\">\u2714 V\u00e9rifi\u00e9 avec succ\u00e8s !<\/div>\n        <\/div>\n        <!-- ================================== -->\n\n      <\/div>\n      <div class=\"pw-nav\">\n        <button class=\"pw-back\" onclick=\"goTo(2)\">&#8249; Retour<\/button>\n        <button class=\"pw-ok\" id=\"btnOk\" disabled onclick=\"submitForm()\">Confirmer <span class=\"pw-spin\" id=\"pwSp\"><\/span><\/button>\n      <\/div>\n    <\/div>\n\n    <!-- \u00c9TAPE 4 : Confirmation -->\n    <div class=\"pw-sc\" id=\"sc4\">\n      <div class=\"pw-dico\"><svg viewBox=\"0 0 24 24\"><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\/><\/svg><\/div>\n      <div class=\"pw-dtitle\">Rendez-vous confirm&#233; !<\/div>\n      <div class=\"pw-dmsg\">Merci <strong id=\"dNm\" style=\"color:var(--gold)\"><\/strong>. Un e-mail de confirmation vous a &#233;t&#233; envoy&#233;. Notre &#233;quipe <span style=\"color:var(--gold);font-weight:800;\"><span style=\"font-size:1.1em;font-weight:900;\">P<\/span>orta<span style=\"font-size:1.1em;font-weight:900;\">L<\/span>is<\/span> vous contactera au moment choisi.<\/div>\n      <div class=\"pw-ddet\" id=\"dDet\"><\/div>\n      <div style=\"text-align:center;margin-top:18px;\"><button class=\"pw-back\" style=\"border-color:var(--gold);color:var(--gold);\" onclick=\"resetAll()\">Nouveau rendez-vous<\/button><\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\nvar M=['Janvier','F\u00e9vrier','Mars','Avril','Mai','Juin','Juillet','Ao\u00fbt','Septembre','Octobre','Novembre','D\u00e9cembre'];\nvar JC=['LUN.','MAR.','MER.','JEU.','VEN.','SAM.','DIM.'];\nvar JL=['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche'];\n\n\/* ===== CR\u00c9NEAUX : 8h15 \u2192 17h00, toutes les 30 min (heure Dakar GMT+0) ===== *\/\nvar SL_DAKAR = [];\n(function(){\n  var h=8, m=15;\n  while(h<17||(h===17&&m===0)){\n    SL_DAKAR.push((h<10?'0':'')+h+':'+(m===0?'00':''+m));\n    m+=30;\n    if(m>=60){m-=60;h++;}\n  }\n})();\n\nvar PAYS=['Afghanistan','Afrique du Sud','Albanie','Alg\u00e9rie','Allemagne','Andorre','Angola','Antigua-et-Barbuda','Arabie saoudite','Argentine','Arm\u00e9nie','Australie','Autriche','Azerba\u00efdjan','Bahamas','Bahre\u00efn','Bangladesh','Barbade','Belgique','Belize','B\u00e9nin','Bhoutan','Bi\u00e9lorussie','Birmanie (Myanmar)','Bolivie','Bosnie-Herz\u00e9govine','Botswana','Br\u00e9sil','Brunei','Bulgarie','Burkina Faso','Burundi','Cabo Verde','Cambodge','Cameroun','Canada','Centrafrique','Chili','Chine','Chypre','Colombie','Comores','Congo (Brazzaville)','Congo (RDC)','Cor\u00e9e du Nord','Cor\u00e9e du Sud','Costa Rica','C\u00f4te d\\'Ivoire','Croatie','Cuba','Danemark','Djibouti','Dominique','\u00c9gypte','\u00c9mirats arabes unis','\u00c9quateur','\u00c9rythr\u00e9e','Espagne','Eswatini','Estonie','\u00c9tats-Unis','\u00c9thiopie','Fidji','Finlande','France','Gabon','Gambie','G\u00e9orgie','Ghana','Gr\u00e8ce','Grenade','Guatemala','Guin\u00e9e','Guin\u00e9e-Bissau','Guin\u00e9e \u00e9quatoriale','Guyana','Ha\u00efti','Honduras','Hongrie','Inde','Indon\u00e9sie','Irak','Iran','Irlande','Islande','Isra\u00ebl','Italie','Jama\u00efque','Japon','Jordanie','Kazakhstan','Kenya','Kirghizistan','Kiribati','Kowe\u00eft','Laos','Lesotho','Lettonie','Liban','Liberia','Libye','Liechtenstein','Lituanie','Luxembourg','Madagascar','Malaisie','Malawi','Maldives','Mali','Malte','Maroc','\u00celes Marshall','Maurice','Mauritanie','Mexique','Micron\u00e9sie','Moldavie','Monaco','Mongolie','Mont\u00e9n\u00e9gro','Mozambique','Namibie','Nauru','N\u00e9pal','Nicaragua','Niger','Nigeria','Norv\u00e8ge','Nouvelle-Z\u00e9lande','Oman','Ouganda','Ouzb\u00e9kistan','Pakistan','Palaos','Palestine','Panama','Papouasie-Nouvelle-Guin\u00e9e','Paraguay','Pays-Bas','P\u00e9rou','Philippines','Pologne','Portugal','Qatar','R\u00e9publique dominicaine','R\u00e9publique tch\u00e8que','Roumanie','Royaume-Uni','Russie','Rwanda','Saint-Christophe-et-Ni\u00e9v\u00e8s','Sainte-Lucie','Saint-Marin','Saint-Vincent-et-les-Grenadines','\u00celes Salomon','Salvador','Samoa','S\u00e3o Tom\u00e9-et-Pr\u00edncipe','S\u00e9n\u00e9gal','Serbie','Seychelles','Sierra Leone','Singapour','Slovaquie','Slov\u00e9nie','Somalie','Soudan','Soudan du Sud','Sri Lanka','Su\u00e8de','Suisse','Suriname','Syrie','Tadjikistan','Tanzanie','Tchad','Tha\u00eflande','Timor oriental','Togo','Tonga','Trinit\u00e9-et-Tobago','Tunisie','Turkm\u00e9nistan','Turquie','Tuvalu','Ukraine','Uruguay','Vanuatu','Vatican','Venezuela','Vi\u00eat Nam','Y\u00e9men','Zambie','Zimbabwe'];\n\nvar sp=document.getElementById('fi-pays');\nPAYS.forEach(function(p){var o=document.createElement('option');o.value=p;o.textContent=p;sp.appendChild(o);});\n\nvar st={y:new Date().getFullYear(),m:new Date().getMonth(),day:null,slot:null};\nvar captchaOk=false;\n\nfunction slotKey(date,slot){\n  return 'portalis_rdv_'+date.getFullYear()+'_'+(date.getMonth()+1)+'_'+date.getDate()+'_'+slot.replace(':','h');\n}\nfunction isTaken(date,slot){try{return localStorage.getItem(slotKey(date,slot))==='1';}catch(e){return false;}}\nfunction markTaken(date,slot){try{localStorage.setItem(slotKey(date,slot),'1');}catch(e){}}\n\n\/* ===== Conversion heure GMT+0 \u2192 fuseau s\u00e9lectionn\u00e9 ===== *\/\nfunction getSelectedOffset(){\n  var sel=document.getElementById('tzS');\n  return parseFloat(sel.value)||0;\n}\n\nfunction convertSlot(dakarSlot, offsetHours){\n  \/\/ dakarSlot = \"HH:MM\" en GMT+0\n  var parts=dakarSlot.split(':');\n  var totalMin=parseInt(parts[0])*60+parseInt(parts[1]);\n  totalMin += offsetHours*60;\n  \/\/ Normaliser\n  while(totalMin<0)totalMin+=24*60;\n  while(totalMin>=24*60)totalMin-=24*60;\n  var h=Math.floor(totalMin\/60);\n  var m=totalMin%60;\n  return (h<10?'0':'')+h+':'+(m<10?'0':'')+m;\n}\n\nfunction getOffsetLabel(){\n  var sel=document.getElementById('tzS');\n  var v=parseFloat(sel.value)||0;\n  if(v===0)return null;\n  var sign=v>=0?'+':'-';\n  var abs=Math.abs(v);\n  var h=Math.floor(abs);\n  var m=Math.round((abs-h)*60);\n  return 'GMT'+(v>=0?'+':'')+v+(m?':'+m:'');\n}\n\nfunction goTo(n){\n  for(var i=1;i<=4;i++) document.getElementById('sc'+i).classList.remove('on');\n  document.getElementById('sc'+n).classList.add('on');\n  updateSI(n);\n  if(n===2) buildSlots();\n  if(n===3){updSelInfo();buildPuzzle();}\n}\nwindow.goTo=goTo;\n\nfunction updateSI(n){\n  document.getElementById('pwSI').style.display=(n===4)?'none':'flex';\n  for(var i=1;i<=3;i++){var d=document.getElementById('si'+i);d.className='pw-si-d';if(i<n)d.classList.add('done');else if(i===n)d.classList.add('act');}\n  for(var j=1;j<=2;j++){var l=document.getElementById('sl'+j);l.className='pw-si-l';if(j<n)l.classList.add('done');}\n}\n\nfunction buildCal(){\n  document.getElementById('calLbl').textContent=M[st.m]+' '+st.y;\n  var g=document.getElementById('calG');g.innerHTML='';\n  JC.forEach(function(j){var h=document.createElement('div');h.className='pw-ch';h.textContent=j;g.appendChild(h);});\n  var first=new Date(st.y,st.m,1).getDay();\n  var off=(first===0)?6:first-1;\n  var dim=new Date(st.y,st.m+1,0).getDate();\n  var today=new Date();today.setHours(0,0,0,0);\n  for(var i=0;i<off;i++){var e=document.createElement('div');e.className='pw-cd e';g.appendChild(e);}\n  for(var d=1;d<=dim;d++){\n    var c=document.createElement('div');c.className='pw-cd';c.textContent=d;\n    var dt=new Date(st.y,st.m,d);var dow=dt.getDay();\n    if(dt<today||dow===0||dow===6){c.classList.add('p');}\n    else{\n      if(dt.toDateString()===today.toDateString())c.classList.add('t');\n      if(st.day&&st.day.getTime()===dt.getTime())c.classList.add('sel');\n      (function(date,el){el.addEventListener('click',function(){st.day=date;buildCal();setTimeout(function(){goTo(2);},180);});})(dt,c);\n    }\n    g.appendChild(c);\n  }\n}\ndocument.getElementById('prevM').addEventListener('click',function(){st.m--;if(st.m<0){st.m=11;st.y--;}buildCal();});\ndocument.getElementById('nextM').addEventListener('click',function(){st.m++;if(st.m>11){st.m=0;st.y++;}buildCal();});\n\n\/\/ Reconstruire les cr\u00e9neaux quand le fuseau change\ndocument.getElementById('tzS').addEventListener('change',function(){\n  buildSlots();\n  updateTzNote();\n});\n\nfunction updateTzNote(){\n  var offset=getSelectedOffset();\n  var lbl=getOffsetLabel();\n  var note=document.getElementById('tzNote');\n  if(!lbl||offset===0){\n    note.textContent='Cr\u00e9neaux en heure de Dakar (GMT+0). Vous \u00eates dans le m\u00eame fuseau.';\n  } else {\n    var sign=offset>0?'+':'';\n    note.textContent='Heure Dakar (GMT+0) + votre d\u00e9calage ('+lbl+'). L\\'\u00e9quivalent local est affich\u00e9 sous chaque cr\u00e9neau.';\n  }\n}\n\nfunction buildSlots(){\n  if(!st.day)return;\n  var d=st.day;\n  document.getElementById('tHd').textContent='Cr\u00e9neaux disponibles \u2014 '+d.getDate()+' '+M[d.getMonth()]+' '+d.getFullYear();\n  var box=document.getElementById('slsBox');box.innerHTML='';\n  var offset=getSelectedOffset();\n  var offsetLbl=getOffsetLabel();\n  var hasAvail=false;\n\n  SL_DAKAR.forEach(function(s){\n    var el=document.createElement('div');el.className='pw-sl';\n    var taken=isTaken(st.day,s);\n    var tag=document.createElement('span');tag.className='pw-sl-tag';\n\n    if(taken){\n      el.classList.add('taken');\n      el.textContent=s+' (GMT+0)';\n      tag.textContent='D\u00e9j\u00e0 r\u00e9serv\u00e9';\n      el.appendChild(tag);\n    } else {\n      el.textContent=s+' (GMT+0)';\n      \/\/ Afficher l'\u00e9quivalent local si diff\u00e9rent\n      if(offset!==0){\n        var localTime=convertSlot(s,offset);\n        var localSpan=document.createElement('span');\n        localSpan.className='pw-sl-local';\n        localSpan.textContent='\u2192 '+localTime+' ('+offsetLbl+' \u2014 votre heure)';\n        el.appendChild(localSpan);\n      }\n      tag.textContent='Disponible';\n      el.appendChild(tag);\n      hasAvail=true;\n      if(st.slot===s)el.classList.add('sel');\n      el.addEventListener('click',(function(slot,elem){\n        return function(){\n          if(elem.classList.contains('taken'))return;\n          st.slot=slot;\n          var prev=box.querySelector('.sel');if(prev)prev.classList.remove('sel');\n          elem.classList.add('sel');\n          setTimeout(function(){goTo(3);},200);\n        };\n      })(s,el));\n    }\n    box.appendChild(el);\n  });\n\n  if(!hasAvail){\n    var msg=document.createElement('div');\n    msg.style.cssText='text-align:center;color:rgba(255,255,255,.5);font-size:13px;padding:20px 0;';\n    msg.textContent='Tous les cr\u00e9neaux de cette journ\u00e9e sont r\u00e9serv\u00e9s. Veuillez choisir une autre date.';\n    box.appendChild(msg);\n  }\n}\n\nfunction updSelInfo(){\n  if(!st.day)return;\n  var d=st.day;var dow=d.getDay();var di=(dow===0)?6:dow-1;\n  var offset=getSelectedOffset();\n  var offsetLbl=getOffsetLabel();\n  var txt=JL[di]+' '+d.getDate()+' '+M[d.getMonth()]+' '+d.getFullYear()+' \u00e0 '+st.slot+' (GMT+0)';\n  if(offset!==0){\n    txt+=' \/ '+convertSlot(st.slot,offset)+' ('+offsetLbl+')';\n  }\n  document.getElementById('selLbl').textContent=txt;\n}\n\n\/* ===== CAPTCHA SLIDER PUZZLE ===== *\/\nfunction buildPuzzle(){\n  captchaOk=false;\n  document.getElementById('btnOk').disabled=true;\n  document.getElementById('abOk').style.display='none';\n  document.getElementById('sliderHint').className='pw-slider-hint';\n  document.getElementById('sliderHint').textContent='\u25c0 Faites glisser vers la droite \u25b6';\n\n  var wrap=document.getElementById('puzzleWrap');\n  var wrapW=wrap.offsetWidth||320;\n  var wrapH=100;\n  var pieceSize=46;\n\n  \/\/ Position al\u00e9atoire de la cible (dans la moiti\u00e9 droite)\n  var targetMinX=Math.floor(wrapW*0.55);\n  var targetMaxX=Math.floor(wrapW*0.85);\n  var targetX=targetMinX+Math.floor(Math.random()*(targetMaxX-targetMinX));\n  var targetY=Math.floor((wrapH-pieceSize)\/2);\n\n  var target=document.getElementById('puzzleTarget');\n  target.style.left=targetX+'px';\n  target.style.top=targetY+'px';\n  target.style.transform='none';\n  target.classList.remove('match');\n\n  \/\/ Pi\u00e8ce commence \u00e0 gauche\n  var piece=document.getElementById('puzzlePiece');\n  piece.style.left='8px';\n  piece.style.top=targetY+'px';\n  piece.style.transform='none';\n\n  \/\/ Reset slider\n  var btn=document.getElementById('sliderBtn');\n  var fill=document.getElementById('sliderFill');\n  btn.style.left='4px';\n  fill.style.width='28px';\n  btn.className='pw-slider-btn';\n  fill.className='pw-slider-fill';\n\n  \/\/ Plage de glissement du slider\n  var track=document.getElementById('sliderTrack');\n  var trackW=track.offsetWidth||300;\n  var btnW=28;\n  var maxSlider=trackW-btnW-8; \/\/ 8px = padding right\n\n  \/\/ Calcul de la position X de la pi\u00e8ce correspondant \u00e0 la cible\n  \/\/ La pi\u00e8ce va de 8px \u00e0 (targetX - pieceSize\/2) en fonction du slider (0\u2192maxSlider)\n  var pieceStartX=8;\n  var pieceEndX=targetX-pieceSize\/2+pieceSize\/2; \/\/ Centre de la pi\u00e8ce sur la cible\n  pieceEndX=targetX; \/\/ left de la pi\u00e8ce\n\n  var isDragging=false;\n  var startX=0;\n  var startLeft=4;\n\n  function onStart(e){\n    if(captchaOk)return;\n    isDragging=true;\n    startX=(e.touches?e.touches[0].clientX:e.clientX);\n    startLeft=parseInt(btn.style.left)||4;\n    e.preventDefault();\n  }\n  function onMove(e){\n    if(!isDragging||captchaOk)return;\n    var cx=(e.touches?e.touches[0].clientX:e.clientX);\n    var dx=cx-startX;\n    var newLeft=Math.max(4,Math.min(startLeft+dx,maxSlider));\n    btn.style.left=newLeft+'px';\n    fill.style.width=(newLeft+btnW\/2)+'px';\n\n    \/\/ D\u00e9placer la pi\u00e8ce proportionnellement\n    var ratio=(newLeft-4)\/(maxSlider-4);\n    var newPieceX=pieceStartX+ratio*(pieceEndX-pieceStartX);\n    piece.style.left=Math.max(4,newPieceX)+'px';\n  }\n  function onEnd(){\n    if(!isDragging)return;\n    isDragging=false;\n    var currentLeft=parseInt(btn.style.left)||4;\n    var ratio=(currentLeft-4)\/(maxSlider-4);\n    var pieceX=parseFloat(piece.style.left)||8;\n\n    \/\/ Tol\u00e9rance : \u00b120px autour de la cible\n    var tol=22;\n    if(Math.abs(pieceX-targetX)<=tol){\n      \/\/ Succ\u00e8s\n      captchaOk=true;\n      piece.style.left=targetX+'px';\n      btn.style.left=maxSlider+'px';\n      fill.style.width=(maxSlider+btnW\/2)+'px';\n      btn.className='pw-slider-btn done';\n      fill.className='pw-slider-fill done';\n      target.classList.add('match');\n      document.getElementById('sliderHint').className='pw-slider-hint done';\n      document.getElementById('sliderHint').textContent='\u2714 V\u00e9rification r\u00e9ussie !';\n      document.getElementById('abOk').style.display='block';\n      document.getElementById('btnOk').disabled=false;\n    } else {\n      \/\/ \u00c9chec : retour arri\u00e8re\n      btn.style.transition='left 0.35s ease';\n      fill.style.transition='width 0.35s ease';\n      piece.style.transition='left 0.35s ease';\n      btn.style.left='4px';\n      fill.style.width='28px';\n      piece.style.left='8px';\n      setTimeout(function(){\n        btn.style.transition='';\n        fill.style.transition='';\n        piece.style.transition='';\n      },360);\n    }\n  }\n\n  \/\/ Nettoyer anciens listeners en recr\u00e9ant les \u00e9l\u00e9ments\n  var newBtn=btn.cloneNode(true);\n  btn.parentNode.replaceChild(newBtn,btn);\n  var slBtn=document.getElementById('sliderBtn');\n\n  slBtn.addEventListener('mousedown',onStart);\n  slBtn.addEventListener('touchstart',onStart,{passive:false});\n  document.addEventListener('mousemove',onMove);\n  document.addEventListener('touchmove',onMove,{passive:false});\n  document.addEventListener('mouseup',onEnd);\n  document.addEventListener('touchend',onEnd);\n}\n\/* ================================== *\/\n\nfunction chk(fid,inp,fn){\n  var f=document.getElementById('ff-'+fid);\n  var v=document.getElementById('fi-'+inp).value.trim();\n  if(fn(v)){f.classList.remove('er');return true;}\n  f.classList.add('er');return false;\n}\n\nfunction submitForm(){\n  var ok=true;\n  ok=chk('prenom','prenom',function(v){return v.length>0;})&&ok;\n  ok=chk('nom','nom',function(v){return v.length>0;})&&ok;\n  ok=chk('email','email',function(v){return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(v);})&&ok;\n  ok=chk('pays','pays',function(v){return v!=='';})&&ok;\n  ok=chk('format','format',function(v){return v!=='';})&&ok;\n  ok=chk('tel','tel',function(v){return v.length>=6;})&&ok;\n  \/\/ Commentaire obligatoire\n  ok=chk('comment','comment',function(v){return v.length>0;})&&ok;\n  if(!ok)return;\n  if(isTaken(st.day,st.slot)){\n    alert('D\u00e9sol\u00e9, ce cr\u00e9neau vient d\\'\u00eatre r\u00e9serv\u00e9. Veuillez en choisir un autre.');\n    goTo(2);return;\n  }\n  var btn=document.getElementById('btnOk');\n  var sp2=document.getElementById('pwSp');\n  btn.disabled=true;\n  sp2.style.display='block';\n\n  var offset=getSelectedOffset();\n  var offsetLbl=getOffsetLabel();\n  var dateRdv=document.getElementById('selLbl').textContent;\n  var tzInfo=offset!==0?(' ('+offsetLbl+' = '+convertSlot(st.slot,offset)+' heure locale)'):'';\n\n  emailjs.send('service_1x4lnm9','template_bazhlo3',{\n    prenom:document.getElementById('fi-prenom').value,\n    nom:document.getElementById('fi-nom').value,\n    entreprise:document.getElementById('fi-entreprise').value||'Non renseign\u00e9',\n    email:document.getElementById('fi-email').value,\n    tel:document.getElementById('fi-tel').value,\n    pays:document.getElementById('fi-pays').value,\n    format_rdv:document.getElementById('fi-format').value,\n    date_rdv:dateRdv+tzInfo,\n    commentaire:document.getElementById('fi-comment').value\n  }).then(\n    function(){\n      markTaken(st.day,st.slot);\n      sp2.style.display='none';\n      showDone();\n    },\n    function(){\n      sp2.style.display='none';\n      alert('Erreur lors de l\\'envoi. V\u00e9rifiez votre connexion et r\u00e9essayez.');\n      btn.disabled=false;\n    }\n  );\n}\nwindow.submitForm=submitForm;\n\nfunction showDone(){\n  var d=st.day;var dow=d.getDay();var di=(dow===0)?6:dow-1;\n  var ds=JL[di]+' '+d.getDate()+' '+M[d.getMonth()]+' '+d.getFullYear()+' \u00e0 '+st.slot+' (GMT+0)';\n  var offset=getSelectedOffset();\n  var offsetLbl=getOffsetLabel();\n  if(offset!==0){ds+=' \/ '+convertSlot(st.slot,offset)+' ('+offsetLbl+')';}\n  document.getElementById('dNm').textContent=document.getElementById('fi-prenom').value+' '+document.getElementById('fi-nom').value;\n  var ent=document.getElementById('fi-entreprise').value;\n  document.getElementById('dDet').innerHTML=\n    '<strong>Date :<\/strong> '+ds+'<br>'+\n    '<strong>Format :<\/strong> '+document.getElementById('fi-format').value+'<br>'+\n    (ent?'<strong>Entreprise :<\/strong> '+ent+'<br>':'')+\n    '<strong>T\u00e9l\u00e9phone :<\/strong> '+document.getElementById('fi-tel').value+'<br>'+\n    '<strong>E-mail :<\/strong> '+document.getElementById('fi-email').value+'<br>'+\n    '<strong>Pays :<\/strong> '+document.getElementById('fi-pays').value+'<br>'+\n    '<strong>Commentaire :<\/strong> '+document.getElementById('fi-comment').value;\n  goTo(4);updateSI(4);\n}\n\nfunction resetAll(){\n  st.day=null;st.slot=null;captchaOk=false;\n  ['prenom','nom','email','pays','format','tel','comment'].forEach(function(id){\n    var fi=document.getElementById('fi-'+id);if(fi)fi.value='';\n    var ff=document.getElementById('ff-'+id);if(ff)ff.classList.remove('er');\n  });\n  document.getElementById('fi-entreprise').value='';\n  document.getElementById('btnOk').disabled=true;\n  buildCal();goTo(1);\n}\nwindow.resetAll=resetAll;\n\nbuildCal();goTo(1);\n})();\n<\/script>\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":"<p>PortaLis Group Planifiez un premier Rendez-vous de pr&#233;sentation des solutions PortaLis C&rsquo;est gratuit et sans engagement 1 APPEL : Planifiez votre appel de prise de contact avec l&rsquo;\u00e9quipe PortaLis. Rencontrez un membre de notre &#233;quipe pour d&#233;couvrir comment nos solutions commerciales&#8230;<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-17","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/portalisholding.com\/en\/wp-json\/wp\/v2\/pages\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/portalisholding.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/portalisholding.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/portalisholding.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/portalisholding.com\/en\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":187,"href":"https:\/\/portalisholding.com\/en\/wp-json\/wp\/v2\/pages\/17\/revisions"}],"predecessor-version":[{"id":14849,"href":"https:\/\/portalisholding.com\/en\/wp-json\/wp\/v2\/pages\/17\/revisions\/14849"}],"wp:attachment":[{"href":"https:\/\/portalisholding.com\/en\/wp-json\/wp\/v2\/media?parent=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}