{"id":8,"date":"2026-08-25T03:04:29","date_gmt":"2026-08-25T03:04:29","guid":{"rendered":"https:\/\/go.roboticsdesign.qc.ca\/form\/?page_id=8"},"modified":"2026-10-19T21:27:13","modified_gmt":"2026-10-19T21:27:13","slug":"form","status":"publish","type":"page","link":"https:\/\/go.roboticsdesign.qc.ca\/form\/","title":{"rendered":"Form"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"8\" class=\"elementor elementor-8\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d5e0b26 e-con-full e-flex e-con e-parent\" data-id=\"d5e0b26\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-528b3a6 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"528b3a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!DOCTYPE html>\r\n<html lang=\"en\" id=\"htmlRoot\">\r\n<head>\r\n<meta charset=\"utf-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n<title>ANATROLLER\u2122 \u2014 Book Your Live Video Demo \u2014 Robotics Design Inc.<\/title>\r\n<style>\r\n  :root{\r\n    --navy:#043D87;\r\n    --navy-deep:#043D87;\r\n    --navy-darker:#02214A;\r\n    --navy-line:#22375E;\r\n    --red:#BB0027;\r\n    --red-dark:#8C0C21;\r\n    --paper:#FFFFFF;\r\n    --stone:#F4F6F9;\r\n    --line:#D8DEE8;\r\n    --mut:#5B657A;\r\n    --mut-lt:#8B93A5;\r\n    --amber:#B07D00; --amber-bg:#FBF3E3;\r\n    --go:#1A7F37; --go-bg:#E7F3EB;\r\n    --ink:var(--navy);\r\n    --font: -apple-system, \"Helvetica Neue\", Helvetica, Arial, sans-serif;\r\n    --heading: \"Arial Narrow\", Arial, sans-serif;\r\n    --serif: \"Arial Narrow\", Arial, sans-serif;\r\n  }\r\n  *{box-sizing:border-box; margin:0;}\r\n  html{scroll-behavior:smooth; overflow-x:hidden; height:100%;}\r\n  body{font-family:var(--font); background:var(--paper); color:#20242C; font-size:19.5px; line-height:1.5; -webkit-font-smoothing:antialiased; overflow-x:hidden; min-height:100%;}\r\n  .app-shell{display:flex; flex-direction:column;}\r\n  .full-bleed{box-sizing:border-box;}\r\n\r\n  .brandbar{background:var(--paper); flex:0 0 auto; display:flex; align-items:center; justify-content:center; text-align:center; position:relative;}\r\n  .brandbar-in{max-width:1440px; margin:0 auto; padding:6px 32px; display:flex; align-items:center; justify-content:center; gap:20px; flex-wrap:wrap; position:relative; width:100%;}\r\n  .logo{display:flex; align-items:center; gap:5px; text-decoration:none;}\r\n  .logo img{height:40px; width:auto; display:block;}\r\n  .logo-col{display:flex; flex-direction:column; align-items:center;}\r\n\r\n  .langswitch{position:absolute; right:20px; top:50%; transform:translateY(-50%); display:flex; gap:6px; align-items:center;}\r\n  .langswitch button{border:1.5px solid var(--line); background:#fff; color:var(--mut); font-size:11px; font-weight:700; letter-spacing:.04em; padding:4px 8px; border-radius:5px; cursor:pointer; text-transform:uppercase; font-family:var(--font);}\r\n  .langswitch button.active{border-color:var(--navy); color:var(--navy); background:var(--stone);}\r\n  @media (max-width:640px){\r\n    .langswitch{position:static; transform:none; margin-top:4px; justify-content:center; width:100%;}\r\n    .brandbar-in{flex-direction:column; padding:8px 16px;}\r\n  }\r\n\r\n  .main-row{display:flex; flex-direction:column;}\r\n  .page{padding:clamp(8px, 2vh, 24px) 20px; background:var(--paper); display:flex; justify-content:center; align-items:flex-start;}\r\n  .wrap{position:relative; width:100%; max-width:480px; margin:0; display:flex; flex-direction:column;}\r\n\r\n  .card{background:var(--paper); border:1px solid var(--line); border-radius:8px; box-shadow:0 20px 48px rgba(15,42,84,.14); overflow:hidden; margin-top:0; position:relative; z-index:2; display:flex; flex-direction:column;}\r\n  .cardhead{background:linear-gradient(120deg, var(--navy), var(--navy-darker)); color:#fff; padding:clamp(5px, 1vh, 12px) clamp(14px, 4vw, 36px); text-align:center; border-radius:8px 8px 0 0; border-top:4px solid var(--red); flex:0 0 auto;}\r\n  .cardhead p.lead{font-size:clamp(10px, 1.5vh, 16px); line-height:1.3; margin-top:0; font-weight:300; letter-spacing:.005em;}\r\n  .cardhead p.lead b{color:#fff; font-weight:600;}\r\n\r\n  .body{padding:clamp(6px, 1.6vh, 14px) clamp(16px, 4vw, 32px) clamp(8px, 1.6vh, 16px);}\r\n  #wizardBody{overflow-y:visible;}\r\n  .progressRow{display:flex; align-items:center; gap:16px; margin-bottom:clamp(2px, 0.8vh, 8px); flex:0 0 auto;}\r\n  .progress{position:relative; flex:1 1 auto; height:2px; background:var(--line); margin:0 6px; overflow:visible;}\r\n  .bar{height:100%; width:0%; background:linear-gradient(90deg, var(--navy), var(--red)); transition:width .5s cubic-bezier(.4,0,.2,1);}\r\n  .progress-bot{position:absolute; top:50%; left:0%; transform:translate(-50%,-50%); width:clamp(24px, 4.5vh, 60px); height:clamp(15px, 2.8vh, 38px); transition:left .5s cubic-bezier(.4,0,.2,1); filter:drop-shadow(0 4px 7px rgba(15,42,84,.4));}\r\n  .progress-bot svg{display:block; width:100%; height:100%;}\r\n  .stepcount{font-size:clamp(9px, 1.3vh, 14px); color:var(--mut-lt); letter-spacing:.14em; text-transform:uppercase; font-weight:600; white-space:nowrap; flex:0 0 auto;}\r\n  .step{display:none; animation:fade .3s ease;}\r\n  .step.active{display:block;}\r\n  @keyframes fade{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:none;}}\r\n  h2{font-family:var(--heading); font-weight:700; font-size:clamp(15px, 2.6vh, 26px); line-height:1.2; color:var(--navy); margin-bottom:clamp(2px, 0.5vh, 6px); letter-spacing:.002em;}\r\n  .why{font-size:clamp(11px, 1.7vh, 16px); color:var(--mut); margin-bottom:clamp(4px, 1.2vh, 14px); font-weight:300; line-height:1.3;}\r\n  .opts{display:flex; flex-direction:column; gap:clamp(3px, 0.8vh, 8px);}\r\n  .opts label{border:1.5px solid var(--line); border-radius:8px; padding:clamp(3px, 1vh, 11px) clamp(10px, 2.2vh, 17px); font-size:clamp(10.5px, 1.6vh, 16px); font-weight:600;\r\n    cursor:pointer; background:#fff; display:flex; align-items:center; gap:10px; user-select:none; transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;}\r\n  .opts label:hover{border-color:var(--mut-lt); background:var(--stone);}\r\n  .opts label small{display:block; font-weight:400; font-size:clamp(8px, 1.1vh, 12px); color:var(--mut); margin-top:1px;}\r\n  .opts label .txt{flex:1;}\r\n  .opts input{accent-color:var(--ink) !important; width:clamp(13px, 2vh, 22px); height:clamp(13px, 2vh, 22px); flex:none;}\r\n  .opts label:has(input:checked){border-color:var(--navy); background:var(--stone); box-shadow:0 0 0 3px rgba(15,42,84,.12);}\r\n  .opts label:has(input:checked) .txt{color:var(--ink); font-weight:700;}\r\n  input[type=text],input[type=email],input[type=tel],select{width:100%; padding:clamp(8px,1.6vh,14px) 16px; font-size:clamp(13px,1.8vh,17px); font-family:var(--font); border:1.5px solid var(--line); border-radius:6px; background:#fff;}\r\n  input:focus,select:focus{outline:none; border-color:var(--navy); box-shadow:0 0 0 3px rgba(15,42,84,.1);}\r\n\r\n  \/* ---- country select + phone with fixed dial code ---- *\/\r\n  select#phoneCountry{width:100%; cursor:pointer;\r\n    -webkit-appearance:none; appearance:none;\r\n    background-image:url(\"data:image\/svg+xml;charset=UTF-8,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%235B657A' d='M1 1l5 5 5-5'\/%3E%3C\/svg%3E\");\r\n    background-repeat:no-repeat; background-position:right 12px center; background-size:11px 8px; padding-right:30px; text-overflow:ellipsis;}\r\n  .phone-field{display:flex; align-items:stretch; width:100%; min-width:0; border:1.5px solid var(--line); border-radius:6px; background:#fff; overflow:hidden;}\r\n  .phone-field:focus-within{border-color:var(--navy); box-shadow:0 0 0 3px rgba(15,42,84,.1);}\r\n  .dialtag{flex:0 0 auto; display:flex; align-items:center; padding:0 10px; background:var(--stone); border-right:1.5px solid var(--line);\r\n    font-size:clamp(12px,1.6vh,16px); font-weight:700; color:var(--navy); letter-spacing:.02em; white-space:nowrap;}\r\n  .phone-field input[type=tel]{flex:1 1 auto; width:100%; min-width:0; border:none !important; border-radius:0; box-shadow:none !important; background:transparent;}\r\n  .phone-field input[type=tel]:focus{outline:none; box-shadow:none !important;}\r\n\r\n  label.f{display:block; font-size:clamp(9px,1.1vh,13px); font-weight:600; margin:clamp(4px,1vh,14px) 0 clamp(2px,0.5vh,6px); color:var(--mut); letter-spacing:.1em; text-transform:uppercase;}\r\n  .row{display:flex; gap:20px; width:100%;} .row>div{flex:1 1 0; min-width:0;}\r\n  .consent{display:flex; gap:12px; align-items:flex-start; font-size:clamp(9px,1.2vh,14px); color:var(--mut); background:var(--stone);\r\n    border:1px solid var(--line); border-left:3px solid var(--ink); border-radius:6px; padding:clamp(6px,1.2vh,12px) 14px; margin-top:clamp(4px,1vh,14px); line-height:1.4; font-weight:400;}\r\n  .consent input{margin-top:2px; accent-color:var(--ink); width:18px; height:18px; flex:none;}\r\n  .nav{display:flex; gap:14px; margin-top:clamp(3px, 0.8vh, 10px); flex:0 0 auto;}\r\n  button{padding:clamp(7px, 1.5vh, 16px) clamp(14px, 3vw, 24px); font-size:clamp(11px, 1.6vh, 15.5px); font-weight:600; font-family:var(--font); border-radius:6px; border:1.5px solid var(--ink); cursor:pointer; letter-spacing:.1em; text-transform:uppercase; transition:background .18s ease, color .18s ease, border-color .18s ease; white-space:normal; word-break:break-word; line-height:1.3;}\r\n  .back{background:transparent; color:var(--navy); flex:0 0 auto; border:1.5px solid var(--line);}\r\n  .back:hover{border-color:var(--navy);}\r\n  .next{background:var(--red); color:#fff; flex:1; min-width:0; letter-spacing:.12em;}\r\n  .next:hover{background:var(--red); border-color:var(--red);}\r\n  .hint{font-size:clamp(8px,1vh,11px); color:var(--mut-lt); margin-top:clamp(2px,0.6vh,6px); flex:0 0 auto;}\r\n  .err{color:var(--red); font-size:clamp(10px,1.3vh,14px); font-weight:600; margin-top:8px; display:none; letter-spacing:.02em;}\r\n\r\n  .done{display:none; text-align:center; padding:56px 40px;}\r\n  .done.show{display:block; animation:fade .35s ease;}\r\n  .lane{display:inline-block; font-size:13px; font-weight:600; letter-spacing:.18em; padding:6px 14px; border-radius:4px; margin-bottom:20px; text-transform:uppercase;}\r\n  .lane.green{background:var(--go-bg); color:var(--go);}\r\n  .lane.std{background:#FBF3E3; color:var(--amber);}\r\n  .done h2{font-size:30px; margin-bottom:12px;}\r\n  .done p{font-size:17.5px; color:var(--mut); line-height:1.7; max-width:420px; margin:0 auto 10px; font-weight:300;}\r\n  .modelrec{margin:24px auto; max-width:420px; border:1.5px solid var(--line); border-radius:8px; padding:20px 22px; text-align:left; background:var(--stone);}\r\n  .modelrec .m{font-size:13px; font-weight:600; color:var(--red); letter-spacing:.16em; text-transform:uppercase;}\r\n  .modelrec .n{font-family:var(--heading); font-weight:700; font-size:22px; color:var(--navy); margin:4px 0;}\r\n  .modelrec .d{font-size:15.5px; color:var(--mut); font-weight:300; line-height:1.5;}\r\n  .calbtn{display:inline-block; background:var(--red); color:#fff; font-size:16.5px; font-weight:600; padding:17px 30px; border-radius:6px; text-decoration:none; margin-top:18px; letter-spacing:.14em; text-transform:uppercase; transition:background .18s ease;}\r\n  .calbtn:hover{background:var(--red-dark);}\r\n  .calnote{font-size:14px; color:var(--mut-lt); margin-top:14px;}\r\n  .hp{position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden;}\r\n  select#workType{cursor:pointer; -webkit-appearance:none; appearance:none;\r\n    background-image:url(\"data:image\/svg+xml;charset=UTF-8,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%235B657A' d='M1 1l5 5 5-5'\/%3E%3C\/svg%3E\");\r\n    background-repeat:no-repeat; background-position:right 12px center; background-size:11px 8px; padding-right:30px;}\r\n\r\n  footer{background:var(--navy-deep); color:#9AA6BC; padding:44px 24px 34px; border-top:3px solid var(--red);}\r\n  footer .foot-in{max-width:1440px; margin:0 auto; text-align:center;}\r\n  footer .foot-brand{font-family:var(--font); font-weight:600; font-size:15px; color:#fff; letter-spacing:.2em; margin-bottom:14px; text-transform:uppercase;}\r\n  footer .foot-meta{font-size:14.5px; color:#7A7C7D; line-height:2.1; letter-spacing:.02em;}\r\n  footer .foot-meta a{color:#9A9C9D; text-decoration:none;}\r\n  footer .foot-meta a:hover{color:#fff;}\r\n\r\n  @media (min-width:1000px){ .wrap{max-width:520px;} }\r\n  @media (max-width:640px){\r\n    .app-shell{min-height:100dvh;}\r\n    .page{flex:1 1 auto; min-height:0; padding:clamp(4px, 1.2vh, 14px) 16px; align-items:center;}\r\n    .wrap{min-height:0;}\r\n    .card{max-height:100%; min-height:0;}\r\n    .body{flex:1 1 auto; min-height:0; display:flex; flex-direction:column; padding:clamp(4px, 1.2vh, 12px) clamp(14px, 4vw, 32px) clamp(6px, 1.2vh, 14px);}\r\n    #wizardBody{flex:1 1 auto; min-height:0; display:flex; flex-direction:column;}\r\n    .step{flex-direction:column; min-height:0;}\r\n    .opts{flex:1 1 auto; min-height:0; justify-content:center;}\r\n    .main-row{flex-direction:column;}\r\n    .row{flex-direction:column; gap:0;}\r\n    .row>div{width:100%;}\r\n    .stepcount{font-size:12px; letter-spacing:.1em;}\r\n    .dialtag{font-size:14px; padding:0 9px;}\r\n    .phone-field input[type=tel]{font-size:14.5px; padding:10px 10px;}\r\n    select#phoneCountry{font-size:13.5px; padding-right:26px; background-position:right 8px center;}\r\n    input[type=text],input[type=email],input[type=tel],select{padding:9px 11px; font-size:14px;}\r\n    label.f{font-size:10px; margin:8px 0 3px; letter-spacing:.05em;}\r\n    .nav{flex-wrap:wrap; margin-top:6px;}\r\n    button{padding:10px 14px; font-size:12px;}\r\n    .nav button.next{flex:1 1 100%; order:-1;}\r\n    .nav button.back{flex:0 0 auto;}\r\n    .page{padding:10px 14px;}\r\n    .consent{font-size:12px; padding:10px 11px; gap:8px; margin-top:12px; line-height:1.4;}\r\n    .consent input{width:16px; height:16px;}\r\n    .done{padding:36px 18px;}\r\n    .done h2{font-size:22px;}\r\n    .done p{font-size:15px; line-height:1.6;}\r\n    .modelrec{padding:14px 16px; margin:16px auto;}\r\n    .modelrec .n{font-size:19px;}\r\n    .modelrec .d{font-size:14px;}\r\n    .calbtn{padding:14px 22px; font-size:14.5px;}\r\n    footer{padding:26px 16px 22px;}\r\n    footer .foot-meta{font-size:12.5px; line-height:1.9;}\r\n    .row{gap:8px;}\r\n    h2{font-size:16px; margin-bottom:2px;}\r\n    .why{font-size:12px; margin-bottom:5px;}\r\n    .err{font-size:13px;}\r\n    .hint{font-size:12px;}\r\n    .cardhead{padding:10px 16px;}\r\n    .cardhead p.lead{font-size:12.5px; line-height:1.3;}\r\n  }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n<div class=\"app-shell\">\r\n  <div class=\"main-row full-bleed\">\r\n\r\n  <div class=\"brandbar\">\r\n    <div class=\"brandbar-in\">\r\n      <a class=\"logo\" href=\"#\">\r\n        <img decoding=\"async\" src=\"https:\/\/go.roboticsdesign.qc.ca\/wp-content\/uploads\/2026\/09\/RD-logo-blue-scaled.png\" alt=\"Robotics Design Inc.\">\r\n      <\/a>\r\n      <div class=\"langswitch\" id=\"langSwitch\">\r\n        <button type=\"button\" data-lang=\"en\" onclick=\"setLang('en')\">EN<\/button>\r\n        <button type=\"button\" data-lang=\"fr\" onclick=\"setLang('fr')\">FR<\/button>\r\n        <button type=\"button\" data-lang=\"es\" onclick=\"setLang('es')\">ES<\/button>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"page\">\r\n  <div class=\"wrap\">\r\n\r\n    <div class=\"card\">\r\n      <div class=\"cardhead\">\r\n        <p class=\"lead\" id=\"leadText\"><\/p>\r\n      <\/div>\r\n\r\n      <div class=\"body\" id=\"wizardBody\">\r\n        <div class=\"progressRow\">\r\n        <div class=\"progress\">\r\n          <div class=\"bar\" id=\"bar\"><\/div>\r\n          <div class=\"progress-bot\" id=\"progressBot\">\r\n            <svg viewBox=\"0 0 100 60\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\r\n              <defs>\r\n                <radialGradient id=\"wheelG\" cx=\"36%\" cy=\"30%\" r=\"80%\">\r\n                  <stop offset=\"0%\" stop-color=\"#7a808a\"\/><stop offset=\"45%\" stop-color=\"#44484e\"\/><stop offset=\"80%\" stop-color=\"#222427\"\/><stop offset=\"100%\" stop-color=\"#101113\"\/>\r\n                <\/radialGradient>\r\n                <radialGradient id=\"hubG\" cx=\"35%\" cy=\"30%\" r=\"80%\">\r\n                  <stop offset=\"0%\" stop-color=\"#4a4d52\"\/><stop offset=\"100%\" stop-color=\"#161719\"\/>\r\n                <\/radialGradient>\r\n                <linearGradient id=\"bodyG\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">\r\n                  <stop offset=\"0%\" stop-color=\"#f0384f\"\/><stop offset=\"45%\" stop-color=\"var(--red)\"\/><stop offset=\"100%\" stop-color=\"#6b0a19\"\/>\r\n                <\/linearGradient>\r\n                <linearGradient id=\"sensorG\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\r\n                  <stop offset=\"0%\" stop-color=\"#4c4f54\"\/><stop offset=\"55%\" stop-color=\"#232528\"\/><stop offset=\"100%\" stop-color=\"#0a0b0c\"\/>\r\n                <\/linearGradient>\r\n                <radialGradient id=\"lensG\" cx=\"35%\" cy=\"30%\" r=\"75%\">\r\n                  <stop offset=\"0%\" stop-color=\"#eafff1\"\/><stop offset=\"60%\" stop-color=\"#8fe8b3\"\/><stop offset=\"100%\" stop-color=\"#1e6b40\"\/>\r\n                <\/radialGradient>\r\n              <\/defs>\r\n              <circle cx=\"17\" cy=\"38\" r=\"17\" fill=\"url(#wheelG)\"\/>\r\n              <circle cx=\"17\" cy=\"38\" r=\"17\" fill=\"none\" stroke=\"#050506\" stroke-width=\"1.2\"\/>\r\n              <g stroke=\"#0a0b0c\" stroke-width=\"2\" stroke-linecap=\"round\">\r\n                <line x1=\"17\" y1=\"21.5\" x2=\"17\" y2=\"25.5\"\/><line x1=\"33.5\" y1=\"38\" x2=\"29.5\" y2=\"38\"\/><line x1=\"17\" y1=\"54.5\" x2=\"17\" y2=\"50.5\"\/><line x1=\"0.5\" y1=\"38\" x2=\"4.5\" y2=\"38\"\/>\r\n                <line x1=\"5.4\" y1=\"26.4\" x2=\"8.2\" y2=\"29.2\"\/><line x1=\"28.6\" y1=\"26.4\" x2=\"25.8\" y2=\"29.2\"\/><line x1=\"5.4\" y1=\"49.6\" x2=\"8.2\" y2=\"46.8\"\/><line x1=\"28.6\" y1=\"49.6\" x2=\"25.8\" y2=\"46.8\"\/>\r\n                <line x1=\"10.7\" y1=\"22.6\" x2=\"12.6\" y2=\"26.1\"\/><line x1=\"23.3\" y1=\"22.6\" x2=\"21.4\" y2=\"26.1\"\/><line x1=\"10.7\" y1=\"53.4\" x2=\"12.6\" y2=\"49.9\"\/><line x1=\"23.3\" y1=\"53.4\" x2=\"21.4\" y2=\"49.9\"\/>\r\n              <\/g>\r\n              <circle cx=\"17\" cy=\"38\" r=\"7\" fill=\"url(#hubG)\" stroke=\"#050506\" stroke-width=\".6\"\/>\r\n              <circle cx=\"17\" cy=\"38\" r=\"2.6\" fill=\"var(--red)\"\/>\r\n              <circle cx=\"13.5\" cy=\"34.5\" r=\"1.6\" fill=\"#ffffff\" opacity=\".25\"\/>\r\n              <circle cx=\"83\" cy=\"38\" r=\"17\" fill=\"url(#wheelG)\"\/>\r\n              <circle cx=\"83\" cy=\"38\" r=\"17\" fill=\"none\" stroke=\"#050506\" stroke-width=\"1.2\"\/>\r\n              <g stroke=\"#0a0b0c\" stroke-width=\"2\" stroke-linecap=\"round\">\r\n                <line x1=\"83\" y1=\"21.5\" x2=\"83\" y2=\"25.5\"\/><line x1=\"99.5\" y1=\"38\" x2=\"95.5\" y2=\"38\"\/><line x1=\"83\" y1=\"54.5\" x2=\"83\" y2=\"50.5\"\/><line x1=\"66.5\" y1=\"38\" x2=\"70.5\" y2=\"38\"\/>\r\n                <line x1=\"71.4\" y1=\"26.4\" x2=\"74.2\" y2=\"29.2\"\/><line x1=\"94.6\" y1=\"26.4\" x2=\"91.8\" y2=\"29.2\"\/><line x1=\"71.4\" y1=\"49.6\" x2=\"74.2\" y2=\"46.8\"\/><line x1=\"94.6\" y1=\"49.6\" x2=\"91.8\" y2=\"46.8\"\/>\r\n                <line x1=\"76.7\" y1=\"22.6\" x2=\"78.6\" y2=\"26.1\"\/><line x1=\"89.3\" y1=\"22.6\" x2=\"87.4\" y2=\"26.1\"\/><line x1=\"76.7\" y1=\"53.4\" x2=\"78.6\" y2=\"49.9\"\/><line x1=\"89.3\" y1=\"53.4\" x2=\"87.4\" y2=\"49.9\"\/>\r\n              <\/g>\r\n              <circle cx=\"83\" cy=\"38\" r=\"7\" fill=\"url(#hubG)\" stroke=\"#050506\" stroke-width=\".6\"\/>\r\n              <circle cx=\"83\" cy=\"38\" r=\"2.6\" fill=\"var(--red)\"\/>\r\n              <circle cx=\"79.5\" cy=\"34.5\" r=\"1.6\" fill=\"#ffffff\" opacity=\".25\"\/>\r\n              <rect x=\"21\" y=\"22\" width=\"58\" height=\"30\" rx=\"11\" fill=\"url(#bodyG)\" stroke=\"#4a0710\" stroke-width=\"1\"\/>\r\n              <rect x=\"24\" y=\"24.5\" width=\"52\" height=\"8\" rx=\"4\" fill=\"#ffffff\" opacity=\".16\"\/>\r\n              <circle cx=\"27\" cy=\"47\" r=\"1.1\" fill=\"#2c0208\" opacity=\".7\"\/>\r\n              <circle cx=\"73\" cy=\"47\" r=\"1.1\" fill=\"#2c0208\" opacity=\".7\"\/>\r\n              <circle cx=\"35\" cy=\"45.5\" r=\"4\" fill=\"#0a0b0c\"\/><circle cx=\"35\" cy=\"45.5\" r=\"2.1\" fill=\"url(#lensG)\"\/>\r\n              <circle cx=\"45.5\" cy=\"45.5\" r=\"4\" fill=\"#0a0b0c\"\/><circle cx=\"45.5\" cy=\"45.5\" r=\"2.1\" fill=\"url(#lensG)\"\/>\r\n              <circle cx=\"56\" cy=\"45.5\" r=\"4\" fill=\"#0a0b0c\"\/><circle cx=\"56\" cy=\"45.5\" r=\"2.1\" fill=\"url(#lensG)\"\/>\r\n              <rect x=\"46\" y=\"1\" width=\"10\" height=\"24\" rx=\"3.4\" fill=\"url(#sensorG)\" transform=\"rotate(-13 51 13)\"\/>\r\n              <rect x=\"47.2\" y=\"2.4\" width=\"2.4\" height=\"18\" rx=\"1.2\" fill=\"#ffffff\" opacity=\".14\" transform=\"rotate(-13 51 13)\"\/>\r\n              <circle cx=\"51\" cy=\"6\" r=\"5\" fill=\"#f2f3f4\" transform=\"rotate(-13 51 13)\"\/>\r\n              <circle cx=\"51\" cy=\"6\" r=\"2.7\" fill=\"#0a0b0c\" transform=\"rotate(-13 51 13)\"\/>\r\n              <circle cx=\"49.5\" cy=\"4.5\" r=\"1\" fill=\"#ffffff\" opacity=\".6\" transform=\"rotate(-13 51 13)\"\/>\r\n              <rect x=\"58.5\" y=\"-0.5\" width=\"8\" height=\"9\" rx=\"1.8\" fill=\"#cfa93a\" transform=\"rotate(-13 51 13)\"\/>\r\n              <rect x=\"58.5\" y=\"-0.5\" width=\"8\" height=\"3\" rx=\"1.4\" fill=\"#e8ca7c\" opacity=\".7\" transform=\"rotate(-13 51 13)\"\/>\r\n            <\/svg>\r\n          <\/div>\r\n        <\/div>\r\n        <div class=\"stepcount\" id=\"stepcount\">STEP 1 \/ 4<\/div>\r\n        <\/div>\r\n\r\n        <div class=\"step active\" data-step=\"1\">\r\n          <h2 id=\"s1h2\"><\/h2>\r\n          <p class=\"why\" id=\"s1why\"><\/p>\r\n          <div class=\"opts\">\r\n            <label class=\"hot\"><input type=\"radio\" name=\"need\" value=\"micro\" onclick=\"auto(1)\"><span class=\"txt\" id=\"txt-micro\"><\/span> <small id=\"small-micro\"><\/small><\/label>\r\n            <label class=\"hot\"><input type=\"radio\" name=\"need\" value=\"commercial\" onclick=\"auto(1)\"><span class=\"txt\" id=\"txt-commercial\"><\/span> <small id=\"small-commercial\"><\/small><\/label>\r\n            <label class=\"hot\"><input type=\"radio\" name=\"need\" value=\"industrial\" onclick=\"auto(1)\"><span class=\"txt\" id=\"txt-industrial\"><\/span> <small id=\"small-industrial\"><\/small><\/label>\r\n            <label><input type=\"radio\" name=\"need\" value=\"vertical\" onclick=\"auto(1)\"><span class=\"txt\" id=\"txt-vertical\"><\/span> <small id=\"small-vertical\"><\/small><\/label>\r\n            <label><input type=\"radio\" name=\"need\" value=\"kitchen\" onclick=\"auto(1)\"><span class=\"txt\" id=\"txt-kitchen\"><\/span> <small id=\"small-kitchen\"><\/small><\/label>\r\n            <label><input type=\"radio\" name=\"need\" value=\"mix\" onclick=\"auto(1)\"><span class=\"txt\" id=\"txt-mix\"><\/span> <small id=\"small-mix\"><\/small><\/label>\r\n          <\/div>\r\n          <p class=\"hint\" style=\"text-align:center;\" id=\"s1hint\"><\/p>\r\n        <\/div>\r\n\r\n        <div class=\"step\" data-step=\"2\">\r\n          <h2 id=\"s2h2\"><\/h2>\r\n          <p class=\"why\" id=\"s2why\"><\/p>\r\n          <div class=\"opts\">\r\n            <label><input type=\"radio\" name=\"fleet\" value=\"1_5\" onclick=\"auto(2)\"><span class=\"txt\" id=\"txt-1_5\"><\/span><\/label>\r\n            <label><input type=\"radio\" name=\"fleet\" value=\"6_10\" onclick=\"auto(2)\"><span class=\"txt\" id=\"txt-6_10\"><\/span><\/label>\r\n            <label class=\"hot\"><input type=\"radio\" name=\"fleet\" value=\"11_25\" onclick=\"auto(2)\"><span class=\"txt\" id=\"txt-11_25\"><\/span><\/label>\r\n            <label class=\"hot\"><input type=\"radio\" name=\"fleet\" value=\"25_999\" onclick=\"auto(2)\"><span class=\"txt\" id=\"txt-25_999\"><\/span><\/label>\r\n            <label class=\"hot\"><input type=\"radio\" name=\"fleet\" value=\"1000_plus\" onclick=\"auto(2)\"><span class=\"txt\" id=\"txt-1000_plus\"><\/span><\/label>\r\n          <\/div>\r\n          <div class=\"nav\"><button class=\"back\" onclick=\"back(2)\">\u2190<\/button><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"step\" data-step=\"3\">\r\n          <h2 id=\"s3h2\"><\/h2>\r\n          <p class=\"why\" id=\"s3why\"><\/p>\r\n          <div class=\"opts\">\r\n            <label class=\"hot\"><input type=\"radio\" name=\"trigger\" value=\"contract\" onclick=\"auto(3)\"><span class=\"txt\" id=\"txt-contract\"><\/span> <small id=\"small-contract\"><\/small><\/label>\r\n            <label><input type=\"radio\" name=\"trigger\" value=\"staffing\" onclick=\"auto(3)\"><span class=\"txt\" id=\"txt-staffing\"><\/span><\/label>\r\n            <label><input type=\"radio\" name=\"trigger\" value=\"upgrade\" onclick=\"auto(3)\"><span class=\"txt\" id=\"txt-upgrade\"><\/span><\/label>\r\n            <label><input type=\"radio\" name=\"trigger\" value=\"research\" onclick=\"auto(3)\"><span class=\"txt\" id=\"txt-research\"><\/span><\/label>\r\n          <\/div>\r\n          <div class=\"nav\"><button class=\"back\" onclick=\"back(3)\">\u2190<\/button><\/div>\r\n        <\/div>\r\n\r\n        <div class=\"step\" data-step=\"4\">\r\n          <h2 id=\"s4h2\"><\/h2>\r\n          <p class=\"why\" id=\"s4why\"><\/p>\r\n          <label class=\"f\" id=\"lbl-company\"><\/label><input type=\"text\" id=\"company\" autocomplete=\"organization\">\r\n          <label class=\"f\" id=\"lbl-worktype\"><\/label>\r\n          <select id=\"workType\">\r\n            <option value=\"\" id=\"wt-placeholder\"><\/option>\r\n            <option value=\"residential\" id=\"wt-residential\"><\/option>\r\n            <option value=\"commercial\" id=\"wt-commercial\"><\/option>\r\n            <option value=\"industrial\" id=\"wt-industrial\"><\/option>\r\n            <option value=\"institutional\" id=\"wt-institutional\"><\/option>\r\n            <option value=\"distributor\" id=\"wt-distributor\"><\/option>\r\n          <\/select>\r\n          <div class=\"hp\" aria-hidden=\"true\"><label>Website<input type=\"text\" id=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label><\/div>\r\n          <label class=\"f\" id=\"lbl-name\"><\/label><input type=\"text\" id=\"name\" autocomplete=\"name\">\r\n          <label class=\"f\" id=\"lbl-email\"><\/label><input type=\"email\" id=\"email\" autocomplete=\"email\">\r\n          <div class=\"row\">\r\n            <div><label class=\"f\" id=\"lbl-country\"><\/label>\r\n              <select id=\"phoneCountry\" aria-label=\"Country\" onchange=\"onCountryChange()\"><\/select>\r\n            <\/div>\r\n            <div><label class=\"f\" id=\"lbl-phone\"><\/label>\r\n              <div class=\"phone-field\">\r\n                <span class=\"dialtag\" id=\"dialTag\">+1<\/span>\r\n                <input type=\"tel\" id=\"phone\" inputmode=\"numeric\" autocomplete=\"tel-national\" oninput=\"onPhoneInput(this)\">\r\n              <\/div>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"consent\"><input type=\"checkbox\" id=\"consent\">\r\n            <span id=\"consentText\"><\/span><\/div>\r\n          <div class=\"err\" id=\"err4\"><\/div>\r\n          <div class=\"nav\"><button class=\"back\" onclick=\"back(4)\">\u2190<\/button><button class=\"next\" id=\"submitBtn\" onclick=\"submitForm()\"><\/button><\/div>\r\n          <p class=\"hint\" style=\"text-align:center;\" id=\"s4hint\"><\/p>\r\n        <\/div>\r\n\r\n        <div class=\"done\" id=\"doneGreen\">\r\n          <h2 id=\"gH2\"><\/h2>\r\n          <p id=\"gP\"><\/p>\r\n          <div class=\"modelrec\"><div class=\"m\" id=\"gModelCode\"><\/div><div class=\"n\" id=\"gModel\">ANATROLLER\u2122 ARI-100<\/div><div class=\"d\" id=\"gModelWhy\"><\/div><\/div>\r\n          <a class=\"calbtn\" id=\"gCalBtn\" href=\"#\" target=\"_blank\" rel=\"noopener\"><\/a>\r\n          <p class=\"calnote\" id=\"gCalNote\"><\/p>\r\n        <\/div>\r\n\r\n        <div class=\"done\" id=\"doneStd\">\r\n          <h2 id=\"sH2\"><\/h2>\r\n          <p id=\"sP\"><\/p>\r\n          <div class=\"modelrec\"><div class=\"m\" id=\"sModelCode\"><\/div><div class=\"n\" id=\"sModel\">ANATROLLER\u2122 ARI-50<\/div><div class=\"d\" id=\"sModelWhy\"><\/div><\/div>\r\n          <a class=\"calbtn\" id=\"sCalBtn\" href=\"#\" target=\"_blank\" rel=\"noopener\"><\/a>\r\n          <p class=\"calnote\" id=\"sCalNote\"><\/p>\r\n        <\/div>\r\n\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/div>\r\n  <\/div>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\nconst TOTAL=4; let cur=1;\r\nconst N8N_WEBHOOK_URL = \"https:\/\/alpinen8n-crmvm1.ignorelist.com\/webhook\/sonny-form\";\r\nconst CALENDLY_LINK = \"https:\/\/calendly.com\/roboticsdesign-sales\/anatroller-live-demo\";\r\nconst LOADED_AT = Date.now();\r\n\r\n\/* localStorage puede no existir o lanzar error (Safari privado, cookies bloqueadas) *\/\r\nfunction lsGet(k){ try{ return localStorage.getItem(k); }catch(e){ return null; } }\r\nfunction lsSet(k,v){ try{ localStorage.setItem(k,v); }catch(e){} }\r\n\r\n\/* ===================== country codes ===================== *\/\r\n\/* [ISO, name, dial, national placeholder] \u2014 Canada\/USA pinned on top, rest A\u2192Z *\/\r\nconst COUNTRIES = [\r\n  ['CA','Canada','1','514 555 0123'],\r\n  ['US','United States','1','555 123 4567'],\r\n  ['AR','Argentina','54','11 2345 6789'],\r\n  ['AU','Australia','61','412 345 678'],\r\n  ['AT','Austria','43','664 123456'],\r\n  ['BE','Belgium','32','470 12 34 56'],\r\n  ['BO','Bolivia','591','71234567'],\r\n  ['BR','Brazil','55','11 91234 5678'],\r\n  ['CL','Chile','56','9 1234 5678'],\r\n  ['CN','China','86','131 2345 6789'],\r\n  ['CO','Colombia','57','301 2345678'],\r\n  ['CR','Costa Rica','506','8312 3456'],\r\n  ['CZ','Czechia','420','601 123 456'],\r\n  ['DK','Denmark','45','32 12 34 56'],\r\n  ['DO','Dominican Rep.','1','809 234 5678'],\r\n  ['EC','Ecuador','593','98 765 4321'],\r\n  ['EG','Egypt','20','100 123 4567'],\r\n  ['SV','El Salvador','503','7012 3456'],\r\n  ['FI','Finland','358','41 2345678'],\r\n  ['FR','France','33','6 12 34 56 78'],\r\n  ['DE','Germany','49','1512 3456789'],\r\n  ['GR','Greece','30','691 234 5678'],\r\n  ['GT','Guatemala','502','5123 4567'],\r\n  ['HN','Honduras','504','9123 4567'],\r\n  ['HK','Hong Kong','852','5123 4567'],\r\n  ['IN','India','91','98765 43210'],\r\n  ['ID','Indonesia','62','812 345 678'],\r\n  ['IE','Ireland','353','85 012 3456'],\r\n  ['IL','Israel','972','50 123 4567'],\r\n  ['IT','Italy','39','312 345 6789'],\r\n  ['JM','Jamaica','1','876 210 1234'],\r\n  ['JP','Japan','81','90 1234 5678'],\r\n  ['KE','Kenya','254','712 123456'],\r\n  ['KW','Kuwait','965','500 12345'],\r\n  ['MY','Malaysia','60','12 345 6789'],\r\n  ['MX','Mexico','52','55 1234 5678'],\r\n  ['MA','Morocco','212','650 123456'],\r\n  ['NL','Netherlands','31','6 12345678'],\r\n  ['NZ','New Zealand','64','21 123 4567'],\r\n  ['NI','Nicaragua','505','8123 4567'],\r\n  ['NG','Nigeria','234','802 123 4567'],\r\n  ['NO','Norway','47','406 12 345'],\r\n  ['PA','Panama','507','6123 4567'],\r\n  ['PY','Paraguay','595','961 456789'],\r\n  ['PE','Peru','51','912 345 678'],\r\n  ['PH','Philippines','63','905 123 4567'],\r\n  ['PL','Poland','48','512 345 678'],\r\n  ['PT','Portugal','351','912 345 678'],\r\n  ['PR','Puerto Rico','1','787 234 5678'],\r\n  ['QA','Qatar','974','3312 3456'],\r\n  ['RO','Romania','40','712 345 678'],\r\n  ['SA','Saudi Arabia','966','51 234 5678'],\r\n  ['SG','Singapore','65','8123 4567'],\r\n  ['ZA','South Africa','27','71 123 4567'],\r\n  ['KR','South Korea','82','10 1234 5678'],\r\n  ['ES','Spain','34','612 34 56 78'],\r\n  ['SE','Sweden','46','70 123 45 67'],\r\n  ['CH','Switzerland','41','78 123 45 67'],\r\n  ['TH','Thailand','66','81 234 5678'],\r\n  ['TT','Trinidad & Tobago','1','868 291 1234'],\r\n  ['TN','Tunisia','216','20 123 456'],\r\n  ['TR','T\u00fcrkiye','90','501 234 5678'],\r\n  ['AE','United Arab Emirates','971','50 123 4567'],\r\n  ['GB','United Kingdom','44','7400 123456'],\r\n  ['UY','Uruguay','598','94 231 234'],\r\n  ['VE','Venezuela','58','412 1234567'],\r\n  ['VN','Vietnam','84','91 234 56 78']\r\n];\r\n\r\nconst DEFAULT_COUNTRY_BY_LANG = { en:'CA', fr:'CA', es:'EC' };\r\nlet countryTouched = false;\r\n\r\nfunction isoToFlag(iso){\r\n  return iso.toUpperCase().replace(\/.\/g, c => String.fromCodePoint(127397 + c.charCodeAt(0)));\r\n}\r\n\r\nfunction buildCountrySelect(){\r\n  const sel = document.getElementById('phoneCountry');\r\n  sel.innerHTML = '';\r\n  COUNTRIES.forEach(function(c, i){\r\n    const o = document.createElement('option');\r\n    o.value = c[0];\r\n    o.textContent = isoToFlag(c[0]) + '  ' + c[1];\r\n    o.dataset.dial = c[2];\r\n    o.dataset.ph = c[3];\r\n    o.title = c[1] + ' (+' + c[2] + ')';\r\n    sel.appendChild(o);\r\n    if(i === 1){\r\n      const sep = document.createElement('option');\r\n      sep.disabled = true; sep.textContent = '\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500';\r\n      sel.appendChild(sep);\r\n    }\r\n  });\r\n}\r\n\r\nfunction currentCountry(){\r\n  const sel = document.getElementById('phoneCountry');\r\n  const opt = sel.options[sel.selectedIndex];\r\n  return { iso: sel.value, dial: opt ? opt.dataset.dial : '1', ph: opt ? opt.dataset.ph : '' };\r\n}\r\n\r\nfunction setCountry(iso, fromUser){\r\n  const sel = document.getElementById('phoneCountry');\r\n  if([...sel.options].some(o=>o.value===iso)) sel.value = iso;\r\n  if(fromUser) countryTouched = true;\r\n  applyCountryPlaceholder();\r\n}\r\n\r\nfunction applyCountryPlaceholder(){\r\n  const c = currentCountry();\r\n  document.getElementById('dialTag').textContent = '+' + c.dial;\r\n  document.getElementById('phone').placeholder = c.ph;\r\n  if(countryTouched) lsSet('rd_country', c.iso); \/\/ solo si el usuario lo eligio\r\n}\r\n\r\nfunction onCountryChange(){\r\n  countryTouched = true;\r\n  applyCountryPlaceholder();\r\n  document.getElementById('phone').focus();\r\n}\r\n\r\n\/* Si el usuario pega\/escribe el n\u00famero con c\u00f3digo internacional, lo detectamos *\/\r\nfunction onPhoneInput(el){\r\n  let v = el.value;\r\n  if(\/^\\s*(\\+|00)\/.test(v)){\r\n    const digits = v.replace(\/^\\s*(\\+|00)\/,'').replace(\/\\D\/g,'');\r\n    let best = null;\r\n    COUNTRIES.forEach(function(c){\r\n      if(digits.indexOf(c[2]) === 0 && (!best || c[2].length > best[2].length)) best = c;\r\n    });\r\n    if(best){\r\n      setCountry(best[0], true);\r\n      el.value = digits.slice(best[2].length).replace(\/(\\d{3})(?=\\d)\/g, '$1 ').trim();\r\n      return;\r\n    }\r\n  }\r\n  el.value = v.replace(\/[^0-9 ().-]\/g,'');\r\n}\r\n\r\nfunction fullPhone(){\r\n  const c = currentCountry();\r\n  const national = document.getElementById('phone').value.replace(\/\\D\/g,'');\r\n  return national ? '+' + c.dial + national : '';\r\n}\r\n\r\n\/* ===================== i18n ===================== *\/\r\nconst I18N = {\r\nen: {\r\n  step: 'STEP',\r\n  lead: 'See the <b>ANATROLLER\u2122<\/b> on a private <b>20-minute live video demonstration<\/b>.<br>Complete the form in <b>30 seconds<\/b>. No obligation \u2014 <b>only precision.<\/b>',\r\n  s1h2: 'What do you need to get a robot into?',\r\n  s1why: \"This decides the model \u2014 so we'll pick it for you.\",\r\n  'txt-micro':'Tight or micro runs', 'small-micro':'Down to 3.6\" \u00d7 6\"',\r\n  'txt-commercial':'Standard commercial HVAC', 'small-commercial':'Offices, schools, hospitals, retail',\r\n  'txt-industrial':'Large industrial trunks', 'small-industrial':'Up to 78\" \u00d7 78\"',\r\n  'txt-vertical':'Vertical metal shafts', 'small-vertical':\"Magnetic climb \u2014 most robots can't\",\r\n  'txt-kitchen':'Kitchen exhaust \/ grease', 'small-kitchen':'NFPA 96 work',\r\n  'txt-mix':'A mix \u2014 or not sure', 'small-mix':\"We'll recommend the fit\",\r\n  s1hint: 'Free. No obligation. We never sell or share your details.',\r\n  s2h2: 'How many technicians \/ crews do you have?',\r\n  s2why: \"So the ROI math we show you is your math \u2014 not someone else's.\",\r\n  'txt-1_5':'1\u20135 technicians', 'txt-6_10':'6\u201310 technicians', 'txt-11_25':'11\u201325 technicians',\r\n  'txt-25_999':'25\u2013999 technicians', 'txt-1000_plus':'1,000+ technicians',\r\n  s3h2: 'What brings you in right now?',\r\n  s3why: 'If there\\'s a clock ticking on your side, we move on ours \u2014 lead time matters.',\r\n  'txt-contract':'We won \/ are bidding a contract', 'small-contract':'Priority handling \u2014 same-day callback',\r\n  'txt-staffing':\"We can't find enough technicians\",\r\n  'txt-upgrade':'Upgrading \/ replacing equipment',\r\n  'txt-research':'Just researching for now',\r\n  s4h2: 'Last step \u2014 where do we send your demo details?',\r\n  s4why: 'This is the only typing. Everything else is done.',\r\n  'lbl-company':'Company name', 'ph-company':'Your company',\r\n  'lbl-name':'Your name', 'ph-name':'e.g. Mike R.',\r\n  'lbl-email':'Work email', 'ph-email':'you@company.com',\r\n  'lbl-country':'Country',\r\n  'lbl-phone':'Phone',\r\n  consentText: 'I agree Robotics Design Inc. may contact me by email\/phone about my demo request. Reply STOP to unsubscribe.',\r\n  err4: 'Company, name, a valid work email, phone and consent are needed to book your demo.',\r\n  submitBtn: 'SEE IT RUN \u2014 BOOK MY LIVE VIDEO DEMO \u2192',\r\n  sending: 'SENDING\u2026',\r\n  s4hint: 'We never share your info',\r\n  'lbl-worktype': 'Main type of work', 'wt-placeholder': 'Select\u2026',\r\n  'wt-residential': 'Residential', 'wt-commercial': 'Commercial', 'wt-industrial': 'Industrial',\r\n  'wt-institutional': 'Institutional (hospitals, schools, government)', 'wt-distributor': 'We\\'re a distributor \/ reseller',\r\n  laneGreen: 'PRIORITY LEAD \u00b7 SAME-DAY CALLBACK',\r\n  gH2: \"You're in, {name} \u2014 let's get you in front of the robot.\",\r\n  gP: 'We just emailed you the link to pick your live demo time. Prefer to do it right now?',\r\n  gModelCode: 'RECOMMENDED FOR YOUR DUCTS',\r\n  modelWhyBase: \"We'll demo it live on a setup like your jobs.\",\r\n  gCalNote: 'A real person from Montreal calls you <b>today<\/b> to book your live demo.',\r\n  laneStd: 'INFO KIT ON THE WAY',\r\n  sH2: 'Done \u2014 check your inbox, {name}.',\r\n  sP: 'We just emailed you the link to book your 20-minute live video demo. You can also pick a time right now:',\r\n  sModelCode: 'LIKELY FIT FOR YOUR DUCTS',\r\n  stdWhySuffix: '',\r\n  sCalNote: 'Can\\'t find the email? Check your spam folder \u2014 or just reply to it with any question.',\r\n  calBtn: 'PICK MY DEMO TIME \u2192',\r\n  models: {\r\n    ari100: (kitchen)=>['ANATROLLER\u2122 ARI-100', 'The heavy-duty unit for large trunks' + (kitchen ? ' \u2014 with spray\/scrub attachments for NFPA 96 grease work.' : ' up to 78\" \u00d7 78\".')],\r\n    ari10v: ()=>['ANATROLLER\u2122 ARI-10', \"The magnetic climber for vertical metallic shafts most robots can't touch.\"],\r\n    ari10m: ()=>['ANATROLLER\u2122 ARI-10', 'The compact unit built for micro duct navigation and tight spaces.'],\r\n    ari50c: ()=>['ANATROLLER\u2122 ARI-50', 'The core fit for standard commercial HVAC runs.'],\r\n    ari50d: ()=>['ANATROLLER\u2122 ARI-50', 'The most versatile starting unit \u2014 a strong fit across mixed duct types.']\r\n  }\r\n},\r\nfr: {\r\n  step: '\u00c9TAPE',\r\n  lead: \"D\u00e9couvrez l'<b>ANATROLLER\u2122<\/b> lors d'une <b>d\u00e9monstration vid\u00e9o priv\u00e9e de 20 minutes<\/b>.<br>Remplissez le formulaire en <b>30 secondes<\/b>. Aucune obligation \u2014 <b>seulement de la pr\u00e9cision.<\/b>\",\r\n  s1h2: 'Dans quel type de conduit avez-vous besoin d\\'un robot?',\r\n  s1why: \"C'est ce qui d\u00e9termine le mod\u00e8le \u2014 on le choisit donc pour vous.\",\r\n  'txt-micro':'Conduits \u00e9troits ou micro', 'small-micro':'Jusqu\\'\u00e0 3,6 po \u00d7 6 po',\r\n  'txt-commercial':'CVC commercial standard', 'small-commercial':'Bureaux, \u00e9coles, h\u00f4pitaux, commerces',\r\n  'txt-industrial':'Grands conduits industriels', 'small-industrial':'Jusqu\\'\u00e0 78 po \u00d7 78 po',\r\n  'txt-vertical':'Puits m\u00e9talliques verticaux', 'small-vertical':'Grimpe magn\u00e9tique \u2014 la plupart des robots ne le peuvent pas',\r\n  'txt-kitchen':'\u00c9vacuation de cuisine \/ graisse', 'small-kitchen':'Travaux NFPA 96',\r\n  'txt-mix':'Un m\u00e9lange \u2014 ou pas certain', 'small-mix':'On vous recommandera le bon choix',\r\n  s1hint: 'Gratuit. Aucune obligation. Nous ne vendons ni ne partageons jamais vos informations.',\r\n  s2h2: 'Combien de techniciens \/ \u00e9quipes avez-vous?',\r\n  s2why: \"Pour que le calcul du retour sur investissement soit le v\u00f4tre \u2014 pas celui de quelqu'un d'autre.\",\r\n  'txt-1_5':'1 \u00e0 5 techniciens', 'txt-6_10':'6 \u00e0 10 techniciens', 'txt-11_25':'11 \u00e0 25 techniciens',\r\n  'txt-25_999':'25 \u00e0 999 techniciens', 'txt-1000_plus':'1 000+ techniciens',\r\n  s3h2: 'Qu\\'est-ce qui vous am\u00e8ne en ce moment?',\r\n  s3why: \"S'il y a une \u00e9ch\u00e9ance de votre c\u00f4t\u00e9, on bouge du n\u00f4tre \u2014 les d\u00e9lais comptent.\",\r\n  'txt-contract':'Nous avons remport\u00e9 \/ soumissionnons un contrat', 'small-contract':'Traitement prioritaire \u2014 rappel le jour m\u00eame',\r\n  'txt-staffing':'Nous manquons de techniciens',\r\n  'txt-upgrade':\"Mise \u00e0 niveau \/ remplacement d'\u00e9quipement\",\r\n  'txt-research':'On se renseigne pour l\\'instant',\r\n  s4h2: 'Derni\u00e8re \u00e9tape \u2014 o\u00f9 envoyons-nous les d\u00e9tails de votre d\u00e9mo?',\r\n  s4why: 'C\\'est le seul champ \u00e0 remplir. Tout le reste est fait.',\r\n  'lbl-company':\"Nom de l'entreprise\", 'ph-company':'Votre entreprise',\r\n  'lbl-name':'Votre nom', 'ph-name':'ex. Mike R.',\r\n  'lbl-email':'Courriel professionnel', 'ph-email':'vous@entreprise.com',\r\n  'lbl-country':'Pays',\r\n  'lbl-phone':'T\u00e9l\u00e9phone',\r\n  consentText: \"J'accepte que Robotics Design Inc. me contacte par courriel\/t\u00e9l\u00e9phone au sujet de ma demande de d\u00e9mo. R\u00e9pondez STOP pour vous d\u00e9sinscrire.\",\r\n  err4: \"Entreprise, nom, un courriel professionnel valide, t\u00e9l\u00e9phone et consentement sont requis pour r\u00e9server votre d\u00e9mo.\",\r\n  submitBtn: 'VOIR LE ROBOT EN ACTION \u2014 R\u00c9SERVER MA D\u00c9MO VID\u00c9O \u2192',\r\n  sending: 'ENVOI\u2026',\r\n  s4hint: 'Nous ne partageons jamais vos informations',\r\n  'lbl-worktype': 'Type de travaux principal', 'wt-placeholder': 'Choisir\u2026',\r\n  'wt-residential': 'R\u00e9sidentiel', 'wt-commercial': 'Commercial', 'wt-industrial': 'Industriel',\r\n  'wt-institutional': 'Institutionnel (h\u00f4pitaux, \u00e9coles, gouvernement)', 'wt-distributor': 'Nous sommes distributeur \/ revendeur',\r\n  laneGreen: 'PRIORITAIRE \u00b7 RAPPEL LE JOUR M\u00caME',\r\n  gH2: \"C'est fait, {name} \u2014 passons devant le robot.\",\r\n  gP: 'Nous venons de vous envoyer par courriel le lien pour choisir l\\'heure de votre d\u00e9mo en direct. Vous pr\u00e9f\u00e9rez le faire maintenant?',\r\n  gModelCode: 'RECOMMAND\u00c9 POUR VOS CONDUITS',\r\n  modelWhyBase: 'Nous vous le d\u00e9montrerons en direct sur une installation semblable \u00e0 vos travaux.',\r\n  gCalNote: 'Une vraie personne de Montr\u00e9al vous appelle <b>aujourd\\'hui<\/b> pour r\u00e9server votre d\u00e9mo en direct.',\r\n  laneStd: \"TROUSSE D'INFO EN ROUTE\",\r\n  sH2: 'C\\'est fait \u2014 v\u00e9rifiez votre bo\u00eete courriel, {name}.',\r\n  sP: 'Nous venons de vous envoyer par courriel le lien pour r\u00e9server votre d\u00e9mo vid\u00e9o en direct de 20 minutes. Vous pouvez aussi choisir un moment d\u00e8s maintenant :',\r\n  sModelCode: 'PROBABLEMENT ADAPT\u00c9 \u00c0 VOS CONDUITS',\r\n  stdWhySuffix: '',\r\n  sCalNote: 'Vous ne trouvez pas le courriel? V\u00e9rifiez vos courriels ind\u00e9sirables \u2014 ou r\u00e9pondez-y avec n\\'importe quelle question.',\r\n  calBtn: 'CHOISIR MON HEURE DE D\u00c9MO \u2192',\r\n  models: {\r\n    ari100: (kitchen)=>['ANATROLLER\u2122 ARI-100', 'L\\'unit\u00e9 robuste pour les grands conduits' + (kitchen ? ' \u2014 avec accessoires de pulv\u00e9risation\/brossage pour les travaux de graisse NFPA 96.' : ' jusqu\\'\u00e0 78 po \u00d7 78 po.')],\r\n    ari10v: ()=>['ANATROLLER\u2122 ARI-10', 'Le grimpeur magn\u00e9tique pour les puits m\u00e9talliques verticaux que la plupart des robots ne peuvent pas atteindre.'],\r\n    ari10m: ()=>['ANATROLLER\u2122 ARI-10', 'L\\'unit\u00e9 compacte con\u00e7ue pour la navigation dans les micro-conduits et les espaces restreints.'],\r\n    ari50c: ()=>['ANATROLLER\u2122 ARI-50', 'Le choix de base pour les conduits CVC commerciaux standards.'],\r\n    ari50d: ()=>['ANATROLLER\u2122 ARI-50', 'L\\'unit\u00e9 de d\u00e9part la plus polyvalente \u2014 un excellent choix pour des types de conduits vari\u00e9s.']\r\n  }\r\n},\r\nes: {\r\n  step: 'PASO',\r\n  lead: 'Vea el <b>ANATROLLER\u2122<\/b> en una <b>demostraci\u00f3n privada por video de 20 minutos<\/b>.<br>Complete el formulario en <b>30 segundos<\/b>. Sin compromiso \u2014 <b>solo precisi\u00f3n.<\/b>',\r\n  s1h2: '\u00bfEn qu\u00e9 tipo de conducto necesita meter un robot?',\r\n  s1why: 'Esto determina el modelo \u2014 as\u00ed que lo elegimos por usted.',\r\n  'txt-micro':'Conductos angostos o micro', 'small-micro':'Hasta 3.6\" \u00d7 6\"',\r\n  'txt-commercial':'HVAC comercial est\u00e1ndar', 'small-commercial':'Oficinas, escuelas, hospitales, retail',\r\n  'txt-industrial':'Grandes ductos industriales', 'small-industrial':'Hasta 78\" \u00d7 78\"',\r\n  'txt-vertical':'Ductos met\u00e1licos verticales', 'small-vertical':'Escalada magn\u00e9tica \u2014 la mayor\u00eda de robots no puede',\r\n  'txt-kitchen':'Extracci\u00f3n de cocina \/ grasa', 'small-kitchen':'Trabajos NFPA 96',\r\n  'txt-mix':'Una mezcla \u2014 o no est\u00e1 seguro', 'small-mix':'Le recomendaremos la opci\u00f3n ideal',\r\n  s1hint: 'Gratis. Sin compromiso. Nunca vendemos ni compartimos su informaci\u00f3n.',\r\n  s2h2: '\u00bfCu\u00e1ntos t\u00e9cnicos \/ cuadrillas tiene?',\r\n  s2why: 'As\u00ed el c\u00e1lculo de retorno de inversi\u00f3n que le mostramos es el suyo \u2014 no el de otra empresa.',\r\n  'txt-1_5':'1\u20135 t\u00e9cnicos', 'txt-6_10':'6\u201310 t\u00e9cnicos', 'txt-11_25':'11\u201325 t\u00e9cnicos',\r\n  'txt-25_999':'25\u2013999 t\u00e9cnicos', 'txt-1000_plus':'1,000+ t\u00e9cnicos',\r\n  s3h2: '\u00bfQu\u00e9 lo trae por aqu\u00ed ahora mismo?',\r\n  s3why: 'Si hay un plazo corriendo de su lado, nosotros nos movemos del nuestro \u2014 los tiempos importan.',\r\n  'txt-contract':'Ganamos \/ estamos licitando un contrato', 'small-contract':'Atenci\u00f3n prioritaria \u2014 devoluci\u00f3n de llamada el mismo d\u00eda',\r\n  'txt-staffing':'No encontramos suficientes t\u00e9cnicos',\r\n  'txt-upgrade':'Actualizando \/ reemplazando equipo',\r\n  'txt-research':'Solo investigando por ahora',\r\n  s4h2: '\u00daltimo paso \u2014 \u00bfa d\u00f3nde enviamos los detalles de su demo?',\r\n  s4why: 'Esto es lo \u00fanico que hay que escribir. Todo lo dem\u00e1s ya est\u00e1 listo.',\r\n  'lbl-company':'Nombre de la empresa', 'ph-company':'Su empresa',\r\n  'lbl-name':'Su nombre', 'ph-name':'ej. Mike R.',\r\n  'lbl-email':'Correo laboral', 'ph-email':'usted@empresa.com',\r\n  'lbl-country':'Pa\u00eds',\r\n  'lbl-phone':'Tel\u00e9fono',\r\n  consentText: 'Acepto que Robotics Design Inc. me contacte por correo\/tel\u00e9fono sobre mi solicitud de demo. Responda STOP para cancelar la suscripci\u00f3n.',\r\n  err4: 'Se necesitan empresa, nombre, un correo laboral v\u00e1lido, tel\u00e9fono y consentimiento para reservar su demo.',\r\n  submitBtn: 'VERLO EN ACCI\u00d3N \u2014 RESERVAR MI DEMO EN VIVO \u2192',\r\n  sending: 'ENVIANDO\u2026',\r\n  s4hint: 'Nunca compartimos su informaci\u00f3n',\r\n  'lbl-worktype': 'Tipo de trabajo principal', 'wt-placeholder': 'Seleccione\u2026',\r\n  'wt-residential': 'Residencial', 'wt-commercial': 'Comercial', 'wt-industrial': 'Industrial',\r\n  'wt-institutional': 'Institucional (hospitales, escuelas, gobierno)', 'wt-distributor': 'Somos distribuidor \/ revendedor',\r\n  laneGreen: 'PRIORITARIO \u00b7 LLAMADA EL MISMO D\u00cdA',\r\n  gH2: 'Listo, {name} \u2014 pong\u00e1moslo frente al robot.',\r\n  gP: 'Le acabamos de enviar por correo el enlace para elegir la hora de su demo en vivo. \u00bfPrefiere hacerlo ahora mismo?',\r\n  gModelCode: 'RECOMENDADO PARA SUS DUCTOS',\r\n  modelWhyBase: 'Se lo demostraremos en vivo en una instalaci\u00f3n similar a sus trabajos.',\r\n  gCalNote: 'Una persona real desde Montreal le llama <b>hoy mismo<\/b> para reservar su demo en vivo.',\r\n  laneStd: 'KIT DE INFORMACI\u00d3N EN CAMINO',\r\n  sH2: 'Listo \u2014 revise su correo, {name}.',\r\n  sP: 'Le acabamos de enviar por correo el enlace para reservar su demo en vivo por video de 20 minutos. Tambi\u00e9n puede elegir un horario ahora mismo:',\r\n  sModelCode: 'PROBABLE OPCI\u00d3N PARA SUS DUCTOS',\r\n  stdWhySuffix: '',\r\n  sCalNote: '\u00bfNo encuentra el correo? Revise su carpeta de spam \u2014 o resp\u00f3ndalo con cualquier pregunta.',\r\n  calBtn: 'ELEGIR HORARIO DE MI DEMO \u2192',\r\n  models: {\r\n    ari100: (kitchen)=>['ANATROLLER\u2122 ARI-100', 'La unidad resistente para ductos grandes' + (kitchen ? ' \u2014 con accesorios de rociado\/cepillado para trabajos de grasa NFPA 96.' : ' hasta 78\" \u00d7 78\".')],\r\n    ari10v: ()=>['ANATROLLER\u2122 ARI-10', 'El escalador magn\u00e9tico para ductos met\u00e1licos verticales que la mayor\u00eda de robots no puede alcanzar.'],\r\n    ari10m: ()=>['ANATROLLER\u2122 ARI-10', 'La unidad compacta dise\u00f1ada para navegar micro-ductos y espacios angostos.'],\r\n    ari50c: ()=>['ANATROLLER\u2122 ARI-50', 'La opci\u00f3n principal para ductos HVAC comerciales est\u00e1ndar.'],\r\n    ari50d: ()=>['ANATROLLER\u2122 ARI-50', 'La unidad inicial m\u00e1s vers\u00e1til \u2014 una excelente opci\u00f3n para tipos de ductos mixtos.']\r\n  }\r\n}\r\n};\r\n\r\nlet LANG = 'en';\r\n\r\nfunction detectLang(){\r\n  const saved = lsGet('rd_lang');\r\n  if(saved && I18N[saved]) return saved;\r\n  const nav = (navigator.language || 'en').toLowerCase();\r\n  if(nav.startsWith('fr')) return 'fr';\r\n  if(nav.startsWith('es')) return 'es';\r\n  return 'en';\r\n}\r\n\r\nfunction detectCountry(){\r\n  try{\r\n    const saved = lsGet('rd_country');\r\n    if(saved && COUNTRIES.some(c=>c[0]===saved)) return saved;\r\n  }catch(e){}\r\n  const nav = (navigator.language || '').toUpperCase();\r\n  const region = nav.split(\/[-_]\/)[1];\r\n  if(region && COUNTRIES.some(c=>c[0]===region)) return region;\r\n  return null;\r\n}\r\n\r\nfunction setLang(lang){\r\n  if(!I18N[lang]) lang='en';\r\n  LANG = lang;\r\n  lsSet('rd_lang', lang);\r\n  document.getElementById('htmlRoot').lang = lang;\r\n  document.querySelectorAll('#langSwitch button').forEach(b=>b.classList.toggle('active', b.dataset.lang===lang));\r\n\r\n  const t = I18N[lang];\r\n  document.getElementById('leadText').innerHTML = t.lead;\r\n  document.getElementById('s1h2').textContent = t.s1h2;\r\n  document.getElementById('s1why').textContent = t.s1why;\r\n  ['micro','commercial','industrial','vertical','kitchen','mix'].forEach(k=>{\r\n    document.getElementById('txt-'+k).textContent = t['txt-'+k];\r\n    const s = document.getElementById('small-'+k); if(s) s.textContent = t['small-'+k];\r\n  });\r\n  document.getElementById('s1hint').textContent = t.s1hint;\r\n  document.getElementById('s2h2').textContent = t.s2h2;\r\n  document.getElementById('s2why').textContent = t.s2why;\r\n  ['1_5','6_10','11_25','25_999','1000_plus'].forEach(k=>{\r\n    document.getElementById('txt-'+k).textContent = t['txt-'+k];\r\n  });\r\n  document.getElementById('s3h2').textContent = t.s3h2;\r\n  document.getElementById('s3why').textContent = t.s3why;\r\n  ['contract','staffing','upgrade','research'].forEach(k=>{\r\n    document.getElementById('txt-'+k).textContent = t['txt-'+k];\r\n  });\r\n  document.getElementById('small-contract').textContent = t['small-contract'];\r\n  document.getElementById('s4h2').textContent = t.s4h2;\r\n  document.getElementById('s4why').textContent = t.s4why;\r\n  document.getElementById('lbl-company').textContent = t['lbl-company'];\r\n  ['lbl-worktype','wt-placeholder','wt-residential','wt-commercial','wt-industrial','wt-institutional','wt-distributor']\r\n    .forEach(k=>{ document.getElementById(k).textContent = t[k]; });\r\n  document.getElementById('company').placeholder = t['ph-company'];\r\n  document.getElementById('lbl-name').textContent = t['lbl-name'];\r\n  document.getElementById('name').placeholder = t['ph-name'];\r\n  document.getElementById('lbl-email').textContent = t['lbl-email'];\r\n  document.getElementById('email').placeholder = t['ph-email'];\r\n  document.getElementById('lbl-country').textContent = t['lbl-country'];\r\n  document.getElementById('lbl-phone').textContent = t['lbl-phone'];\r\n  document.getElementById('consentText').textContent = t.consentText;\r\n  document.getElementById('err4').textContent = t.err4;\r\n  document.getElementById('s4hint').textContent = t.s4hint;\r\n  const btn = document.getElementById('submitBtn');\r\n  if(!btn.disabled) btn.textContent = t.submitBtn;\r\n  btn.dataset.label = t.submitBtn;\r\n  btn.dataset.sending = t.sending;\r\n\r\n  \/\/ si el usuario no eligi\u00f3 pa\u00eds manualmente, seguimos el idioma\r\n  paint();\r\n  if(!countryTouched){\r\n    setCountry(detectCountry() || DEFAULT_COUNTRY_BY_LANG[lang] || 'CA', false);\r\n  }\r\n}\r\n\r\n\/* ===================== wizard logic ===================== *\/\r\nconst S=(n)=>document.querySelector('.step[data-step=\"'+n+'\"]');\r\nfunction paint(){\r\n  const pct = Math.round(cur\/TOTAL*100);\r\n  document.getElementById('bar').style.width=pct+'%';\r\n  document.getElementById('progressBot').style.left=pct+'%';\r\n  document.getElementById('stepcount').textContent=(I18N[LANG].step||'STEP')+' '+cur+' \/ '+TOTAL;}\r\nfunction show(n){\r\n  const keepScroll = window.scrollY;\r\n  document.querySelectorAll('.step').forEach(s=>s.classList.remove('active'));\r\n  S(n).classList.add('active');\r\n  cur=n; paint();\r\n  window.scrollTo({top:keepScroll, behavior:'auto'});\r\n  requestAnimationFrame(()=>window.scrollTo({top:keepScroll, behavior:'auto'}));\r\n}\r\nfunction vals(name){return [...document.querySelectorAll('input[name=\"'+name+'\"]:checked')].map(i=>i.value);}\r\nfunction auto(n){ setTimeout(()=>show(n+1),180); }\r\nfunction back(n){ show(n-1); }\r\n\r\nfunction score(){\r\n  let p=0; const f=vals('fleet')[0], t=vals('trigger')[0];\r\n  if(f==='1000_plus')p+=3; if(f==='25_999')p+=2; if(f==='11_25')p+=1; if(f==='1_5')p-=1;\r\n  if(t==='contract')p+=4; if(t==='staffing'||t==='upgrade')p+=2;\r\n  if(document.getElementById('workType').value==='distributor')p+=2;\r\n  const email=document.getElementById('email').value; if(email&&!\/@(gmail|hotmail|yahoo|outlook)\\.\/i.test(email))p+=1;\r\n  return {p, green: p>=6 || t==='contract'};\r\n}\r\nfunction modelFit(){\r\n  const need = vals('need')[0];\r\n  const m = I18N[LANG].models;\r\n  if(need==='industrial'||need==='kitchen') return m.ari100(need==='kitchen');\r\n  if(need==='vertical') return m.ari10v();\r\n  if(need==='micro') return m.ari10m();\r\n  if(need==='commercial') return m.ari50c();\r\n  return m.ari50d();\r\n}\r\n\r\nfunction attribution(){\r\n  const q = new URLSearchParams(location.search);\r\n  const a = {};\r\n  ['utm_source','utm_medium','utm_campaign','utm_content','utm_term','fbclid','gclid'].forEach(k=>{ if(q.get(k)) a[k]=q.get(k); });\r\n  a.page_url = location.href.split('#')[0];\r\n  if(document.referrer) a.referrer = document.referrer;\r\n  return a;\r\n}\r\n\r\n\/* Envia al webhook con 1 reintento; keepalive para que no se corte si cierran la pestana *\/\r\nasync function sendLead(payload){\r\n  for(let i=0;i<2;i++){\r\n    try{\r\n      const r = await fetch(N8N_WEBHOOK_URL, {method:'POST', headers:{'Content-Type':'application\/json'}, body:JSON.stringify(payload), keepalive:true});\r\n      if(r.ok) return true;\r\n    }catch(e){ console.error('Error enviando a n8n (intento '+(i+1)+'):', e); }\r\n    await new Promise(res=>setTimeout(res, 1200));\r\n  }\r\n  return false;\r\n}\r\n\r\n\/* Link de Calendly con los datos ya llenos.\r\n   a1 = 1ra pregunta personalizada del evento (Company), a2 = 2da (Phone).\r\n   Los utm_* pasan a Calendly para saber de que anuncio vino la reserva. *\/\r\nfunction calendlyUrl(){\r\n  const q = new URLSearchParams({ name: document.getElementById('name').value.trim(), email: document.getElementById('email').value.trim() });\r\n  const company = document.getElementById('company').value.trim();\r\n  const phone = fullPhone();\r\n  if(company) q.set('a1', company);\r\n  if(phone) q.set('a2', phone);\r\n  const a = attribution();\r\n  ['utm_source','utm_medium','utm_campaign','utm_content','utm_term'].forEach(k=>{ if(a[k]) q.set(k, a[k]); });\r\n  return CALENDLY_LINK + '?' + q.toString();\r\n}\r\n\r\nlet submitting = false;\r\nasync function submitForm(){\r\n  if(submitting) return;\r\n  const nationalDigits = document.getElementById('phone').value.replace(\/\\D\/g,'');\r\n  const ok = document.getElementById('company').value.trim() && document.getElementById('name').value.trim()\r\n    && \/.+@.+\\..+\/.test(document.getElementById('email').value) && nationalDigits.length >= 6\r\n    && document.getElementById('consent').checked;\r\n  if(!ok){document.getElementById('err4').style.display='block'; return;}\r\n  document.getElementById('err4').style.display='none';\r\n\r\n  const {p, green}=score(); const [m,whyM]=modelFit();\r\n  const first=document.getElementById('name').value.trim().split(' ')[0];\r\n  const t = I18N[LANG];\r\n  const c = currentCountry();\r\n\r\n  const payload = {\r\n    ...attribution(),\r\n    source: 'web_form',\r\n    work_type: document.getElementById('workType').value,\r\n    need: vals('need')[0] || 'mix',\r\n    fleet: vals('fleet')[0] || '',\r\n    trigger: vals('trigger')[0] || '',\r\n    company: document.getElementById('company').value.trim(),\r\n    name: document.getElementById('name').value.trim(),\r\n    email: document.getElementById('email').value.trim(),\r\n    phone: fullPhone(),\r\n    phone_country: c.iso,\r\n    phone_dial: '+' + c.dial,\r\n    phone_national: nationalDigits,\r\n    consent: document.getElementById('consent').checked,\r\n    client_score: p,\r\n    client_model_suggestion: m,\r\n    language: LANG\r\n  };\r\n\r\n  const btn = document.getElementById('submitBtn');\r\n  submitting = true; btn.disabled = true; btn.textContent = t.sending;\r\n\r\n  \/\/ Anti-spam: si el campo oculto viene lleno o el form se lleno en <3s, es un bot -> no se envia\r\n  const isBot = document.getElementById('website').value !== '' || (Date.now() - LOADED_AT) < 3000;\r\n  if(!isBot) await sendLead(payload);\r\n\r\n  document.getElementById('wizardBody').querySelectorAll('.step,.progress,.stepcount').forEach(e=>e.style.display='none');\r\n  if(green){\r\n    document.getElementById('gH2').textContent = t.gH2.replace('{name}', first);\r\n    document.getElementById('gP').textContent = t.gP;\r\n    document.getElementById('gModelCode').textContent = t.gModelCode;\r\n    document.getElementById('gModel').textContent = m;\r\n    document.getElementById('gModelWhy').textContent = t.modelWhyBase + ' ' + whyM;\r\n    document.getElementById('gCalNote').innerHTML = t.gCalNote;\r\n    document.getElementById('gCalBtn').textContent = t.calBtn;\r\n    document.getElementById('gCalBtn').href = calendlyUrl();\r\n    document.getElementById('doneGreen').classList.add('show');\r\n  } else {\r\n    document.getElementById('sH2').textContent = t.sH2.replace('{name}', first);\r\n    document.getElementById('sP').textContent = t.sP;\r\n    document.getElementById('sModelCode').textContent = t.sModelCode;\r\n    document.getElementById('sModel').textContent = m;\r\n    document.getElementById('sModelWhy').textContent = whyM + t.stdWhySuffix;\r\n    document.getElementById('sCalNote').innerHTML = t.sCalNote;\r\n    document.getElementById('sCalBtn').textContent = t.calBtn;\r\n    document.getElementById('sCalBtn').href = calendlyUrl();\r\n    document.getElementById('doneStd').classList.add('show');\r\n  }\r\n}\r\n\r\ndocument.querySelector('.step[data-step=\"4\"]').addEventListener('keydown', function(e){\r\n  if(e.key==='Enter' && e.target.tagName==='INPUT'){ e.preventDefault(); submitForm(); }\r\n});\r\n\r\nbuildCountrySelect();\r\nsetCountry(detectCountry() || 'CA', false);\r\nsetLang(detectLang());\r\npaint();\r\n\r\nfunction rdFitFullBleed(){\r\n  const refRect = document.body.getBoundingClientRect();\r\n  document.querySelectorAll('.full-bleed').forEach(function(el){\r\n    el.style.marginLeft = '0px';\r\n    el.style.marginRight = '0px';\r\n    const rect = el.getBoundingClientRect();\r\n    const leftGap = rect.left - refRect.left;\r\n    const rightGap = refRect.right - rect.right;\r\n    el.style.marginLeft = (-leftGap) + 'px';\r\n    el.style.marginRight = (-rightGap) + 'px';\r\n  });\r\n}\r\nrdFitFullBleed();\r\nwindow.addEventListener('load', rdFitFullBleed);\r\nlet rdBleedTimer;\r\nwindow.addEventListener('resize', function(){\r\n  clearTimeout(rdBleedTimer);\r\n  rdBleedTimer = setTimeout(rdFitFullBleed, 150);\r\n});\r\n<\/script>\r\n<\/body>\r\n<\/html>\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>ANATROLLER\u2122 \u2014 Book Your Live Video Demo \u2014 Robotics Design Inc. EN FR ES STEP 1 \/ 4 \u2190 \u2190 Website +1 \u2190 ANATROLLER\u2122 ARI-100 ANATROLLER\u2122 ARI-50<\/p>\n","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"footnotes":""},"class_list":["post-8","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/go.roboticsdesign.qc.ca\/form\/wp-json\/wp\/v2\/pages\/8","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/go.roboticsdesign.qc.ca\/form\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/go.roboticsdesign.qc.ca\/form\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/go.roboticsdesign.qc.ca\/form\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/go.roboticsdesign.qc.ca\/form\/wp-json\/wp\/v2\/comments?post=8"}],"version-history":[{"count":80,"href":"https:\/\/go.roboticsdesign.qc.ca\/form\/wp-json\/wp\/v2\/pages\/8\/revisions"}],"predecessor-version":[{"id":95,"href":"https:\/\/go.roboticsdesign.qc.ca\/form\/wp-json\/wp\/v2\/pages\/8\/revisions\/95"}],"wp:attachment":[{"href":"https:\/\/go.roboticsdesign.qc.ca\/form\/wp-json\/wp\/v2\/media?parent=8"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}