{"id":20515,"date":"2025-09-04T07:56:32","date_gmt":"2025-09-04T05:56:32","guid":{"rendered":"https:\/\/arredocad.com\/try-arredocad\/download-arredocad\/"},"modified":"2026-06-22T16:19:18","modified_gmt":"2026-06-22T14:19:18","slug":"download-arredocad","status":"publish","type":"page","link":"https:\/\/arredocad.com\/en\/try-arredocad\/download-arredocad\/","title":{"rendered":"Download ArredoCAD"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><div data-elementor-type=\"wp-page\" data-elementor-id=\"20515\" class=\"elementor elementor-20515 elementor-6204\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2730de4 e-con-full e-flex sc_layouts_column_icons_position_left e-con e-parent\" data-id=\"2730de4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-55fe1d6 sc_fly_static elementor-widget elementor-widget-text-editor\" data-id=\"55fe1d6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<section id=\"acadtf_6a91df55a9a9b\" class=\"acadtf full-bleed\" aria-label=\"ArredoCAD trial request\">\n  <div class=\"acadtf__wrap\">\n    <!-- HEADER + STEPPER -->\n    <div class=\"acadtf__header\">\n      <div class=\"acadtf__title\">\n        <h1>Request the ArredoCAD trial<\/h1>\n        <p>3 steps<\/p>\n      <\/div>\n      <div class=\"acadtf__progress\" role=\"progressbar\" aria-valuemin=\"1\" aria-valuemax=\"3\" aria-valuenow=\"1\">\n        <div class=\"acadtf__steps\"><!-- riempito via JS --><\/div>\n        <div class=\"acadtf__bar\"><i style=\"width: 0%;\"><\/i><\/div>\n      <\/div>\n    <\/div>\n\n    <!-- CONTENT -->\n    <div class=\"acadtf__grid\">\n      <!-- LEFT: FORM WIZARD -->\n      <div class=\"acadtf__left\">\n        <form class=\"acadtf__form\" method=\"post\" action=\"\" data-landform=\"0\" id=\"acadtf_6a91df55a9a9b__form\">\n\n          <!-- STEP 1: PROFESSIONE (tipoaz flatten, CARD RADIO 2x) -->\n          <fieldset class=\"acadtf__step-panel is-visible\" data-step=\"prof\" aria-label=\"Who are you\">\n            <legend>Who are you?<\/legend>\n            <p class=\"acadtf__hint\">Select your profession.<\/p>\n\n            <div class=\"acadtf__cards acadtf__cards--radio\" id=\"acadtf_6a91df55a9a9b_prof_cards\">\n              <!-- popolato via JS -->\n            <\/div>\n            <div class=\"error-msg-group\" id=\"acadtf_6a91df55a9a9b_prof_err\" hidden><\/div>\n          <\/fieldset>\n\n          <!-- STEP 2: PROGRAMMI (progused, CARD CHECKBOX 2x) -->\n          <fieldset class=\"acadtf__step-panel\" data-step=\"prog\" aria-label=\"Programs you use\">\n            <legend>Which programs do you use?<\/legend>\n            <p class=\"acadtf__hint\">Select one or more programs.<\/p>\n\n            <div class=\"acadtf__cards acadtf__cards--checkbox\" id=\"acadtf_6a91df55a9a9b_prog_cards\">\n              <!-- popolato via JS -->\n            <\/div>\n            <div class=\"error-msg-group\" id=\"acadtf_6a91df55a9a9b_prog_err\" hidden><\/div>\n          <\/fieldset>\n\n          <!-- STEP 3: DATI -->\n          <fieldset class=\"acadtf__step-panel\" data-step=\"data\" aria-label=\"Your details\">\n            <legend>Your details<\/legend>\n            <p class=\"acadtf__hint\">Please enter your contact information so we can provide you with <strong>free support<\/strong>.<\/p>\n\n            <div class=\"acadtf__formgrid\">\n              <!-- Riga 1 -->\n              <div>\n                <label for=\"acadtf_6a91df55a9a9b_nome\">First name*<\/label>\n                <input id=\"acadtf_6a91df55a9a9b_nome\" name=\"nome\" type=\"text\" required>\n                <div class=\"error-msg\" hidden><\/div>\n              <\/div>\n              <div>\n                <label for=\"acadtf_6a91df55a9a9b_cognome\">Last name*<\/label>\n                <input id=\"acadtf_6a91df55a9a9b_cognome\" name=\"cognome\" type=\"text\" required>\n                <div class=\"error-msg\" hidden><\/div>\n              <\/div>\n\n              <div>\n                <label for=\"acadtf_6a91df55a9a9b_ragione\">Company name*<\/label>\n                <input id=\"acadtf_6a91df55a9a9b_ragione\" name=\"ragione_sociale\" type=\"text\" required>\n                <div class=\"error-msg\" hidden><\/div>\n              <\/div>\n\n              <!-- Riga 2 -->\n              <div>\n                <label for=\"acadtf_6a91df55a9a9b_email\">Email*<\/label>\n                <input id=\"acadtf_6a91df55a9a9b_email\" name=\"email\" type=\"email\" inputmode=\"email\" required>\n                <div class=\"alt-error error-msg\" hidden><\/div>\n              <\/div>\n              <div>\n                <label for=\"acadtf_6a91df55a9a9b_citta\">City*<\/label>\n                <input id=\"acadtf_6a91df55a9a9b_citta\" name=\"citta\" type=\"text\" required>\n                <div class=\"error-msg\" hidden><\/div>\n              <\/div>\n\n              <!-- Riga 3 -->\n              <div>\n                <label for=\"acadtf_6a91df55a9a9b_nazione\">Country*<\/label>\n                <select id=\"acadtf_6a91df55a9a9b_nazione\" name=\"nazione\" required>\n                  <option value=\"\">Select a country&hellip;<\/option>\n                <\/select>\n                <div class=\"error-msg\" hidden><\/div>\n              <\/div>\n              <div>\n                <label for=\"acadtf_6a91df55a9a9b_provincia\">State\/Province<\/label>\n                <input id=\"acadtf_6a91df55a9a9b_provincia\" name=\"provincia\" type=\"text\" placeholder=\"Es. MI\">\n                <div class=\"error-msg\" hidden><\/div>\n              <\/div>\n            <\/div>\n\n            <!-- Verifica cellulare -->\n            <div class=\"acadtf__phonewrap\">\n              <p class=\"acadtf__hint acadtf__hint--phone\">\n                Enter your mobile number, click on <strong>Verify<\/strong> to receive the code by SMS, then enter it in the <strong>Verification code<\/strong> field              <\/p>\n\n              <div class=\"acadtf__phonegrid\">\n                <div>\n                  <label>Mobile number*<\/label>\n                  <div class=\"acadtf__phoneinline\">\n                    <select id=\"acadtf_6a91df55a9a9b_ccode\" name=\"ccode\" aria-label=\"International dialing code\"><\/select>\n                    <input id=\"acadtf_6a91df55a9a9b_tel\" name=\"telefono\" type=\"tel\" inputmode=\"tel\" placeholder=\"Number\" required>\n                    <button type=\"button\" class=\"acadtf__btn acadtf__btn--verify\" id=\"acadtf_6a91df55a9a9b_smsbtn\">VERIFY<\/button>\n                  <\/div>\n                  <div class=\"error-msg\" hidden><\/div>\n                <\/div>\n\n                <div>\n                  <label for=\"acadtf_6a91df55a9a9b_otp\">Verification code*<\/label>\n                  <input id=\"acadtf_6a91df55a9a9b_otp\" name=\"otp\" type=\"text\" inputmode=\"numeric\" placeholder=\"Enter the code\" required>\n                  <div class=\"alt-error error-msg\" hidden><\/div>\n                <\/div>\n              <\/div>\n            <\/div>\n\n            <div class=\"acadtf__consents\">\n              <label class=\"acadtf__chk\">\n                <input type=\"checkbox\" id=\"acadtf_6a91df55a9a9b_privacy\" name=\"privacy\">\n                <span>I have read and accept the <a target=\"_blank\" href=\"\/en\/privacy-policy\/\">privacy policy<\/a>*<\/span>\n              <\/label>\n              <div class=\"error-msg\" id=\"acadtf_6a91df55a9a9b_privacy_err\" hidden><\/div>\n            <\/div>\n          <\/fieldset>\n\n          <!-- NAV -->\n          <div class=\"acadtf__nav\">\n            <button type=\"button\" class=\"acadtf__btn acadtf__btn--ghost\" data-nav=\"prev\" disabled>Back<\/button>\n            <button type=\"button\" class=\"acadtf__btn\" data-nav=\"next\" disabled>Next<\/button>\n          <\/div>\n\n          <p class=\"acadtf__footnote\">* Required fields<\/p>\n        <\/form>\n\n        <!-- Thank you page -->\n        <div id=\"acadtf_6a91df55a9a9b__result\" class=\"acadtf__result\" hidden aria-live=\"polite\" aria-atomic=\"true\">\n          <div class=\"acadtf__result-hero\" aria-hidden=\"true\"><\/div>\n          <h2 class=\"acadtf__result-title\"><\/h2>\n          <p class=\"acadtf__result-text\"><\/p>\n        <\/div>\n\n        <!-- Popup telefono -->\n        <div id=\"acadtf_6a91df55a9a9b__toaster\" class=\"acadtf__toaster\" aria-live=\"polite\" aria-atomic=\"true\"><\/div>\n\n      <\/div>\n\n      <!-- RIGHT: SIDE PANEL -->\n      <aside class=\"acadtf__right\" aria-live=\"polite\" aria-atomic=\"true\">\n        <div class=\"acadtf__side\">\n          <h3 class=\"acadtf__side-title\" id=\"acadtf_6a91df55a9a9b__side_title\">Need help? Contact us:<\/h3>\n\n          <div id=\"acadtf_6a91df55a9a9b__side_instructions\" class=\"acadtf__side-instructions\" hidden>\n            <p>If you have any questions during the trial period, please visit our <a href=\"\/en\/request-assistance\/\" target=\"_blank\" rel=\"noopener\">Help Center<\/a> or contact our <strong>Support team for free<\/strong> (for professionals only)          <\/p><\/div>\n\n          <ul class=\"acadtf__contact-list\" aria-label=\"Need help? Contact us:\">\n            <li class=\"acadtf__contact-item\">\n              <img decoding=\"async\" class=\"acadtf__contact-icn\" src=\"https:\/\/arredocad.com\/wp-content\/uploads\/2026\/01\/ArredoCAD_Icona_contatti3.svg\" alt=\"Live chat\" loading=\"lazy\">\n              <span class=\"acadtf__contact-txt\">Live chat (bottom right)<\/span>\n            <\/li>\n\n            <li class=\"acadtf__contact-item\">\n              <img decoding=\"async\" class=\"acadtf__contact-icn\" src=\"https:\/\/arredocad.com\/wp-content\/uploads\/2026\/01\/ArredoCAD_Icona_contatti1.svg\" alt=\"Phone\" loading=\"lazy\">\n              <a class=\"acadtf__contact-link\" href=\"tel:+39072126465\">0039 0721 26465<\/a>\n            <\/li>\n\n            <li class=\"acadtf__contact-item\">\n              <img decoding=\"async\" class=\"acadtf__contact-icn\" src=\"https:\/\/arredocad.com\/wp-content\/uploads\/2026\/01\/ArredoCAD_Icona_contatti2.svg\" alt=\"Email\" loading=\"lazy\">\n              <a class=\"acadtf__contact-link\" href=\"mailto:info@arredocad.com\">info@arredocad.com<\/a>\n            <\/li>\n          <\/ul>\n\n          <!-- EXTRA (dinamico in base alla professione) -->\n          <div id=\"acadtf_6a91df55a9a9b__side_extra\" class=\"acadtf__side-extra\" hidden><\/div>\n        <\/div>\n      <\/aside>\n    <\/div>\n  <\/div>\n<\/section>\n\n<style>\n\/* ====== ARREDOCAD TRIAL &ndash; UI ====== *\/\n#acadtf_6a91df55a9a9b.acadtf {\n  --brand:#00a9d4; --brand-600:#0598bd; --ink:#101114; --muted:#616773;\n  --bg:#f6f9fb; --card:#ffffff; --ok:#12b886; --error:#ef4444;\n  --radius:14px; --shadow:0 10px 25px rgba(16,17,20,.06); --shadow-2:0 6px 16px rgba(16,17,20,.08);\n  color:var(--ink); background:var(--bg); position:relative; padding:60px 0 50px;\n  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,\"Apple Color Emoji\",\"Segoe UI Emoji\";\n}\n\/*#acadtf_6a91df55a9a9b.full-bleed{min-height:1000px; width:100vw; margin-left:50%; transform:translateX(-50%);}*\/\n#acadtf_6a91df55a9a9b.full-bleed{min-height:1000px; width:100vw; margin-left: calc(50% - 50vw); \/* niente transform *\/\n}\n#acadtf_6a91df55a9a9b .acadtf__wrap{width:min(1200px,92vw); margin:0 auto;}\n\n#acadtf_6a91df55a9a9b .acadtf__header{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:22px;}\n#acadtf_6a91df55a9a9b .acadtf__title h1{margin:0 0 6px; font-size:clamp(22px,2.2vw,32px);}\n#acadtf_6a91df55a9a9b .acadtf__title p{margin:0; color:var(--muted);}\n\n#acadtf_6a91df55a9a9b .acadtf__progress{flex:0 0 420px;}\n#acadtf_6a91df55a9a9b .acadtf__steps{display:flex; justify-content:space-between; gap:8px; margin-bottom:25px;}\n#acadtf_6a91df55a9a9b .acadtf__step{display:flex; flex-direction:column; align-items:center; gap:6px; font-size:12px; color:var(--muted);}\n#acadtf_6a91df55a9a9b .acadtf__step span{display: flex;flex-direction: column;align-items: center; width:28px; height:28px; border-radius:999px; background:#e8f7fb; color:var(--brand); font-weight:700; box-shadow:inset 0 0 0 2px var(--brand);}\n#acadtf_6a91df55a9a9b .acadtf__step em{font-style:normal; font-size:11px; opacity:.9;}\n#acadtf_6a91df55a9a9b .acadtf__step.is-active span{background:var(--brand); color:#fff;}\n#acadtf_6a91df55a9a9b .acadtf__step.is-active span em{color:var(--brand);}\n#acadtf_6a91df55a9a9b .acadtf__step.is-done span{background:#eafff7; color:var(--ok); box-shadow:inset 0 0 0 2px var(--ok);}\n#acadtf_6a91df55a9a9b .acadtf__bar{height:6px; border-radius:999px; background:#e9eef3; overflow:hidden;}\n#acadtf_6a91df55a9a9b .acadtf__bar i{display:block; height:100%; width:0%; background:linear-gradient(90deg,var(--brand),var(--brand-600)); transition:width .35s ease;}\n\n#acadtf_6a91df55a9a9b .acadtf__grid{display:grid; grid-template-columns:1.6fr .9fr; gap:28px;}\n#acadtf_6a91df55a9a9b .acadtf__left{background:var(--card); border-radius:var(--radius); padding:22px; box-shadow:var(--shadow);}\n#acadtf_6a91df55a9a9b .acadtf__right{position:relative;}\n#acadtf_6a91df55a9a9b .acadtf__side{position:sticky; top:24px; background:#0e1a21; color:#e6f6fb; border-radius:var(--radius); padding:22px; box-shadow:var(--shadow-2);}\n#acadtf_6a91df55a9a9b .acadtf__side-title{margin:0 0 10px; font-size:clamp(18px,1.6vw,22px); color:#e6f6fb;}\n#acadtf_6a91df55a9a9b .acadtf__side-list{margin:0; padding:0 0 0 18px;}\n#acadtf_6a91df55a9a9b .acadtf__side-list li{margin:6px 0;}\n#acadtf_6a91df55a9a9b .acadtf__side-note{margin-top:12px; font-size:12px; opacity:.8;}\n\n#acadtf_6a91df55a9a9b fieldset{border:0; padding:0; margin:0;}\n#acadtf_6a91df55a9a9b legend{font-weight:700; font-size:clamp(18px,1.8vw,22px); margin-bottom:6px;}\n#acadtf_6a91df55a9a9b .acadtf__hint{color:var(--muted); margin:0 0 16px;}\n#acadtf_6a91df55a9a9b .acadtf__hint--phone{margin-top:14px;}\n\n#acadtf_6a91df55a9a9b .acadtf__step-panel{display:none; opacity:0; transform:translateY(8px); transition:opacity .25s ease, transform .25s ease;}\n#acadtf_6a91df55a9a9b .acadtf__step-panel.is-visible{display:block; opacity:1; transform:translateY(0);}\n\n#acadtf_6a91df55a9a9b label{display:block; font-size:14px;}\n#acadtf_6a91df55a9a9b input[type=\"text\"], #acadtf_6a91df55a9a9b input[type=\"email\"], #acadtf_6a91df55a9a9b input[type=\"tel\"], #acadtf_6a91df55a9a9b select{\n  width:100%; height:42px; border-radius:12px; border:1px solid #dbe3ea; background:#fff; padding:0 12px; font-size:14px; outline:none;\n}\n#acadtf_6a91df55a9a9b input:focus, #acadtf_6a91df55a9a9b select:focus{border-color:var(--brand); box-shadow:0 0 0 3px rgba(0,169,212,.15);}\n#acadtf_6a91df55a9a9b select{padding-right:28px; background-image:linear-gradient(45deg, transparent 50%, #98a2ad 50%), linear-gradient(135deg, #98a2ad 50%, transparent 50%); background-position: calc(100% - 18px) 17px, calc(100% - 12px) 17px; background-size:6px 6px, 6px 6px; background-repeat:no-repeat;}\n\n#acadtf_6a91df55a9a9b .acadtf__formgrid{display:grid; grid-template-columns:repeat(2, 1fr); gap:12px;}\n#acadtf_6a91df55a9a9b .acadtf__formgrid > div:last-child:nth-child(odd){ grid-column: 1 \/ -1; }\n\n\/* =========================================\n   TELEFONO + VERIFICA + OTP &mdash; Layout allineato\n   Strategia: grid esterna a 3 righe (label \/ input \/ error)\n   con subgrid sui wrapper per garantire allineamento perfetto\n   ========================================= *\/\n#acadtf_6a91df55a9a9b .acadtf__phonewrap{margin-top:18px;}\n\n\/* Grid esterna: 2 colonne, 3 righe esplicite (label \/ input \/ error) *\/\n#acadtf_6a91df55a9a9b .acadtf__phonegrid{\n  display:grid;\n  grid-template-columns: minmax(0, 1fr) minmax(130px, 170px);\n  grid-template-rows: auto 42px auto;\n  column-gap:12px;\n  row-gap:6px;\n}\n\n\/* Ogni wrapper colonna usa subgrid: eredita le 3 righe dal genitore *\/\n#acadtf_6a91df55a9a9b .acadtf__phonegrid > div{\n  display:grid;\n  grid-template-rows: subgrid;\n  grid-row: 1 \/ span 3;\n  row-gap:0;\n  min-width:0;\n}\n\n\/* Label allineate in basso nella riga 1 *\/\n#acadtf_6a91df55a9a9b .acadtf__phonegrid > div > label{\n  margin:0;\n  align-self:end;\n  line-height:1.4;\n}\n\n\/* Errori: vanno nella riga 3, sotto l'input *\/\n#acadtf_6a91df55a9a9b .acadtf__phonegrid > div > .error-msg{\n  grid-row:3;\n  margin-top:4px;\n}\n\n\/* Fallback per browser senza supporto subgrid (Safari < 16, ecc.) *\/\n@supports not (grid-template-rows: subgrid){\n  #acadtf_6a91df55a9a9b .acadtf__phonegrid{\n    grid-template-rows: none;\n    align-items:end;\n  }\n  #acadtf_6a91df55a9a9b .acadtf__phonegrid > div{\n    display:flex;\n    flex-direction:column;\n    justify-content:flex-end;\n  }\n  #acadtf_6a91df55a9a9b .acadtf__phonegrid > div > label{\n    margin:0 0 6px;\n  }\n}\n\n\/* Riga interna telefono: prefisso | numero | bottone VERIFICA *\/\n#acadtf_6a91df55a9a9b .acadtf__phoneinline{\n  display:grid;\n  grid-template-columns: 130px minmax(0, 1fr) auto;\n  gap:8px;\n  align-items:stretch;\n}\n\n\/* Tutti gli elementi della riga telefono hanno la stessa altezza *\/\n#acadtf_6a91df55a9a9b .acadtf__phoneinline > select,\n#acadtf_6a91df55a9a9b .acadtf__phoneinline > input,\n#acadtf_6a91df55a9a9b .acadtf__phoneinline > .acadtf__btn{\n  height:42px;\n  margin:0;\n  min-width:0;\n}\n\n#acadtf_6a91df55a9a9b .acadtf__phoneinline > select{\n  width:100%;\n  padding-left:10px;\n}\n\n#acadtf_6a91df55a9a9b .acadtf__phoneinline > input{\n  width:100%;\n}\n\n\/* Bottone VERIFICA: stesso stile dei campi, coerente *\/\n#acadtf_6a91df55a9a9b .acadtf__phoneinline > .acadtf__btn{\n  padding:0 18px;\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  white-space:nowrap;\n  line-height:1;\n  border-radius:12px;\n}\n\n\/* OTP input: stessa altezza dei campi a sinistra *\/\n#acadtf_6a91df55a9a9b .acadtf__phonegrid > div > input{\n  height:42px;\n  margin:0;\n}\n\n#acadtf_6a91df55a9a9b .acadtf__consents{margin-top:30px; display:grid; gap:8px;}\n#acadtf_6a91df55a9a9b .acadtf__chk{display:flex; align-items:center; gap:8px; font-size:14px;}\n#acadtf_6a91df55a9a9b .acadtf__chk input{width:18px; height:18px;}\n\n#acadtf_6a91df55a9a9b .acadtf__nav{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:18px;}\n#acadtf_6a91df55a9a9b .acadtf__btn{appearance:none; border:0; background:var(--brand); color:#fff; border-radius:12px; padding:12px 18px; font-weight:700; box-shadow:var(--shadow); cursor:pointer; transition:transform .06s ease, opacity .2s;}\n#acadtf_6a91df55a9a9b .acadtf__btn[disabled]{opacity:.4; pointer-events:none;}\n#acadtf_6a91df55a9a9b .acadtf__btn--ghost{background:transparent; color:var(--ink); box-shadow:none; border:1px solid #dbe3ea;}\n#acadtf_6a91df55a9a9b .acadtf__btn--ghost[disabled]{visibility: hidden;}\n#acadtf_6a91df55a9a9b .acadtf__footnote{margin:12px 0 0; font-size:12px; color:var(--muted);}\n\n\/* CARD SEGMENTS (2 per riga, evidenza verde alla selezione) *\/\n#acadtf_6a91df55a9a9b .acadtf__cards{display:grid; grid-template-columns:repeat(2, 1fr); gap:8px;}\n#acadtf_6a91df55a9a9b .acadtf__card{display:flex; align-items:center; gap:10px; background:#f7fbfd; border:2px solid transparent; border-radius:12px; padding: 5px; cursor:pointer; user-select:none; transition:border-color .2s, transform .06s ease;}\n#acadtf_6a91df55a9a9b .acadtf__card:hover{transform:translateY(-1px);}\n#acadtf_6a91df55a9a9b .acadtf__card input{position:absolute; opacity:0; pointer-events:none;}\n#acadtf_6a91df55a9a9b .acadtf__card-txt{font-weight:600;}\n#acadtf_6a91df55a9a9b .acadtf__check{margin-left:auto; width:18px; height:18px; border-radius:50%; background:#e9eef3; position:relative;}\n#acadtf_6a91df55a9a9b .acadtf__card:has(input:checked){border-color:var(--brand); background:#ffffff;}\n#acadtf_6a91df55a9a9b .acadtf__card:has(input:checked) .acadtf__check{background:#eafff7;}\n#acadtf_6a91df55a9a9b .acadtf__card:has(input:checked) .acadtf__check::after{content:\"\"; position:absolute; inset:3px; background:var(--ok); border-radius:50%;}\n#acadtf_6a91df55a9a9b .error-msg-group{margin-top:8px; font-size:12px; color:var(--error);}\n#acadtf_6a91df55a9a9b .alt-error.error-msg{margin-top: 8px; padding: 0 5px; font-size: 11px; background-color: #ff0303b0; color: #fff; border-radius: 10px;}\n#acadtf_6a91df55a9a9b .has-error{outline:2px solid var(--error); outline-offset:4px; border-radius:12px;}\n\n@media (max-width:1024px){\n  #acadtf_6a91df55a9a9b .acadtf__grid{grid-template-columns:1fr;}\n  #acadtf_6a91df55a9a9b .acadtf__right{order:-1;}\n  #acadtf_6a91df55a9a9b .acadtf__progress{flex:1;}\n}\n@media (max-width:720px){\n  #acadtf_6a91df55a9a9b .acadtf__formgrid{grid-template-columns:1fr;}\n  #acadtf_6a91df55a9a9b .acadtf__phonegrid{\n    grid-template-columns:1fr;\n    grid-template-rows:none;\n  }\n  #acadtf_6a91df55a9a9b .acadtf__phonegrid > div{\n    display:flex;\n    flex-direction:column;\n    grid-row:auto;\n  }\n  #acadtf_6a91df55a9a9b .acadtf__phonegrid > div > label{\n    margin:0 0 6px;\n  }\n  #acadtf_6a91df55a9a9b .acadtf__phoneinline{\n    grid-template-columns: 110px minmax(0, 1fr) auto;\n  }\n}\n@media (prefers-reduced-motion:reduce){\n  #acadtf_6a91df55a9a9b *{transition:none !important; animation:none !important;}\n}\n\n#acadtf_6a91df55a9a9b .is-hidden{display:none !important;}\n\n#acadtf_6a91df55a9a9b .acadtf__result{\n  min-height:360px;\n  opacity:0; transform:translateY(8px);\n}\n#acadtf_6a91df55a9a9b .acadtf__result[hidden]{ display:none !important; }\n#acadtf_6a91df55a9a9b .acadtf__result:not([hidden]){\n  display:block;\n  animation:acadtfFade .25s ease forwards;\n}\n#acadtf_6a91df55a9a9b .acadtf__result-hero{\n  width:72px; height:72px; border-radius:18px; margin-bottom:14px;\n  background:linear-gradient(135deg, var(--brand), var(--brand-600));\n  box-shadow:var(--shadow-2);\n  display:grid; place-items:center;\n  color:#fff; \/* l'icona usa currentColor *\/\n}\n#acadtf_6a91df55a9a9b .acadtf__result-title{font-size:clamp(20px,2vw,26px); margin:0 0 10px;}\n#acadtf_6a91df55a9a9b .acadtf__result-text{font-size:16px; color:var(--muted); margin:0;}\n\n@keyframes acadtfFade{to{opacity:1; transform:translateY(0);}}\n\n\/* SVG icona dentro l'hero *\/\n#acadtf_6a91df55a9a9b .acadtf__result-icn{ width:34px; height:34px; display:block; }\n#acadtf_6a91df55a9a9b .acadtf__result-icn *{ fill:currentColor; }\n\n\/* Gradiente per stato *\/\n#acadtf_6a91df55a9a9b .acadtf__result.is-sent       .acadtf__result-hero{ background:linear-gradient(135deg,#10b981,#0ea5e9); }\n#acadtf_6a91df55a9a9b .acadtf__result.is-processing .acadtf__result-hero{ background:linear-gradient(135deg,#f59e0b,#f97316); }\n#acadtf_6a91df55a9a9b .acadtf__result.is-error      .acadtf__result-hero{ background:linear-gradient(135deg,#ef4444,#f97316); }\n\n\/* POPUP TELEFONO *\/\n\/* TOASTER (popup) IN ALTO CENTRATO *\/\n#acadtf_6a91df55a9a9b .acadtf__toaster{\n  position: fixed;\n  top: calc(env(safe-area-inset-top, 0px) + 30px); \/* notch-safe *\/\n  left: 50%;\n  transform: translateX(-50%);\n  width: min(640px, 92vw);\n  display: flex;\n  flex-direction: column;\n  gap: 10px;\n  z-index: 100000; \/* sopra la admin bar *\/\n  align-items: stretch;\n  pointer-events: none; \/* lascia passare i click sotto, tranne sui toast *\/\n}\n\n.acadtf__toaster span {\n\tmargin: 15px 0 !important;\n}\n\n\/* Se c'&egrave; la admin bar di WP, sposta un po' pi&ugrave; gi&ugrave; *\/\nbody.admin-bar #acadtf_6a91df55a9a9b .acadtf__toaster{\n  top: calc(32px + env(safe-area-inset-top, 0px) + 25px);\n}\n\n\/* Toast card *\/\n#acadtf_6a91df55a9a9b .acadtf__toast{\n  display:flex; align-items:center; gap:10px;\n  background:#0e1a21; color:#e6f6fb;\n  border-radius:12px; padding:12px 14px;\n  box-shadow:var(--shadow-2);\n  border-left:4px solid var(--brand);\n  pointer-events: auto; \/* riabilita click sulla card *\/\n  animation: acadtfToastIn .2s ease-out;\n}\n\n\/* Variazioni colore bordo *\/\n#acadtf_6a91df55a9a9b .acadtf__toast--success{ border-left-color:#10b981; }\n#acadtf_6a91df55a9a9b .acadtf__toast--info{    border-left-color:var(--brand); }\n#acadtf_6a91df55a9a9b .acadtf__toast--error{   border-left-color:#ef4444; }\n\n\/* Icona & close *\/\n#acadtf_6a91df55a9a9b .acadtf__toast-icn{ width:18px; height:18px; color:#fff; flex:0 0 18px; }\n#acadtf_6a91df55a9a9b .acadtf__toast-icn *{ fill: currentColor; }\n#acadtf_6a91df55a9a9b .acadtf__toast-close{\n  margin-left:auto; background:transparent; border:0; color:inherit;\n  cursor:pointer; font-weight:700; opacity:.8; padding: 5px 5px 0 20px;\n}\n#acadtf_6a91df55a9a9b .acadtf__toast-close:hover{ opacity:1; }\n\n\/* Animazioni: slide dall'alto *\/\n@keyframes acadtfToastIn{ from{opacity:0; transform: translateY(-8px);} to{opacity:1; transform:none;} }\n@keyframes acadtfToastOut{ to{opacity:0; transform: translateY(-8px);} }\n\n\/* ============================\n   RIGHT BOX &ndash; CONTATTI (NEW)\n   ============================ *\/\n#acadtf_6a91df55a9a9b .acadtf__contact-list{\n  list-style:none;\n  margin:0;\n  padding:0;\n  display:grid;\n  gap:12px;\n}\n#acadtf_6a91df55a9a9b .acadtf__contact-item{\n  display:flex;\n  align-items:center;\n  gap:10px; \/* (dopo l'immagine) 10px *\/\n  font-size:14px;\n  line-height:1.2;\n}\n#acadtf_6a91df55a9a9b .acadtf__contact-icn{\n  width:18px; height:18px; \/* simile alla scritta *\/\n  flex:0 0 18px;\n  display:block;\n}\n#acadtf_6a91df55a9a9b .acadtf__contact-link{\n  color:inherit;\n  text-decoration:underline;\n  text-underline-offset:2px;\n}\n#acadtf_6a91df55a9a9b .acadtf__contact-link:hover{ opacity:.9; }\n\n\/* ============================\n   RIGHT BOX &ndash; INSTRUCTIONS (STEP 3)\n   ============================ *\/\n#acadtf_6a91df55a9a9b .acadtf__side-instructions{\n  margin:0 0 16px;\n  font-size:14px;\n  line-height:1.45;\n  color:inherit;\n}\n#acadtf_6a91df55a9a9b .acadtf__side-instructions p{ margin:0 0 12px; }\n#acadtf_6a91df55a9a9b .acadtf__side-instructions a{\n  color:inherit;\n  text-decoration:underline;\n  text-underline-offset:2px;\n}\n#acadtf_6a91df55a9a9b .acadtf__side-instructions a:hover{ opacity:.9; }\n\n\/* ============================\n   RIGHT BOX &ndash; EXTRA (DYNAMIC)\n   ============================ *\/\n#acadtf_6a91df55a9a9b .acadtf__side-extra{\n  margin-top:30px; \/* distanza dal blocco mail *\/\n  font-size:14px;\n  line-height:1.45;\n  color:inherit;\n}\n#acadtf_6a91df55a9a9b .acadtf__side-extra p{ margin:0 0 12px; }\n#acadtf_6a91df55a9a9b .acadtf__side-extra p:last-child{ margin-bottom:0; }\n#acadtf_6a91df55a9a9b .acadtf__side-extra a{\n  color:inherit;\n  text-decoration:underline;\n  text-underline-offset:2px;\n}\n#acadtf_6a91df55a9a9b .acadtf__side-extra a:hover{ opacity:.9; }\n\n<\/style>\n\n<script>\n(() => {\n  const I18N = {\"step1_title\":\"Who are you?\",\"step1_hint\":\"Select your profession.\",\"step2_title\":\"Which programs do you use?\",\"step2_hint\":\"Select one or more programs.\",\"step3_title\":\"Your details\",\"step3_hint\":\"Please enter your contact information so we can provide you with <strong>free support.\",\"company_label\":\"Company name*\",\"side3_title\":\"Always by your side\",\"side3_body\":\"<p>If you have any questions during the trial period, please visit our <a href=\\\"\/en\/request-assistance\/\\\" target=\\\"_blank\\\" rel=\\\"noopener\\\">Help Center or contact our <strong>Support team for free (for professionals only)\",\"side_title\":\"Need help? Contact us:\",\"chat_text\":\"Live chat (bottom right)\",\"phone_text\":\"0039 0721 26465\",\"mail_text\":\"info@arredocad.com\",\"chat_alt\":\"Live chat\",\"phone_alt\":\"Phone\",\"mail_alt\":\"Email\",\"extra_prod\":{\"p1\":\"Are you a manufacturer of modular furniture and have you a catalog?<br>Find out all the advantages of <a href=\\\"\/en\/arredocad-producers\/\\\" target=\\\"_blank\\\">ArredoCAD Producer!\",\"p2\":\"Are you a manufacturer of furnishing accessories, bathroom accessories, lighting or coverings?<br><a href=\\\"\/en\/partners\/\\\" target=\\\"_blank\\\">Become an ArredoCAD Partner!\"},\"extra_students\":\"Do you attend interior design courses at School or University? Find out all <strong>advantages of <a href=\\\"\/en\/arredocad-students\/\\\" target=\\\"_blank\\\">of FutureCard!\",\"extra_school\":\"Are you the master or the teacher of a state or private school?<br>Discover all the <strong>advantages of the <a href=\\\"\/en\/arredocad-institutes\/\\\" target=\\\"_blank\\\">EDU ArredoCAD licences!\",\"extra_private\":\"ArredoCAD has been especially created for interior design professionals and it is <strong>not recommended for non-specialists.\",\"extra_other\":{\"p1\":\"\",\"p2\":\"\"},\"section_aria\":\"ArredoCAD trial request\",\"hero_title\":\"Request the ArredoCAD trial\",\"hero_steps\":\"3 steps\",\"step1_aria\":\"Who are you\",\"step2_aria\":\"Programs you use\",\"step3_aria\":\"Your details\",\"label_name\":\"First name*\",\"label_surname\":\"Last name*\",\"label_email\":\"Email*\",\"label_city\":\"City*\",\"label_country\":\"Country*\",\"label_province\":\"State\/Province\",\"country_placeholder\":\"Select a country&hellip;\",\"phone_hint\":\"Enter your mobile number, click on <strong>Verify to receive the code by SMS, then enter it in the <strong>Verification code field\",\"label_mobile\":\"Mobile number*\",\"ccode_aria\":\"International dialing code\",\"phone_placeholder\":\"Number\",\"sms_verify\":\"VERIFY\",\"sms_sending\":\"Sending&hellip;\",\"sms_send_countdown\":\"SEND\",\"label_otp\":\"Verification code*\",\"otp_placeholder\":\"Enter the code\",\"privacy_text\":\"I have read and accept the <a target=\\\"_blank\\\" href=\\\"\/en\/privacy-policy\/\\\">privacy policy*\",\"nav_prev\":\"Back\",\"nav_next\":\"Next\",\"nav_submit\":\"Send request\",\"footnote\":\"* Required fields\",\"stepper_profile\":\"Profile\",\"stepper_programs\":\"Programs\",\"stepper_data\":\"Details\",\"outcome_sent_title\":\"Request sent\",\"outcome_sent_text\":\"Thank you, your request has been sent. You will shortly receive an email with the instructions to download and activate the ArredoCAD trial.\",\"outcome_proc_title\":\"Request in progress\",\"outcome_proc_text\":\"Thank you, your request will be processed within the next 24 hours or you will be contacted by our Customer Support.\",\"outcome_err_title\":\"An error occurred\",\"outcome_err_text\":\"Your request cannot be processed at the moment. Please try again later.\",\"toast_close\":\"Close\",\"err_prof\":\"Select your profession.\",\"err_prog\":\"Select at least one program.\",\"err_privacy\":\"You must accept the privacy policy.\",\"err_otp_required\":\"Verify your number using the SMS code.\",\"sms_err_phone\":\"Enter a valid number.\",\"sms_sent\":\"SMS sent. Enter the code in the \\\"Verification code\\\" field.\",\"sms_send_failed\":\"SMS sending failed.\",\"sms_send_error\":\"Error while sending the SMS.\",\"sms_code_required\":\"Enter the code received by SMS.\",\"sms_verified\":\"Number verified successfully.\",\"sms_invalid_code\":\"Invalid code. Please try again.\",\"sms_check_error\":\"Error while verifying the code.\",\"err_email_invalid\":\"Enter a valid email address (e.g. name@domain.com).\",\"privacy_accepted\":\"Accepted\",\"privacy_refused\":\"Refused\"};\n  const IS_EN = true;\n\n  const root = document.getElementById('acadtf_6a91df55a9a9b');\n  const form = root.querySelector('form.acadtf__form');\n\n  \/\/ Pannelli\n  const panels = [\n    root.querySelector('fieldset[data-step=\"prof\"]'),\n    root.querySelector('fieldset[data-step=\"prog\"]'),\n    root.querySelector('fieldset[data-step=\"data\"]')\n  ].filter(Boolean);\n\n  \/\/ Pulsanti\n  const btnPrev = root.querySelector('.acadtf__nav [data-nav=\"prev\"]');\n  const btnNext = root.querySelector('.acadtf__nav [data-nav=\"next\"]');\n\n  \/\/ Stepper\n  const stepsWrap = root.querySelector('.acadtf__steps');\n  const bar = root.querySelector('.acadtf__bar i');\n\n  \/\/ Containers\n  const profCards = document.getElementById('acadtf_6a91df55a9a9b_prof_cards');\n  const progCards = document.getElementById('acadtf_6a91df55a9a9b_prog_cards');\n\n  \/\/ Right extra\n  const sideExtra = document.getElementById('acadtf_6a91df55a9a9b__side_extra');\n\n  const sideTitleEl = document.getElementById('acadtf_6a91df55a9a9b__side_title');\n  const sideInstructions = document.getElementById('acadtf_6a91df55a9a9b__side_instructions');\n  const SIDE_TITLES = {\n    help: \"Need help? Contact us:\",\n    info: \"Always by your side\"  };\n\n  \/\/ Dynamic HTML templates (server-side localized)\n  const EXTRA = {\n    prod: {\n      p1: \"Are you a manufacturer of modular furniture and have you a catalog?<br>Find out all the advantages of <a href=\\\"\\\/en\\\/arredocad-producers\\\/\\\" target=\\\"_blank\\\">ArredoCAD Producer<\\\/a>!\",\n      p2: \"Are you a manufacturer of furnishing accessories, bathroom accessories, lighting or coverings?<br><a href=\\\"\\\/en\\\/partners\\\/\\\" target=\\\"_blank\\\">Become an ArredoCAD Partner<\\\/a>!\"    },\n    students: \"Do you attend interior design courses at School or University? Find out all <strong>advantages<\\\/strong> of <a href=\\\"\\\/en\\\/arredocad-students\\\/\\\" target=\\\"_blank\\\">of FutureCard<\\\/a>!\",\n    school:   \"Are you the master or the teacher of a state or private school?<br>Discover all the <strong>advantages<\\\/strong> of the <a href=\\\"\\\/en\\\/arredocad-institutes\\\/\\\" target=\\\"_blank\\\">EDU ArredoCAD licences<\\\/a>!\",\n    priv:     \"ArredoCAD has been especially created for interior design professionals and it is <strong>not recommended<\\\/strong> for non-specialists.\",\n    other: {\n      p1: \"\",\n      p2: \"\"    }\n  };\n\n  function norm(s){\n    return String(s || '')\n      .toLowerCase()\n      .normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'') \/\/ rimuove accenti\n      .replace(\/\\s+\/g,' ')\n      .trim();\n  }\n\n  function detectProfKey(label){\n    const t = norm(label);\n    \/\/ Produttore mobili (match robusto)\n    if (t.includes('produttore') && t.includes('mobili')) return 'prod';\n    if (t.includes('manufacturer') && t.includes('furniture')) return 'prod';\n    \/\/ Studenti\n    if (t.includes('student')) return 'students';\n    \/\/ Scuola \/ Docente\n\tif (t.includes('scuola') || t.includes('docente') || t.includes('teacher') || t.includes('school')) return 'school';\n    \/\/ Privati\n    if (t.includes('privat') || t.includes('private')) return 'priv';\n    \/\/ Default\n    return 'other';\n  }\n\n  function translateProfessionLabel(label){\n    if (!IS_EN) return String(label || '');\n\n    const original = String(label || '').trim();\n    const t = norm(original);\n    if (!t) return original;\n\n    const exactMap = {\n      'architetto': 'Architect',\n      'interior designer': 'Interior Designer',\n      'designer di interni': 'Interior Designer',\n      'arredatore': 'Interior Decorator',\n      'progettista': 'Designer',\n      'designer': 'Designer',\n      'geometra': 'Surveyor',\n      'ingegnere': 'Engineer',\n      'rivenditore': 'Retailer',\n      'negoziante': 'Retailer',\n      'cliente finale': 'End customer',\n      'privato': 'Private user',\n      'studente': 'Student',\n      'docente': 'Teacher \/ School',\n      'scuola': 'School',\n      'istituto': 'School',\n      'universita': 'University',\n      'universit&agrave;': 'University',\n      'agenzia immobiliare': 'Real estate agency',\n      'impresa edile': 'Construction company',\n      'libero professionista': 'Self-employed professional',\n      'libero proffessionista': 'Self-employed professional',\n      'musei \/ gallerie': 'Museums \/ Galleries',\n      'musei\/gallerie': 'Museums \/ Galleries',\n      'produttore su misura': 'Custom manufacturer',\n      'negozio mobili': 'Furniture store',\n      'negozio rivestimenti': 'Coverings store',\n      'produttore mobili': 'Furniture manufacturer',\n      'produttore': 'Manufacturer',\n      'altro': 'Other',\n      'altro professionista': 'Other professional'\n    };\n\n    if (exactMap[t]) return exactMap[t];\n\n    if (t.includes('agenzia') && t.includes('immob')) return 'Real estate agency';\n    if (t.includes('impresa') && t.includes('edil')) return 'Construction company';\n    if (t.includes('libero') && (t.includes('profession') || t.includes('proffession'))) return 'Self-employed professional';\n    if (t.includes('muse') || t.includes('galleri')) return 'Museums \/ Galleries';\n    if (t.includes('produttore') && t.includes('su misura')) return 'Custom manufacturer';\n    if (t.includes('negozio') && t.includes('mobili')) return 'Furniture store';\n    if (t.includes('negozio') && t.includes('rivestiment')) return 'Coverings store';\n    if (t.includes('produttore') && t.includes('mobili')) return 'Furniture manufacturer';\n    if (t.includes('produttore') && (t.includes('complement') || t.includes('bagno') || t.includes('illuminazione') || t.includes('rivestiment'))) return 'Accessories manufacturer';\n    if (t.includes('stud')) return 'Student';\n    if (t.includes('docent')) return 'Teacher \/ School';\n    if (t.includes('scuola') || t.includes('istituto')) return 'School';\n    if (t.includes('privat')) return 'Private user';\n    if (t.includes('architett')) return 'Architect';\n    if (t.includes('geometr')) return 'Surveyor';\n    if (t.includes('ingegner')) return 'Engineer';\n    if (t.includes('arredator')) return 'Interior Decorator';\n    if (t.includes('interior')) return 'Interior Designer';\n    if (t.includes('designer')) return 'Designer';\n    if (t.includes('rivenditor')) return 'Retailer';\n\n    return original;\n  }\n\n  function translateProgramLabel(label){\n    if (!IS_EN) return String(label || '');\n\n    const original = String(label || '').trim();\n    const t = norm(original);\n    if (!t) return original;\n\n    const exactMap = {\n      'nessuno': 'None',\n      'nessuna': 'None',\n      'altro': 'Other'\n    };\n\n    if (exactMap[t]) return exactMap[t];\n    return original;\n  }\n\n  function updateSideExtra(){\n    if (!sideExtra) return;\n    if (current !== 0){\n      sideExtra.hidden = true;\n      sideExtra.innerHTML = '';\n      return;\n    }\n    const checked = root.querySelector('input[name=\"professione\"]:checked');\n    if (!checked){\n      sideExtra.hidden = true;\n      sideExtra.innerHTML = '';\n      return;\n    }\n    const label = checked.closest('label')?.querySelector('.acadtf__card-txt')?.textContent || '';\n    const key = detectProfKey(label);\n\n    let html = '';\n    if (key === 'prod'){\n      html = `<p>${EXTRA.prod.p1}<p>${EXTRA.prod.p2}`;\n    } else if (key === 'students'){\n      html = `<p>${EXTRA.students}`;\n    } else if (key === 'school'){\n      html = `<p>${EXTRA.school}`;\n    } else if (key === 'priv'){\n      html = `<p>${EXTRA.priv}`;\n    } else {\n      html = `<p>${EXTRA.other.p1}<p>${EXTRA.other.p2}`;\n    }\n\n    sideExtra.innerHTML = html;\n    sideExtra.hidden = false;\n  }\n\n  function updateSidePanel(){\n    \/\/ Titolo + istruzioni\n    if (sideTitleEl) sideTitleEl.textContent = (current === 2) ? SIDE_TITLES.info : SIDE_TITLES.help;\n    if (sideInstructions) sideInstructions.hidden = (current !== 2);\n\n    \/\/ Extra professione solo su step 1\n    if (current === 0) updateSideExtra();\n    else if (sideExtra){ sideExtra.hidden = true; sideExtra.innerHTML = ''; }\n  }\n\n  \/\/ Step 3, riferimenti\n  const inpNome   = document.getElementById('acadtf_6a91df55a9a9b_nome');\n  const inpCogn   = document.getElementById('acadtf_6a91df55a9a9b_cognome');\n  const inpRagione = document.getElementById('acadtf_6a91df55a9a9b_ragione');\n  const inpEmail  = document.getElementById('acadtf_6a91df55a9a9b_email');\n  const selNation = document.getElementById('acadtf_6a91df55a9a9b_nazione');\n  const telInput  = document.getElementById('acadtf_6a91df55a9a9b_tel');\n  const ccodeSel  = document.getElementById('acadtf_6a91df55a9a9b_ccode');\n  const otpInput  = document.getElementById('acadtf_6a91df55a9a9b_otp');\n  const smsBtn    = document.getElementById('acadtf_6a91df55a9a9b_smsbtn');\n  const chkPrivacy= document.getElementById('acadtf_6a91df55a9a9b_privacy');\n  const privacyErr= document.getElementById('acadtf_6a91df55a9a9b_privacy_err');\n\n  \/\/ Result \"page\"\n  const resultBox   = document.getElementById('acadtf_6a91df55a9a9b__result');\n  const resultHero  = resultBox?.querySelector('.acadtf__result-hero');\n  const resultTitle = resultBox?.querySelector('.acadtf__result-title');\n  const resultText  = resultBox?.querySelector('.acadtf__result-text');\n\n  \/\/ SVG inline (usa currentColor)\n  const ICONS = {\n    sent: `\n      <svg class=\"acadtf__result-icn\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n        <path d=\"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.2 13.2L7 11.4l1.4-1.4 2.4 2.4 4.9-4.9 1.4 1.4-6.3 6.3z\"\/>\n      \n    `,\n    processing: `\n      <svg class=\"acadtf__result-icn\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n        <path d=\"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM11 6h2v6l5 2.5-.9 1.8L11 13V6z\"\/>\n      \n    `,\n    error: `\n      <svg class=\"acadtf__result-icn\" viewBox=\"0 0 24 24\" aria-hidden=\"true\">\n        <path d=\"M1 21h22L12 2 1 21zm11-4h-2v2h2v-2zm0-8h-2v6h2V9z\"\/>\n      \n    `\n  };\n\t\n  \/\/ Controllo per mail\n  function isPlausibleEmail(email){\n\t  const v = String(email || '').trim();\n\n\t  if (!v) return false;\n\t  if (\/\\s\/.test(v)) return false;\n\t  if (v.length > 254) return false;\n\n\t  \/\/ deve avere almeno: testo@dominio.estensione\n\t  if (!\/^[^\\s@]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$\/.test(v)) return false;\n\n\t  const parts = v.split('@');\n\t  if (parts.length !== 2) return false;\n\n\t  const [local, domain] = parts;\n\n\t  \/\/ niente punti doppi o punto iniziale\/finale nella parte locale\n\t  if (!local || local.startsWith('.') || local.endsWith('.') || local.includes('..')) return false;\n\n\t  \/\/ dominio valido\n\t  if (!domain || domain.includes('..')) return false;\n\n\t  const labels = domain.split('.');\n\t  if (labels.length < 2) return false;\n\n\t  \/\/ ogni pezzo del dominio non deve essere vuoto\n\t  \/\/ e non deve iniziare o finire con \"-\"\n\t  if (labels.some(label => !label || label.startsWith('-') || label.endsWith('-'))) return false;\n\n\t  return true;\n\t}\n\n\tfunction validateEmailField(show = false){\n\t  const value = inpEmail?.value?.trim() || '';\n\t  const ok = isPlausibleEmail(value);\n\n\t  if (show || value) {\n\t\tsetFieldErrorById('acadtf_6a91df55a9a9b_email', ok ? '' : I18N.err_email_invalid);\n\t  }\n\n\t  return ok;\n  }\n\t\n  function pushDatalayerSuccess(professionLabel){\n\t  try {\n\t\twindow.dataLayer = window.dataLayer || [];\n\t\twindow.dataLayer.push({\n\t\t  event: 'submit_contact_form',\n\t\t  form_customer_type: professionLabel || ''\n\t\t});\n\t  } catch(e) {\n\t\t\/\/ no-op\n\t  }\n\t}\n\t\n\tfunction decodeHtmlEntities(str) {\n\t  const txt = document.createElement('textarea');\n\t  txt.innerHTML = str;\n\t  return txt.value;\n\t}\n\n  function showOutcome(kind='sent', customTitle='', customText=''){\n    const presets = {\n      sent: {\n        title: I18N.outcome_sent_title,\n        text : I18N.outcome_sent_text\n      },\n      processing: {\n        title: I18N.outcome_proc_title,\n        text : I18N.outcome_proc_text\n      },\n      error: {\n        title: I18N.outcome_err_title,\n        text : I18N.outcome_err_text\n      }\n    };\n    const cfg = presets[kind] || presets.error;\n\/*\n    \/\/ nascondo form, mostro box\n    form?.classList.add('is-hidden'); *\/\n    if (resultBox){\n      \/\/ classi di stato per gradient\n      resultBox.classList.remove('is-sent','is-processing','is-error');\n      resultBox.classList.add(kind==='sent' ? 'is-sent' : kind==='processing' ? 'is-processing' : 'is-error');\n\n      \/\/ testi + icona\n      resultTitle.textContent = decodeHtmlEntities(customTitle || cfg.title);\n\t  resultText.textContent  = decodeHtmlEntities(customText  || cfg.text);\n      if (resultHero) resultHero.innerHTML = ICONS[kind] || ICONS.error;\n\n  \/*    resultBox.hidden = false; *\/\n    }\n\n    \/\/ completa barra + stepper\n    if (bar) bar.style.width = '100%';\n    current = panels.length;\n    renderStepper();\n\n    \/\/ scroll in alto\n    root?.scrollIntoView({behavior:'smooth', block:'start'});\n  }\n\t\n  \/\/ Preparazione al link di redirect dopo invio FORM\n  function redirectToDownload(email, wsIdref){\n    const baseUrl = IS_EN\n      ? 'https:\/\/arredocad.com\/en\/book-session\/' \/\/link a destinazione CTA ENG\n      : 'https:\/\/arredocad.com\/it\/prenota-sessione\/';  \/\/link a destinazione CTA IT\n\n    const url = `${baseUrl}?email=${encodeURIComponent(email || '')}&wsIdref=${encodeURIComponent(wsIdref || '')}`;\n\n    setTimeout(() => {\n      window.location.href = url;\n    }, 0);\n  }\n\t\n  \/\/ Preparazione al link di redirect dopo invio FORM\n  function redirectToBookDemo(name, email){\n    const baseUrl = IS_EN\n      ? 'https:\/\/arredocad.com\/en\/book-session\/' \/\/link a destinazione CTA ENG\n      : 'https:\/\/arredocad.com\/it\/prenota-sessione\/';  \/\/link a destinazione CTA IT\n\n    \/\/ Passiamo \"name\" ed \"email\" cos&igrave; come li vuole Calendly.\n    \/\/ NB: \"name\" &egrave; una query var riservata di WordPress e di norma manderebbe\n    \/\/ la pagina di destinazione in 404. Per questo &egrave; NECESSARIO aggiungere\n    \/\/ in functions.php il filtro che neutralizza \"name\" solo su questa pagina\n    \/\/ (vedi snippet \"fix 404 prenota-sessione\"). Il parametro resta comunque\n    \/\/ nell'URL del browser, quindi Calendly pu&ograve; leggerlo lato client.\n    \/\/ URLSearchParams codifica gli spazi come \"+\" e la \"@\" come \"%40\".\n    const params = new URLSearchParams();\nif (name)  params.set('fullname', name);   \/\/ &larr; era: params.set('name', name)\nif (email) params.set('email', email);\n\n    const qs  = params.toString();\n    const url = qs ? `${baseUrl}?${qs}` : baseUrl;\n\n    setTimeout(() => {\n      window.location.href = url;\n    }, 0);\n  }\t\n\n  \/\/ --- POPUP TELEFONO ---\n  const toaster = document.getElementById('acadtf_6a91df55a9a9b__toaster');\n\n  function showToast(message, type='info', timeout=1000){\n    if(!toaster) return;\n\n    \/\/ icone inline SVG (usano currentColor)\n    const icons = {\n      success: `<svg class=\"acadtf__toast-icn\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zm-1.2 13.2L7 11.4l1.4-1.4 2.4 2.4 4.9-4.9 1.4 1.4-6.3 6.3z\"\/>`,\n      info:    `<svg class=\"acadtf__toast-icn\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M11 7h2v2h-2V7zm0 4h2v6h-2v-6zm1-9a10 10 0 110 20 10 10 0 010-20z\"\/>`,\n      error:   `<svg class=\"acadtf__toast-icn\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M1 21h22L12 2 1 21zm11 4h-2v-2h2v2zm0-4h-2V9h2v8z\"\/>`\n    };\n\n    const box = document.createElement('div');\n    box.className = `acadtf__toast acadtf__toast--${type}`;\n\n    \/\/ struttura toast\n    box.innerHTML = `\n      ${icons[type] || icons.info}\n      <span>${message}\n      <button class=\"acadtf__toast-close\" aria-label=\"${I18N.toast_close}\">&times;\n    `;\n\n    \/\/ chiusura manuale\n    box.querySelector('.acadtf__toast-close')?.addEventListener('click', dismiss);\n\n    \/\/ inserisco e avvio auto-hide\n    toaster.appendChild(box);\n    let timer = setTimeout(dismiss, timeout);\n\n    \/\/ pausa su hover\n    box.addEventListener('mouseenter', ()=> clearTimeout(timer));\n    box.addEventListener('mouseleave', ()=> timer = setTimeout(dismiss, 1200));\n\n    function dismiss(){\n      box.style.animation = 'acadtfToastOut .18s ease-in forwards';\n      setTimeout(()=> box.remove(), 180);\n    }\n  }\n\n  \/* === 2FA via proxy === *\/\n  const SMS = {\n    SEND_URL: '\/wp-json\/acsite\/v1\/sms-send',\n    CHECK_URL: '\/wp-json\/acsite\/v1\/sms-check'\n  };\n  let otpVerified = false;\n  let otpCheckInFlight = false;\n  let smsCooldownTimer = null;\n\n  function setFieldErrorById(id, msg){\n    const el = document.getElementById(id);\n    if(!el) return;\n    const wrap = el.closest('div');\n    const err = wrap?.querySelector('.error-msg');\n    if (err){ err.hidden = !msg; err.textContent = msg || ''; }\n    el.classList.toggle('is-error', !!msg);\n  }\n\n  \/\/ E.164 builder: concatena dial + soli numeri dell'input\n  function buildE164(){\n    const dial = (ccodeSel?.value || '').trim();   \/\/ es. \"+39\"\n    const raw  = (telInput?.value || '').replace(\/[^\\d]\/g,''); \/\/ solo cifre\n    if (!raw) return '';\n    const plus = dial.startsWith('+') ? dial : ('+'+dial);\n    return plus + raw;\n  }\n\n  \/\/ 0=IT, 1=EN (default EN)\n  function computeLangParam(){\n    const iso = (selNation?.value || '').toUpperCase();\n    if (iso === 'IT') return 0;\n    return 1;\n  }\n\n  function startSmsCooldown(sec=60){\n    if (!smsBtn) return;\n    let left = sec;\n    const orig = I18N.sms_verify;\n    smsBtn.disabled = true;\n    (function tick(){\n      if (left <= 0){\n        smsBtn.disabled = false;\n        smsBtn.textContent = orig;\n        smsCooldownTimer = null;\n        return;\n      }\n      smsBtn.textContent = `${I18N.sms_send_countdown} (${left}s)`;\n      left--;\n      smsCooldownTimer = setTimeout(tick, 1000);\n    })();\n  }\n\n  function markOtpVerified(ok){\n    otpVerified = !!ok;\n    if (otpVerified){\n      setFieldErrorById('acadtf_6a91df55a9a9b_otp','');\n      otpInput?.setAttribute('disabled','disabled');\n      smsBtn?.setAttribute('disabled','disabled');\n    }\n    btnNext.disabled = !validateCurrent(false);\n  }\n\n  async function sendSms(){\n    const phone = buildE164();\n    if (!phone){\n      setFieldErrorById('acadtf_6a91df55a9a9b_tel', I18N.sms_err_phone);\n      return;\n    }\n    setFieldErrorById('acadtf_6a91df55a9a9b_tel','');\n    try{\n      if (smsBtn){ smsBtn.disabled = true; smsBtn.textContent = decodeHtmlEntities(I18N.sms_sending); }\n      const fd = new FormData();\n      fd.append('phone', phone);           \/\/ il proxy mappa -> dest_num\n      fd.append('ccode', ccodeSel?.value || '');\n      fd.append('email', inpEmail?.value?.trim() || '');\n      fd.append('lang', String(computeLangParam())); \/\/ 0\/1\n\n      const resp = await fetch(SMS.SEND_URL, { method:'POST', body: fd });\n      const out  = await resp.json().catch(()=> ({}));\n      console.log('[Sito][2FA] SEND &rarr;', resp.status, out);\n\n      if (out?.ok){\n        startSmsCooldown(60);\n        otpInput?.focus();\n        showToast(I18N.sms_sent,'info');\n      } else {\n        if (smsBtn){ smsBtn.disabled = false; smsBtn.textContent = I18N.sms_verify; }\n        setFieldErrorById('acadtf_6a91df55a9a9b_tel', out?.message || I18N.sms_send_failed);\n      }\n    } catch(err){\n      console.error('[Sito][2FA] SEND error:', err);\n      if (smsBtn){ smsBtn.disabled = false; smsBtn.textContent = I18N.sms_verify; }\n      setFieldErrorById('acadtf_6a91df55a9a9b_tel', I18N.sms_send_error);\n    }\n  }\n\n  async function checkOtp(){\n    const code = (otpInput?.value || '').trim();\n    if (!code || code.length < 4){\n      setFieldErrorById('acadtf_6a91df55a9a9b_otp', I18N.sms_code_required);\n      return false;\n    }\n    setFieldErrorById('acadtf_6a91df55a9a9b_otp','');\n    if (otpVerified || otpCheckInFlight) return otpVerified;\n    otpCheckInFlight = true;\n    try{\n      const phone = buildE164();\n      const fd = new FormData();\n      fd.append('phone', phone); \/\/ -> dest_num\n      fd.append('code',  code);  \/\/ -> verify_num\n\n      const resp = await fetch(SMS.CHECK_URL, { method:'POST', body: fd });\n      const out  = await resp.json().catch(()=> ({}));\n      console.log('[Sito][2FA] CHECK &rarr;', resp.status, out);\n\n      const ok = !!out?.ok && out?.verified === true;\n      if (ok){\n        markOtpVerified(true);\n        showToast(I18N.sms_verified,'success');\n        return true;\n      } else {\n        markOtpVerified(false);\n        setFieldErrorById('acadtf_6a91df55a9a9b_otp', out?.message || I18N.sms_invalid_code);\n        return false;\n      }\n    } catch(err){\n      console.error('[Sito][2FA] CHECK error:', err);\n      setFieldErrorById('acadtf_6a91df55a9a9b_otp', I18N.sms_check_error);\n      return false;\n    } finally {\n      otpCheckInFlight = false;\n      btnNext.disabled = !validateCurrent(false);\n    }\n  }\n\n  smsBtn?.addEventListener('click', sendSms);\n  otpInput?.addEventListener('change', ()=>{ if ((otpInput.value||'').trim().length >= 4) checkOtp(); });\n  otpInput?.addEventListener('blur',   ()=>{ if ((otpInput.value||'').trim().length >= 4) checkOtp(); });\n\n  \/\/ Stepper \/ Nav\n  let current = 0;\n  function showPanel(i){\n    panels.forEach((p,idx)=>p.classList.toggle('is-visible', idx===i));\n    current = i;\n    const denom = Math.max(panels.length-1,1);\n    if (bar) bar.style.width = (i\/denom)*100 + '%';\n    renderStepper();\n    btnPrev.disabled = (i===0);\n    btnNext.textContent = (i===panels.length-1) ? I18N.nav_submit : I18N.nav_next;\n    btnNext.disabled = !validateCurrent(false);\n    updateSidePanel();\n  }\n\n  function renderStepper(){\n    if (!stepsWrap) return;\n    stepsWrap.innerHTML = '';\n    const labels = [I18N.stepper_profile, I18N.stepper_programs, I18N.stepper_data];\n    for (let i=0;i<labels.length;i++){\n      const el = document.createElement('div');\n      el.className = 'acadtf__step'+(i<current ? ' is-done' : (i===current ? ' is-active' : ''));\n      el.innerHTML = `<span>${i+1}<em>${labels[i]}`;\n      stepsWrap.appendChild(el);\n    }\n  }\n\n  function setGroupError(container, msgId, message){\n    container?.classList.toggle('has-error', !!message);\n    const msgEl = document.getElementById(msgId);\n    if (msgEl){ msgEl.hidden = !message; msgEl.textContent = message || ''; }\n  }\n\n  function validateCurrent(show){\n    if (current===0){\n      const any = !!root.querySelector('input[name=\"professione\"]:checked');\n      if (show && !any) setGroupError(profCards, 'acadtf_6a91df55a9a9b_prof_err', I18N.err_prof);\n      if (show && any)  setGroupError(profCards, 'acadtf_6a91df55a9a9b_prof_err', '');\n      return any;\n    }\n    if (current===1){\n      const any = !!root.querySelector('input[name=\"progused[]\"]:checked');\n      if (show && !any) setGroupError(progCards, 'acadtf_6a91df55a9a9b_prog_err', I18N.err_prog);\n      if (show && any)  setGroupError(progCards, 'acadtf_6a91df55a9a9b_prog_err', '');\n      return any;\n    }\n    if (current===2){\n\t  const emailOk = validateEmailField(show);\n\n\t  const okBase =\n\t\tinpNome?.value?.trim() &&\n\t\tinpCogn?.value?.trim() &&\n\t\tinpRagione?.value?.trim() &&\n\t\tinpEmail?.value?.trim() &&\n\t\temailOk &&\n\t\tselNation?.value &&\n\t\ttelInput?.value?.trim() &&\n\t\t!!chkPrivacy?.checked;\n\n\t  if (chkPrivacy && privacyErr){\n\t\tprivacyErr.hidden = !!chkPrivacy.checked;\n\t\tprivacyErr.textContent = chkPrivacy.checked ? '' : I18N.err_privacy;\n\t  }\n\n\t  if (!otpVerified && show){\n\t\tsetFieldErrorById('acadtf_6a91df55a9a9b_otp', I18N.err_otp_required);\n\t  }\n\t  if (otpVerified && show){\n\t\tsetFieldErrorById('acadtf_6a91df55a9a9b_otp','');\n\t  }\n\n\t  return !!okBase && otpVerified;\n\t}\n    return true;\n  }\n\t\n  inpEmail?.addEventListener('blur', () => {\n\t  validateEmailField(true);\n\t});\n\n\tinpEmail?.addEventListener('input', () => {\n\t  const value = inpEmail?.value?.trim() || '';\n\t  if (!value) {\n\t\tsetFieldErrorById('acadtf_6a91df55a9a9b_email', '');\n\t\treturn;\n\t  }\n\t  validateEmailField(false);\n\t});\n\n  root.addEventListener('click', (e)=>{\n    const b = e.target.closest('button');\n    if(!b) return;\n    if (b.dataset.nav==='prev') { showPanel(Math.max(0, current-1)); }\n    if (b.dataset.nav==='next') {\n      if (!validateCurrent(true)) return;\n      if (current < panels.length-1) showPanel(current+1);\n      else form.requestSubmit();\n    }\n  });\n\n  \/\/ Update next disabled + side extra on changes\/inputs\n  root.addEventListener('change', ()=>{\n    btnNext.disabled = !validateCurrent(false);\n    updateSidePanel();\n  });\n  root.addEventListener('input',  ()=>{ btnNext.disabled = !validateCurrent(false); });\n\n  \/\/ --- POPOLA Nazioni & Prefissi ---\n  const COUNTRY_NAMES_EN = {\n  \"AD\": \"Andorra\",\n  \"AE\": \"United Arab Emirates\",\n  \"AF\": \"Afghanistan\",\n  \"AG\": \"Antigua and Barbuda\",\n  \"AL\": \"Albania\",\n  \"AM\": \"Armenia\",\n  \"AO\": \"Angola\",\n  \"AR\": \"Argentina\",\n  \"AT\": \"Austria\",\n  \"AU\": \"Australia\",\n  \"AZ\": \"Azerbaijan\",\n  \"BA\": \"Bosnia and Herzegovina\",\n  \"BB\": \"Barbados\",\n  \"BD\": \"Bangladesh\",\n  \"BE\": \"Belgium\",\n  \"BF\": \"Burkina Faso\",\n  \"BG\": \"Bulgaria\",\n  \"BH\": \"Bahrain\",\n  \"BI\": \"Burundi\",\n  \"BJ\": \"Benin\",\n  \"BN\": \"Brunei\",\n  \"BO\": \"Bolivia\",\n  \"BR\": \"Brazil\",\n  \"BS\": \"Bahamas\",\n  \"BT\": \"Bhutan\",\n  \"BW\": \"Botswana\",\n  \"BY\": \"Belarus\",\n  \"BZ\": \"Belize\",\n  \"CA\": \"Canada\",\n  \"CD\": \"Democratic Republic of the Congo\",\n  \"CF\": \"Central African Republic\",\n  \"CG\": \"Republic of the Congo\",\n  \"CH\": \"Switzerland\",\n  \"CI\": \"Ivory Coast\",\n  \"CL\": \"Chile\",\n  \"CM\": \"Cameroon\",\n  \"CN\": \"China\",\n  \"CO\": \"Colombia\",\n  \"CR\": \"Costa Rica\",\n  \"CU\": \"Cuba\",\n  \"CV\": \"Cape Verde\",\n  \"CY\": \"Cyprus\",\n  \"CZ\": \"Czechia\",\n  \"DE\": \"Germany\",\n  \"DJ\": \"Djibouti\",\n  \"DK\": \"Denmark\",\n  \"DM\": \"Dominica\",\n  \"DO\": \"Dominican Republic\",\n  \"DZ\": \"Algeria\",\n  \"EC\": \"Ecuador\",\n  \"EE\": \"Estonia\",\n  \"EG\": \"Egypt\",\n  \"ER\": \"Eritrea\",\n  \"ES\": \"Spain\",\n  \"ET\": \"Ethiopia\",\n  \"FI\": \"Finland\",\n  \"FJ\": \"Fiji\",\n  \"FM\": \"Micronesia\",\n  \"FR\": \"France\",\n  \"GA\": \"Gabon\",\n  \"GB\": \"United Kingdom\",\n  \"GD\": \"Grenada\",\n  \"GE\": \"Georgia\",\n  \"GH\": \"Ghana\",\n  \"GM\": \"Gambia\",\n  \"GN\": \"Guinea\",\n  \"GQ\": \"Equatorial Guinea\",\n  \"GR\": \"Greece\",\n  \"GT\": \"Guatemala\",\n  \"GW\": \"Guinea-Bissau\",\n  \"GY\": \"Guyana\",\n  \"HN\": \"Honduras\",\n  \"HR\": \"Croatia\",\n  \"HT\": \"Haiti\",\n  \"HU\": \"Hungary\",\n  \"ID\": \"Indonesia\",\n  \"IE\": \"Ireland\",\n  \"IL\": \"Israel\",\n  \"IN\": \"India\",\n  \"IQ\": \"Iraq\",\n  \"IR\": \"Iran\",\n  \"IS\": \"Iceland\",\n  \"IT\": \"Italy\",\n  \"JM\": \"Jamaica\",\n  \"JO\": \"Jordan\",\n  \"JP\": \"Japan\",\n  \"KE\": \"Kenya\",\n  \"KG\": \"Kyrgyzstan\",\n  \"KH\": \"Cambodia\",\n  \"KI\": \"Kiribati\",\n  \"KM\": \"Comoros\",\n  \"KN\": \"Saint Kitts and Nevis\",\n  \"KP\": \"North Korea\",\n  \"KR\": \"South Korea\",\n  \"KW\": \"Kuwait\",\n  \"KZ\": \"Kazakhstan\",\n  \"LA\": \"Laos\",\n  \"LB\": \"Lebanon\",\n  \"LC\": \"Saint Lucia\",\n  \"LI\": \"Liechtenstein\",\n  \"LK\": \"Sri Lanka\",\n  \"LR\": \"Liberia\",\n  \"LS\": \"Lesotho\",\n  \"LT\": \"Lithuania\",\n  \"LU\": \"Luxembourg\",\n  \"LV\": \"Latvia\",\n  \"LY\": \"Libya\",\n  \"MA\": \"Morocco\",\n  \"MC\": \"Monaco\",\n  \"MD\": \"Moldova\",\n  \"ME\": \"Montenegro\",\n  \"MG\": \"Madagascar\",\n  \"MH\": \"Marshall Islands\",\n  \"MK\": \"North Macedonia\",\n  \"ML\": \"Mali\",\n  \"MM\": \"Myanmar\",\n  \"MN\": \"Mongolia\",\n  \"MR\": \"Mauritania\",\n  \"MT\": \"Malta\",\n  \"MU\": \"Mauritius\",\n  \"MV\": \"Maldives\",\n  \"MW\": \"Malawi\",\n  \"MX\": \"Mexico\",\n  \"MY\": \"Malaysia\",\n  \"MZ\": \"Mozambique\",\n  \"NA\": \"Namibia\",\n  \"NE\": \"Niger\",\n  \"NG\": \"Nigeria\",\n  \"NI\": \"Nicaragua\",\n  \"NL\": \"Netherlands\",\n  \"NO\": \"Norway\",\n  \"NP\": \"Nepal\",\n  \"NR\": \"Nauru\",\n  \"NZ\": \"New Zealand\",\n  \"OM\": \"Oman\",\n  \"PA\": \"Panama\",\n  \"PE\": \"Peru\",\n  \"PG\": \"Papua New Guinea\",\n  \"PH\": \"Philippines\",\n  \"PK\": \"Pakistan\",\n  \"PL\": \"Poland\",\n  \"PT\": \"Portugal\",\n  \"PW\": \"Palau\",\n  \"PY\": \"Paraguay\",\n  \"QA\": \"Qatar\",\n  \"RO\": \"Romania\",\n  \"RS\": \"Serbia\",\n  \"RU\": \"Russia\",\n  \"RW\": \"Rwanda\",\n  \"SA\": \"Saudi Arabia\",\n  \"SB\": \"Solomon Islands\",\n  \"SC\": \"Seychelles\",\n  \"SD\": \"Sudan\",\n  \"SE\": \"Sweden\",\n  \"SG\": \"Singapore\",\n  \"SI\": \"Slovenia\",\n  \"SK\": \"Slovakia\",\n  \"SL\": \"Sierra Leone\",\n  \"SM\": \"San Marino\",\n  \"SN\": \"Senegal\",\n  \"SO\": \"Somalia\",\n  \"SR\": \"Suriname\",\n  \"SS\": \"South Sudan\",\n  \"ST\": \"S&atilde;o Tom&eacute; and Pr&iacute;ncipe\",\n  \"SV\": \"El Salvador\",\n  \"SY\": \"Syria\",\n  \"SZ\": \"Eswatini\",\n  \"TD\": \"Chad\",\n  \"TG\": \"Togo\",\n  \"TH\": \"Thailand\",\n  \"TJ\": \"Tajikistan\",\n  \"TL\": \"East Timor\",\n  \"TM\": \"Turkmenistan\",\n  \"TN\": \"Tunisia\",\n  \"TO\": \"Tonga\",\n  \"TR\": \"Turkey\",\n  \"TT\": \"Trinidad and Tobago\",\n  \"TV\": \"Tuvalu\",\n  \"TW\": \"Taiwan\",\n  \"TZ\": \"Tanzania\",\n  \"UA\": \"Ukraine\",\n  \"UG\": \"Uganda\",\n  \"US\": \"United States\",\n  \"UY\": \"Uruguay\",\n  \"UZ\": \"Uzbekistan\",\n  \"VC\": \"Saint Vincent and the Grenadines\",\n  \"VE\": \"Venezuela\",\n  \"VN\": \"Vietnam\",\n  \"VU\": \"Vanuatu\",\n  \"WS\": \"Samoa\",\n  \"YE\": \"Yemen\",\n  \"ZA\": \"South Africa\",\n  \"ZM\": \"Zambia\",\n  \"ZW\": \"Zimbabwe\"\n};\n\n  function translateCountryName(name, iso){\n    if (!IS_EN) return String(name || '').trim();\n    const key = String(iso || '').trim().toUpperCase();\n    return COUNTRY_NAMES_EN[key] || String(name || '').trim();\n  }\n\n  const COUNTRIES = `Afghanistan|AF, Albania|AL, Algeria|DZ, Andorra|AD, Angola|AO, Antigua e Barbuda|AG, Arabia Saudita|SA, Argentina|AR, Armenia|AM, Australia|AU, Austria|AT, Azerbaigian|AZ, Bahamas|BS, Bahrain|BH, Bangladesh|BD, Barbados|BB, Belgio|BE, Belize|BZ, Benin|BJ, Bhutan|BT, Bielorussia|BY, Birmania|MM, Bolivia|BO, Bosnia ed Erzegovina|BA, Botswana|BW, Brasile|BR, Brunei|BN, Bulgaria|BG, Burkina Faso|BF, Burundi|BI, Cambogia|KH, Camerun|CM, Canada|CA, Capo Verde|CV, Ciad|TD, Cile|CL, Cina|CN, Cipro|CY, Colombia|CO, Comore|KM, Congo (Rep. Dem.)|CD, Congo (Rep.)|CG, Corea del Nord|KP, Corea del Sud|KR, Costa Rica|CR, Costa d&rsquo;Avorio|CI, Croazia|HR, Cuba|CU, Danimarca|DK, Dominica|DM, Ecuador|EC, Egitto|EG, El Salvador|SV, Emirati Arabi Uniti|AE, Eritrea|ER, Estonia|EE, Eswatini|SZ, Etiopia|ET, Figi|FJ, Filippine|PH, Finlandia|FI, Francia|FR, Gabon|GA, Gambia|GM, Georgia|GE, Germania|DE, Ghana|GH, Giamaica|JM, Giappone|JP, Gibuti|DJ, Giordania|JO, Grecia|GR, Grenada|GD, Guatemala|GT, Guinea|GN, Guinea-Bissau|GW, Guinea Equatoriale|GQ, Guyana|GY, Haiti|HT, Honduras|HN, India|IN, Indonesia|ID, Iran|IR, Iraq|IQ, Irlanda|IE, Islanda|IS, Isole Marshall|MH, Isole Salomone|SB, Israele|IL, Italia|IT, Kazakistan|KZ, Kenya|KE, Kirghizistan|KG, Kiribati|KI, Kuwait|KW, Laos|LA, Lesotho|LS, Lettonia|LV, Libano|LB, Liberia|LR, Libia|LY, Liechtenstein|LI, Lituania|LT, Lussemburgo|LU, Macedonia del Nord|MK, Madagascar|MG, Malawi|MW, Malaysia|MY, Maldive|MV, Mali|ML, Malta|MT, Marocco|MA, Mauritania|MR, Mauritius|MU, Messico|MX, Micronesia|FM, Moldova|MD, Monaco|MC, Mongolia|MN, Montenegro|ME, Mozambico|MZ, Namibia|NA, Nauru|NR, Nepal|NP, Nicaragua|NI, Niger|NE, Nigeria|NG, Norvegia|NO, Nuova Zelanda|NZ, Oman|OM, Paesi Bassi|NL, Pakistan|PK, Palau|PW, Panama|PA, Papua Nuova Guinea|PG, Paraguay|PY, Per&ugrave;|PE, Polonia|PL, Portogallo|PT, Qatar|QA, Regno Unito|GB, Repubblica Ceca|CZ, Repubblica Centrafricana|CF, Repubblica Dominicana|DO, Romania|RO, Ruanda|RW, Russia|RU, Saint Kitts e Nevis|KN, Saint Lucia|LC, Saint Vincent e Grenadine|VC, Samoa|WS, San Marino|SM, S&atilde;o Tom&eacute; e Pr&iacute;ncipe|ST, Senegal|SN, Serbia|RS, Seychelles|SC, Sierra Leone|SL, Singapore|SG, Siria|SY, Slovacchia|SK, Slovenia|SI, Somalia|SO, Spagna|ES, Sri Lanka|LK, Stati Uniti|US, Sudafrica|ZA, Sudan|SD, Sud Sudan|SS, Suriname|SR, Svezia|SE, Svizzera|CH, Tagikistan|TJ, Taiwan|TW, Tanzania|TZ, Thailandia|TH, Timor Est|TL, Togo|TG, Tonga|TO, Trinidad e Tobago|TT, Tunisia|TN, Turchia|TR, Turkmenistan|TM, Tuvalu|TV, Uganda|UG, Ucraina|UA, Ungheria|HU, Uruguay|UY, Uzbekistan|UZ, Vanuatu|VU, Venezuela|VE, Vietnam|VN, Yemen|YE, Zambia|ZM, Zimbabwe|ZW`;\n  const DIALS = `IT|Italia|+39, US|Stati Uniti|+1, GB|Regno Unito|+44, FR|Francia|+33, DE|Germania|+49, ES|Spagna|+34, PT|Portogallo|+351, NL|Paesi Bassi|+31, BE|Belgio|+32, AT|Austria|+43, IE|Irlanda|+353, CH|Svizzera|+41, SE|Svezia|+46, NO|Norvegia|+47, DK|Danimarca|+45, PL|Polonia|+48, CZ|Repubblica Ceca|+420, SK|Slovacchia|+421, HU|Ungheria|+36, RO|Romania|+40, BG|Bulgaria|+359, GR|Grecia|+30, HR|Croazia|+385, SI|Slovenia|+386, EE|Estonia|+372, LV|Lettonia|+371, LT|Lituania|+370, FI|Finlandia|+358, RU|Russia|+7, UA|Ucraina|+380, TR|Turchia|+90, IL|Israele|+972, AE|EAU|+971, SA|Arabia Saudita|+966, EG|Egitto|+20, ZA|Sudafrica|+27, IN|India|+91, CN|Cina|+86, JP|Giappone|+81, KR|Corea del Sud|+82, SG|Singapore|+65, MY|Malaysia|+60, TH|Thailandia|+66, ID|Indonesia|+62, PH|Filippine|+63, VN|Vietnam|+84, AU|Australia|+61, NZ|Nuova Zelanda|+64, CA|Canada|+1, BR|Brasile|+55, AR|Argentina|+54, CL|Cile|+56, PE|Per&ugrave;|+51, MX|Messico|+52, CO|Colombia|+57, VE|Venezuela|+58, MA|Marocco|+212, TN|Tunisia|+216, DZ|Algeria|+213, NG|Nigeria|+234, KE|Kenya|+254, GH|Ghana|+233, PK|Pakistan|+92, BD|Bangladesh|+880`;\n\n  const countrySel = root.querySelector('#acadtf_6a91df55a9a9b_nazione');\n  COUNTRIES.split(',').map(s=>s.trim()).forEach(entry=>{\n    const [name, iso] = entry.split('|');\n    if(!name || !iso) return;\n    const opt = document.createElement('option');\n    opt.value = iso.trim();\n    opt.textContent = translateCountryName(name.trim(), iso.trim());\n    if (iso.trim()==='IT') opt.selected = true;\n    countrySel.appendChild(opt);\n  });\n  const dialSel = root.querySelector('#acadtf_6a91df55a9a9b_ccode');\n  DIALS.split(',').map(s=>s.trim()).forEach(entry=>{\n    const [iso, name, dial] = entry.split('|');\n    const opt = document.createElement('option');\n    opt.value = dial.trim();\n    opt.textContent = `${translateCountryName(name.trim(), iso.trim())} ${dial.trim()}`;\n    if (iso.trim()==='IT') opt.selected = true;\n    dialSel.appendChild(opt);\n  });\n\n  \/\/ --- POPOLA Step 1\/2 (CARD) da getDatiFormReq.php ---\n  document.addEventListener('DOMContentLoaded', async function(){\n    try{\n      const fd = new FormData();\n      fd.append('landform', form?.dataset?.landform || '0');\n\n      const res = await fetch('https:\/\/service.arredocad.com\/e-shop_rfc\/getDatiFormReq.php', { method:'POST', body: fd });\n      const payload = await res.json();\n\n      \/\/ Step 1: tipoaz2 (gi&agrave; piatto) -> CARD RADIO\n      const flat = [];\n\n      \/\/ tipoaz2 &egrave; un array con dentro 1 oggetto: [{ \"Architetto\": 3, ... }]\n      const tipoaz2Obj =\n        (payload?.tipoaz2 && Array.isArray(payload.tipoaz2) && payload.tipoaz2[0] && typeof payload.tipoaz2[0] === 'object')\n        ? payload.tipoaz2[0]\n        : null;\n\n      if (tipoaz2Obj) {\n        Object.entries(tipoaz2Obj).forEach(([label, id]) => {\n          \/\/ parsing robusto (evita di perdere valori \"sporchi\")\n          const n = parseInt(String(id).replace(\/[^\\d-]\/g, '').trim(), 10);\n          if (label && !Number.isNaN(n)) flat.push([String(label).trim(), n]);\n        });\n      }\n\n      if (profCards){\n        profCards.innerHTML = '';\n        flat.forEach(([label, id], i)=>{\n          const inputId = 'acadtf_6a91df55a9a9b_prof_'+i;\n          const displayLabel = translateProfessionLabel(label);\n          profCards.insertAdjacentHTML('beforeend', `\n            <label class=\"acadtf__card\">\n              <input type=\"radio\" name=\"professione\" id=\"${inputId}\" value=\"${String(id)}\" \/>\n              <span class=\"acadtf__card-txt\">${displayLabel}\n              <i class=\"acadtf__check\" aria-hidden=\"true\">\n            \n          `);\n        });\n      }\n\n      \/\/ Step 2: progused -> CARD CHECKBOX\n      const progused = payload?.progused || {};\n      const progs = [];\n      Object.entries(progused).forEach(([label, id])=>{\n        const n = Number(id);\n        if (label && Number.isFinite(n)) progs.push([label, n]);\n      });\n      if (progCards){\n        progCards.innerHTML = '';\n        progs.forEach(([label, id], i)=>{\n          const inputId = 'acadtf_6a91df55a9a9b_prog_'+i;\n          const uiLabel = translateProgramLabel(label);\n          progCards.insertAdjacentHTML('beforeend', `\n            <label class=\"acadtf__card\">\n              <input type=\"checkbox\" name=\"progused[]\" id=\"${inputId}\" value=\"${String(id)}\" \/>\n              <span class=\"acadtf__card-txt\">${uiLabel}\n              <i class=\"acadtf__check\" aria-hidden=\"true\">\n            \n          `);\n        });\n      }\n\n    } catch{\n      \/* no-op *\/\n    } finally {\n      renderStepper();\n      showPanel(0);\n      updateSidePanel();\n    }\n  });\n\n  \/\/ --- SUBMIT: pipeline come landing ---\n  form.addEventListener('submit', async function(e){\n    e.preventDefault();\n    btnNext.disabled = true;\n\n    \/\/ Se non ancora verificato, prova ora (blocca l'invio finch&eacute; non &egrave; ok)\n    if (!otpVerified){\n      const okNow = await checkOtp();\n      if (!okNow){\n        btnNext.disabled = false;\n        return;\n      }\n    }\n\n    try{\n      \/\/ Step 3 fields\n      const email     = inpEmail?.value?.trim();\n      const nation    = selNation?.value || 'IT';\n      const nationLbl = selNation?.options?.[selNation.selectedIndex]?.text || nation;\n      const city      = root.querySelector('#acadtf_6a91df55a9a9b_citta')?.value?.trim() || '';\n      const prov      = root.querySelector('#acadtf_6a91df55a9a9b_provincia')?.value?.trim() || '';\n      \/\/const flagPriv  = chkPrivacy?.checked ? '1' : '0';\n      const flagPriv  = '0';\n\n      \/\/ Nome completo per il redirect (Nome + Cognome)\n      const firstName = inpNome?.value?.trim() || '';\n      const lastName  = inpCogn?.value?.trim() || '';\n      const fullName  = `${firstName} ${lastName}`.trim();\n\n      \/\/ Step 1\/2 selections\n      const profId  = root.querySelector('input[name=\"professione\"]:checked')?.value || '';\n      const profLbl = root.querySelector('input[name=\"professione\"]:checked')?.parentElement?.querySelector('.acadtf__card-txt')?.textContent?.trim() || '';\n\n      const progEls     = Array.from(root.querySelectorAll('input[name=\"progused[]\"]:checked'));\n      const progIds     = progEls.map(el => el.value);\n      const progLabels  = progEls.map(el => el.closest('label')?.querySelector('.acadtf__card-txt')?.textContent?.trim()).filter(Boolean);\n      const progCsv     = progIds.join(',');\n      const progLblCsv  = progLabels.join(', ');\n\n      \/\/ Call 1\n      const autoloadRes  = await fetch('https:\/\/service.arredocad.com\/e-shop_rfc\/checkAutoloadRequest.php', { method:'POST' });\n      const autoloadJson = await autoloadRes.json();\n      if (!(Array.isArray(autoloadJson) && autoloadJson[0]?.autload === '1')) {\n        showOutcome('error','Sistema non disponibile','Il sistema non &egrave; attualmente disponibile. Riprova pi&ugrave; tardi.');\n        return;\n      }\n\n      \/\/ Call 2\n      const emailData = new FormData();\n      emailData.append('req_mail', email);\n      emailData.append('req_naz', nation);\n      const checkRes = await fetch('https:\/\/service.arredocad.com\/e-shop_rfc\/checkEmailRequest.php', { method:'POST', body: emailData });\n      let data = await checkRes.json();\n      if (Array.isArray(data)) data = data[0] || {};\n\n      const block = (data?.block_request || '').toUpperCase();\n      const blockType = String(data.block_type || data.BLOCK_TYPE || '').trim();\n\n      \/\/ Fallback per chiavi varianti\n      const wsIdrefCandidates  = [data.WS_IDREF, data.WS_IDRef, data.ws_idref, data.wsIdRef];\n      const fastcodeCandidates = [data.ACTIVE_TEMP_ID, data.Active_Temp_ID, data.active_temp_id, data.ACTIVE_TEMP, data.fastcode];\n\n      const wsIdref = (wsIdrefCandidates.find(v => typeof v === 'string' && v.trim() !== '') || '').trim();\n      const fastcode= (fastcodeCandidates.find(v => typeof v === 'string' && v.trim() !== '') || '').trim();\n\t\t\n\t  const phoneRaw  = telInput?.value?.trim() || '';\n\t  const phoneCcode = ccodeSel?.value?.trim() || '';\n\t  const phoneFull = buildE164() || phoneRaw;\n\n\t  const formLanguageLabel = IS_EN ? 'EN' : 'IT';\n\t\t\n      \/\/ JSON finale\n      const orderNumber = `RQS_${Date.now()}_${Math.random().toString(36).slice(2,10)}`;\n      const jsonPayload = {\n        Orders: [{\n          Order_IDsource: 3,\n          Order_IDdistributor: 0,\n          Order_Number: orderNumber,\n          Order_Date: new Date().toISOString().slice(0,19).replace('T',' '),\n          Shop_User_ID: 100000 + Math.floor(Math.random()*10000),\n          Shop_User_Email: email,\n          ID_Customer: 0,\n\n          Billing_First_Name: inpNome?.value?.trim() || '',\n          Billing_Last_Name:  inpCogn?.value?.trim() || '',\n          Billing_Company: (inpRagione?.value?.trim() || ''),\n          Billing_CF: '',\n          Billing_PIVA: '',\n          Billing_CU: '',\n          Billing_PEC: '',\n          Billing_Address: '',\n          Billing_City: city,\n          Billing_Postcode: '',\n          Billing_State: prov,\n          Billing_Country: nation,\n          Billing_Email: email,\n          Billing_Phone: phoneFull,\n          Billing_Note: '',\n          Doc_lang: (nation==='IT') ? 'IT' : 'EN',\n\n          Products: [\n            { Sku:'010107_DSC15', Name:'Arredocad prova 15GG', Qty:1, Price:'0', PaySys:'', Subscription:false, SubID:'', SubItemID:'' }\n          ],\n\n          Extra_info: `tipoaz:${profId}|prog:${progCsv}|fstcod:${fastcode}|wsIdref:${wsIdref}`\n        }]\n      };\n\n      \/\/ Meta per mail (arricchita)\n      jsonPayload._meta = {\n        block_request: block,\n        block_type: blockType,\n        reason: blockType || (block === 'SI' ? 'Utente bloccato.' : 'Caricamento automatico (utente non bloccato).'),\n        ID_distrib: data.ID_distrib || '',\n        WS_IDREF: wsIdref,\n        ACTIVE_TEMP_ID: fastcode,\n\n        company_name: inpRagione?.value?.trim() || '',\n\n        profession_label: profLbl,\n        programs_ids: progCsv,\n        programs_labels: progLblCsv,\n\n        nation_code: nation,\n        nation_label: nationLbl,\n        city: city,\n        province: prov,\n\t\t  \n\t\tform_language_label: formLanguageLabel,\n\n        phone_raw: phoneRaw,\n        phone_ccode: phoneCcode,\n        phone_full: phoneFull,\n        otp_verified: otpVerified ? 1 : 0,\n        privacy_accepted: chkPrivacy?.checked ? 1 : 0,\n        privacy_label: chkPrivacy?.checked ? I18N.privacy_accepted : I18N.privacy_refused,\n\n        NAME_distrib: data.NAME_distrib || '',\n        MAIL_distrib: data.MAIL_distrib || '',\n        FIND_distrib: (data.FIND_distrib!=null) ? String(data.FIND_distrib) : ''\n      };\n\n      \/\/ Mail\n      try {\n        const mailRes = await fetch('\/wp-json\/acsite\/v1\/mail', {\n          method:'POST',\n          headers:{'Content-Type':'application\/json'},\n          body: JSON.stringify(jsonPayload)\n        });\n        if (!mailRes.ok) { \/* no-op *\/ }\n      } catch{}\n\n      \/\/ Se non bloccato &rarr; Save FTP + Call3\n      if (block === 'NO') {\n\t\tconst nationIso = String((selNation?.value || nation || '')).trim().toUpperCase();\n        const codenazForFastcode = (nationIso === 'IT') ? 'IT' : 'EN';\n        try {\n          const ftpRes = await fetch('\/wp-json\/acsite\/v1\/save-ftp', {\n            method:'POST',\n            headers:{'Content-Type':'application\/json'},\n            body: JSON.stringify(jsonPayload)\n          });\n          await ftpRes.json().catch(()=> ({}));\n        } catch{}\n\n        \/\/ Call 3\n        const c3 = {\n          distrib: data.ID_distrib,\n          Email:   email,\n          codenaz: codenazForFastcode,\n          flagLand: flagPriv\n        };\n        const call3Data = new FormData();\n        Object.entries(c3).forEach(([k,v]) => call3Data.append(k, v));\n\n        \/\/const call3Res = await fetch('https:\/\/service.arredocad.com\/e-shop_rfc\/req_sendFastcode.php', { method:'POST', body: call3Data });\n        const call3Res = await fetch('https:\/\/service.arredocad.com\/e-shop_rfc\/req_sendWelcome.php', { method:'POST', body: call3Data });\n        let result = await call3Res.json();\n        if (Array.isArray(result)) result = result[0];\n\n        if (result?.esito === 'OK') {\n\t\t  pushDatalayerSuccess(profLbl);\n\t\/*\t  showOutcome('sent'); *\/\n\t\t  \/\/redirectToDownload(email, wsIdref);\n\t\t  redirectToBookDemo(fullName, email);\n\t\t} else {\n\t\t  showOutcome('error');\n\t\t}\n     } else if (block === 'SI' || block === 'YES') {\n\t    pushDatalayerSuccess(profLbl);\n\t    showOutcome('processing');\n\t } else {\n\t    showOutcome('error');\n\t }\n\n    } catch(err){\n      console.error('[Sito] SUBMIT error:', err);\n      showOutcome('error');\n    } finally {\n      btnNext.disabled = false;\n    }\n  });\n\n  \/\/ Avvio\n  renderStepper();\n  showPanel(0);\n  updateSidePanel();\n})();\n<\/script>\n\n\t\t\t\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","protected":false},"excerpt":{"rendered":"","protected":false},"author":2,"featured_media":0,"parent":23781,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"class_list":["post-20515","page","type-page","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Download the software trial version | ArredoCAD<\/title>\n<meta name=\"description\" content=\"Request the free trial version of ArredoCAD. Try all the features of the software for 15 days and start designing now!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/arredocad.com\/en\/try-arredocad\/download-arredocad\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Download the software trial version | ArredoCAD\" \/>\n<meta property=\"og:description\" content=\"Request the free trial version of ArredoCAD. Try all the features of the software for 15 days and start designing now!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/arredocad.com\/en\/try-arredocad\/download-arredocad\/\" \/>\n<meta property=\"og:site_name\" content=\"ArredoCAD\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-22T14:19:18+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/arredocad.com\\\/en\\\/try-arredocad\\\/download-arredocad\\\/\",\"url\":\"https:\\\/\\\/arredocad.com\\\/en\\\/try-arredocad\\\/download-arredocad\\\/\",\"name\":\"Download the software trial version | ArredoCAD\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/arredocad.com\\\/en\\\/#website\"},\"datePublished\":\"2025-09-04T05:56:32+00:00\",\"dateModified\":\"2026-06-22T14:19:18+00:00\",\"description\":\"Request the free trial version of ArredoCAD. Try all the features of the software for 15 days and start designing now!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/arredocad.com\\\/en\\\/try-arredocad\\\/download-arredocad\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/arredocad.com\\\/en\\\/try-arredocad\\\/download-arredocad\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/arredocad.com\\\/en\\\/try-arredocad\\\/download-arredocad\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/arredocad.com\\\/en\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Try ArredoCAD\",\"item\":\"https:\\\/\\\/arredocad.com\\\/en\\\/try-arredocad\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Download ArredoCAD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/arredocad.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/arredocad.com\\\/en\\\/\",\"name\":\"ArredoCAD\",\"description\":\"Powered by Dinamica S.r.l.\",\"publisher\":{\"@id\":\"https:\\\/\\\/arredocad.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/arredocad.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/arredocad.com\\\/en\\\/#organization\",\"name\":\"ArredoCAD\",\"url\":\"https:\\\/\\\/arredocad.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/arredocad.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/arredocad.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/ArredoCAD_partner-\u2013-27.svg\",\"contentUrl\":\"https:\\\/\\\/arredocad.com\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/ArredoCAD_partner-\u2013-27.svg\",\"width\":800,\"height\":150,\"caption\":\"ArredoCAD\"},\"image\":{\"@id\":\"https:\\\/\\\/arredocad.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Download the software trial version | ArredoCAD","description":"Request the free trial version of ArredoCAD. Try all the features of the software for 15 days and start designing now!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/arredocad.com\/en\/try-arredocad\/download-arredocad\/","og_locale":"en_US","og_type":"article","og_title":"Download the software trial version | ArredoCAD","og_description":"Request the free trial version of ArredoCAD. Try all the features of the software for 15 days and start designing now!","og_url":"https:\/\/arredocad.com\/en\/try-arredocad\/download-arredocad\/","og_site_name":"ArredoCAD","article_modified_time":"2026-06-22T14:19:18+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/arredocad.com\/en\/try-arredocad\/download-arredocad\/","url":"https:\/\/arredocad.com\/en\/try-arredocad\/download-arredocad\/","name":"Download the software trial version | ArredoCAD","isPartOf":{"@id":"https:\/\/arredocad.com\/en\/#website"},"datePublished":"2025-09-04T05:56:32+00:00","dateModified":"2026-06-22T14:19:18+00:00","description":"Request the free trial version of ArredoCAD. Try all the features of the software for 15 days and start designing now!","breadcrumb":{"@id":"https:\/\/arredocad.com\/en\/try-arredocad\/download-arredocad\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/arredocad.com\/en\/try-arredocad\/download-arredocad\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/arredocad.com\/en\/try-arredocad\/download-arredocad\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/arredocad.com\/en\/home\/"},{"@type":"ListItem","position":2,"name":"Try ArredoCAD","item":"https:\/\/arredocad.com\/en\/try-arredocad\/"},{"@type":"ListItem","position":3,"name":"Download ArredoCAD"}]},{"@type":"WebSite","@id":"https:\/\/arredocad.com\/en\/#website","url":"https:\/\/arredocad.com\/en\/","name":"ArredoCAD","description":"Powered by Dinamica S.r.l.","publisher":{"@id":"https:\/\/arredocad.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/arredocad.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/arredocad.com\/en\/#organization","name":"ArredoCAD","url":"https:\/\/arredocad.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/arredocad.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/arredocad.com\/wp-content\/uploads\/2025\/06\/ArredoCAD_partner-\u2013-27.svg","contentUrl":"https:\/\/arredocad.com\/wp-content\/uploads\/2025\/06\/ArredoCAD_partner-\u2013-27.svg","width":800,"height":150,"caption":"ArredoCAD"},"image":{"@id":"https:\/\/arredocad.com\/en\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/arredocad.com\/en\/wp-json\/wp\/v2\/pages\/20515","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arredocad.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/arredocad.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/arredocad.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/arredocad.com\/en\/wp-json\/wp\/v2\/comments?post=20515"}],"version-history":[{"count":5,"href":"https:\/\/arredocad.com\/en\/wp-json\/wp\/v2\/pages\/20515\/revisions"}],"predecessor-version":[{"id":24053,"href":"https:\/\/arredocad.com\/en\/wp-json\/wp\/v2\/pages\/20515\/revisions\/24053"}],"up":[{"embeddable":true,"href":"https:\/\/arredocad.com\/en\/wp-json\/wp\/v2\/pages\/23781"}],"wp:attachment":[{"href":"https:\/\/arredocad.com\/en\/wp-json\/wp\/v2\/media?parent=20515"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}