{"id":146595,"date":"2026-04-02T09:57:27","date_gmt":"2026-04-02T08:57:27","guid":{"rendered":"https:\/\/ramtechglobal.com\/?page_id=146595"},"modified":"2026-04-13T16:01:37","modified_gmt":"2026-04-13T15:01:37","slug":"modules-de-test","status":"publish","type":"page","link":"https:\/\/ramtechglobal.com\/fr\/testing_modules\/","title":{"rendered":"modules de test"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div data-parent=\"true\" class=\"vc_row row-container\" id=\"row-unique-0\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell  vc_custom_1775654316779 border-color-uydo-color single-block-padding  unradius-xl\" style=\"border-style: solid;border-top-width: 1px ;border-right-width: 1px ;border-bottom-width: 1px ;border-left-width: 1px ;\" ><div class=\"uncont\" >\t<style>\n\t\t#wpbm-cf-1{\n\t\t\t--cf-accent:#E74011;\n\t\t\t--cf-heading:#3B4354;\n\t\t\t--cf-body:#3B4354;\n\t\t\t--cf-muted:rgba(59,67,84,0.72);\n\t\t\t--cf-focus:#E74011;\n\t\t\t--cf-btn-border:#E74011;\n\t\t\t--cf-btn-text:#ffffff;\n\t\t\t--cf-btn-hover-bg:#E74011;\n\t\t\t--cf-btn-hover-text:#ffffff;\n\t\t\t--cf-avatar-size:75px;\n\t\t\t--cf-title-size:30px;\n\t\t\t--cf-copy-size:18px;\n\t\t\t--cf-intro-copy-gap:16px;\n\t\t\t--cf-gdpr-size:12px;\n\t\t\t--cf-field-height:46px;\n\t\t\t--cf-field-radius:999px;\n\t\t\t--cf-textarea-radius:20px;\n\t\t\t--cf-type-speed:40ms;\n\t\t\t--cf-type-copy-delay:400ms;\n\t\t\t--cf-grid-gap:16px;\n\t\t\t--cf-buttons-gap-top:14px;\n\t\t\t--cf-step-min-height:0px;\n\t\t}\n\t<\/style>\n\t\n\t<div id=\"wpbm-cf-1\" class=\"wpbm-contact-form\" data-endpoint=\"https:\/\/api-eu1.hsforms.com\/submissions\/v3\/integration\/submit\/26807906\/9a354e46-763c-46d7-8bf3-5696a33f5bc5\" data-error=\"There was a problem sending your enquiry. Please try again.\" data-random-avatar=\"1\" data-avatar-options=\"[&quot;https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/themes\\\/ramtech-child\\\/inc\\\/wpb-modules\\\/assets\\\/avatar_1.svg&quot;,&quot;https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/themes\\\/ramtech-child\\\/inc\\\/wpb-modules\\\/assets\\\/avatar_2.svg&quot;,&quot;https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/themes\\\/ramtech-child\\\/inc\\\/wpb-modules\\\/assets\\\/avatar_3.svg&quot;,&quot;https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/themes\\\/ramtech-child\\\/inc\\\/wpb-modules\\\/assets\\\/avatar_4.svg&quot;]\">\n\t\t\t\t\t<div class=\"wpbm-cf__progress\" aria-hidden=\"true\">\n\t\t\t\t<div class=\"wpbm-cf__bar wpbm-cf__bar--on\"><\/div>\n\t\t\t\t<div class=\"wpbm-cf__bar\"><\/div>\n\t\t\t<\/div>\n\t\t\n\t\t<div class=\"wpbm-cf__step wpbm-cf__step--active\" id=\"wpbm-cf-1-s1\">\n\t\t\t<div class=\"wpbm-cf__intro\">\n\t\t\t\t\t\t\t\t\t<div class=\"wpbm-cf__avatar-wrap\"><img class=\"wpbm-cf__avatar\" src=\"https:\/\/ramtechglobal.com\/wp-content\/themes\/ramtech-child\/inc\/wpb-modules\/assets\/avatar_1.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"wpbm-cf__intro-copy\">\n\t\t\t\t\t<h2 class=\"wpbm-cf__heading wpbm-cf__typewriter\" data-typewriter>Hi there, my name is Rambot \u2014 let&#039;s get your message to the right team.<\/h2>\n\t\t\t\t\t<p class=\"wpbm-cf__subtext wpbm-cf__typewriter wpbm-cf__typewriter--body\" data-typewriter>Fill in a few details below so we know who we&#039;re talking to.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-cf__grid wpbm-cf__grid--3\">\n\t\t\t\t\t<div class=\"wpbm-cf__field\" data-field=\"firstname\">\n\t\t<label class=\"wpbm-cf__sr-only\" for=\"wpbm-cf-firstname-2\">First Name *<\/label>\n\t\t<input id=\"wpbm-cf-firstname-2\" name=\"firstname\" type=\"text\" class=\"wpbm-cf__input\" data-label=\"First Name\" placeholder=\"First Name *\" autocomplete=\"given-name\" required>\n\t<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-cf__field\" data-field=\"lastname\">\n\t\t<label class=\"wpbm-cf__sr-only\" for=\"wpbm-cf-lastname-3\">Last Name *<\/label>\n\t\t<input id=\"wpbm-cf-lastname-3\" name=\"lastname\" type=\"text\" class=\"wpbm-cf__input\" data-label=\"Last Name\" placeholder=\"Last Name *\" autocomplete=\"family-name\" required>\n\t<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-cf__field\" data-field=\"jobtitle\">\n\t\t<label class=\"wpbm-cf__sr-only\" for=\"wpbm-cf-jobtitle-4\">Job Title *<\/label>\n\t\t<input id=\"wpbm-cf-jobtitle-4\" name=\"jobtitle\" type=\"text\" class=\"wpbm-cf__input\" data-label=\"Job Title\" placeholder=\"Job Title *\" autocomplete=\"organization-title\" required>\n\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<div class=\"wpbm-cf__grid wpbm-cf__grid--3\">\n\t\t\t\t\t<div class=\"wpbm-cf__field\" data-field=\"phone\">\n\t\t<label class=\"wpbm-cf__sr-only\" for=\"wpbm-cf-phone-5\">Contact Number *<\/label>\n\t\t<input id=\"wpbm-cf-phone-5\" name=\"phone\" type=\"tel\" class=\"wpbm-cf__input\" data-label=\"Contact Number\" placeholder=\"Contact Number *\" autocomplete=\"tel\" required>\n\t<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-cf__field\" data-field=\"email\">\n\t\t<label class=\"wpbm-cf__sr-only\" for=\"wpbm-cf-email-6\">Work Email *<\/label>\n\t\t<input id=\"wpbm-cf-email-6\" name=\"email\" type=\"email\" class=\"wpbm-cf__input\" data-label=\"Work Email\" placeholder=\"Work Email *\" autocomplete=\"email\" required>\n\t<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-cf__field\" data-field=\"company\">\n\t\t<label class=\"wpbm-cf__sr-only\" for=\"wpbm-cf-company-7\">Company *<\/label>\n\t\t<input id=\"wpbm-cf-company-7\" name=\"company\" type=\"text\" class=\"wpbm-cf__input\" data-label=\"Company\" placeholder=\"Company *\" autocomplete=\"organization\" required>\n\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<div class=\"wpbm-cf__btn-row wpbm-cf__btn-row--next\">\n\t\t\t\t<button type=\"button\" class=\"wpbm-cf__btn wpbm-cf__btn--primary\" data-action=\"next\"><span class=\"wpbm-cf__btn-lbl\">Next<\/span><\/button>\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<div class=\"wpbm-cf__step\" id=\"wpbm-cf-1-s2\">\n\t\t\t<div class=\"wpbm-cf__intro wpbm-cf__intro--stage2\">\n\t\t\t\t\t\t\t\t\t<div class=\"wpbm-cf__avatar-wrap\"><img class=\"wpbm-cf__avatar\" src=\"https:\/\/ramtechglobal.com\/wp-content\/themes\/ramtech-child\/inc\/wpb-modules\/assets\/avatar_1.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div>\n\t\t\t\t\t\t\t\t<div class=\"wpbm-cf__intro-copy\">\n\t\t\t\t\t<h2 class=\"wpbm-cf__heading wpbm-cf__typewriter\" data-typewriter data-name-template=\"Almost there [name] \u2014 tell us a little more about your enquiry.\">Almost there [name] \u2014 tell us a little more about your enquiry.<\/h2>\n\t\t\t\t\t<p class=\"wpbm-cf__subtext wpbm-cf__typewriter wpbm-cf__typewriter--body\" data-typewriter data-name-template=\"Add your location, enquiry type, and message below.\">Add your location, enquiry type, and message below.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-cf__grid wpbm-cf__grid--3 wpbm-cf__grid--stage2-top\">\n\t\t\t\t\t<div class=\"wpbm-cf__field wpbm-cf__field--select\" data-field=\"country\">\n\t\t<label class=\"wpbm-cf__sr-only\" for=\"wpbm-cf-country-8\">Country *<\/label>\n\t\t<select id=\"wpbm-cf-country-8\" name=\"country\" class=\"wpbm-cf__input\" data-label=\"Country\" data-placeholder=\"Country *\" required>\n\t\t\t<option value=\"\" disabled >Country *<\/option>\n\t\t\t\t\t\t\t<option value=\"Afghanistan\" >Afghanistan<\/option>\n\t\t\t\t\t\t\t<option value=\"\u00c5land Islands\" >\u00c5land Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Albania\" >Albania<\/option>\n\t\t\t\t\t\t\t<option value=\"Algeria\" >Algeria<\/option>\n\t\t\t\t\t\t\t<option value=\"American Samoa\" >American Samoa<\/option>\n\t\t\t\t\t\t\t<option value=\"Andorra\" >Andorra<\/option>\n\t\t\t\t\t\t\t<option value=\"Angola\" >Angola<\/option>\n\t\t\t\t\t\t\t<option value=\"Anguilla\" >Anguilla<\/option>\n\t\t\t\t\t\t\t<option value=\"Antarctica\" >Antarctica<\/option>\n\t\t\t\t\t\t\t<option value=\"Antigua and Barbuda\" >Antigua and Barbuda<\/option>\n\t\t\t\t\t\t\t<option value=\"Argentina\" >Argentina<\/option>\n\t\t\t\t\t\t\t<option value=\"Armenia\" >Armenia<\/option>\n\t\t\t\t\t\t\t<option value=\"Aruba\" >Aruba<\/option>\n\t\t\t\t\t\t\t<option value=\"Asia\/Pacific Region\" >Asia\/Pacific Region<\/option>\n\t\t\t\t\t\t\t<option value=\"Australia\" >Australia<\/option>\n\t\t\t\t\t\t\t<option value=\"Austria\" >Austria<\/option>\n\t\t\t\t\t\t\t<option value=\"Azerbaijan\" >Azerbaijan<\/option>\n\t\t\t\t\t\t\t<option value=\"Bahamas\" >Bahamas<\/option>\n\t\t\t\t\t\t\t<option value=\"Bahrain\" >Bahrain<\/option>\n\t\t\t\t\t\t\t<option value=\"Bangladesh\" >Bangladesh<\/option>\n\t\t\t\t\t\t\t<option value=\"Barbados\" >Barbados<\/option>\n\t\t\t\t\t\t\t<option value=\"Belarus\" >Belarus<\/option>\n\t\t\t\t\t\t\t<option value=\"Belgium\" >Belgium<\/option>\n\t\t\t\t\t\t\t<option value=\"Belize\" >Belize<\/option>\n\t\t\t\t\t\t\t<option value=\"Benin\" >Benin<\/option>\n\t\t\t\t\t\t\t<option value=\"Bermuda\" >Bermuda<\/option>\n\t\t\t\t\t\t\t<option value=\"Bhutan\" >Bhutan<\/option>\n\t\t\t\t\t\t\t<option value=\"Bolivia\" >Bolivia<\/option>\n\t\t\t\t\t\t\t<option value=\"Bosnia and Herzegovina\" >Bosnia and Herzegovina<\/option>\n\t\t\t\t\t\t\t<option value=\"Botswana\" >Botswana<\/option>\n\t\t\t\t\t\t\t<option value=\"Bouvet Island\" >Bouvet Island<\/option>\n\t\t\t\t\t\t\t<option value=\"Brazil\" >Brazil<\/option>\n\t\t\t\t\t\t\t<option value=\"British Indian Ocean Territory\" >British Indian Ocean Territory<\/option>\n\t\t\t\t\t\t\t<option value=\"British Virgin Islands\" >British Virgin Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Brunei\" >Brunei<\/option>\n\t\t\t\t\t\t\t<option value=\"Bulgaria\" >Bulgaria<\/option>\n\t\t\t\t\t\t\t<option value=\"Burkina Faso\" >Burkina Faso<\/option>\n\t\t\t\t\t\t\t<option value=\"Burundi\" >Burundi<\/option>\n\t\t\t\t\t\t\t<option value=\"Cambodia\" >Cambodia<\/option>\n\t\t\t\t\t\t\t<option value=\"Cameroon\" >Cameroon<\/option>\n\t\t\t\t\t\t\t<option value=\"Canada\" >Canada<\/option>\n\t\t\t\t\t\t\t<option value=\"Canary Islands\" >Canary Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Cape Verde\" >Cape Verde<\/option>\n\t\t\t\t\t\t\t<option value=\"Caribbean Netherlands\" >Caribbean Netherlands<\/option>\n\t\t\t\t\t\t\t<option value=\"Cayman Islands\" >Cayman Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Central African Republic\" >Central African Republic<\/option>\n\t\t\t\t\t\t\t<option value=\"Chad\" >Chad<\/option>\n\t\t\t\t\t\t\t<option value=\"Chile\" >Chile<\/option>\n\t\t\t\t\t\t\t<option value=\"China\" >China<\/option>\n\t\t\t\t\t\t\t<option value=\"Christmas Island\" >Christmas Island<\/option>\n\t\t\t\t\t\t\t<option value=\"Cocos (Keeling) Islands\" >Cocos (Keeling) Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Colombia\" >Colombia<\/option>\n\t\t\t\t\t\t\t<option value=\"Comoros\" >Comoros<\/option>\n\t\t\t\t\t\t\t<option value=\"Congo\" >Congo<\/option>\n\t\t\t\t\t\t\t<option value=\"Cook Islands\" >Cook Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Costa Rica\" >Costa Rica<\/option>\n\t\t\t\t\t\t\t<option value=\"Cote d&#039;Ivoire\" >Cote d&#039;Ivoire<\/option>\n\t\t\t\t\t\t\t<option value=\"Croatia\" >Croatia<\/option>\n\t\t\t\t\t\t\t<option value=\"Cuba\" >Cuba<\/option>\n\t\t\t\t\t\t\t<option value=\"Cura\u00e7ao\" >Cura\u00e7ao<\/option>\n\t\t\t\t\t\t\t<option value=\"Cyprus\" >Cyprus<\/option>\n\t\t\t\t\t\t\t<option value=\"Czech Republic\" >Czech Republic<\/option>\n\t\t\t\t\t\t\t<option value=\"Democratic Republic of the Congo\" >Democratic Republic of the Congo<\/option>\n\t\t\t\t\t\t\t<option value=\"Denmark\" >Denmark<\/option>\n\t\t\t\t\t\t\t<option value=\"Djibouti\" >Djibouti<\/option>\n\t\t\t\t\t\t\t<option value=\"Dominica\" >Dominica<\/option>\n\t\t\t\t\t\t\t<option value=\"Dominican Republic\" >Dominican Republic<\/option>\n\t\t\t\t\t\t\t<option value=\"East Timor\" >East Timor<\/option>\n\t\t\t\t\t\t\t<option value=\"Ecuador\" >Ecuador<\/option>\n\t\t\t\t\t\t\t<option value=\"Egypt\" >Egypt<\/option>\n\t\t\t\t\t\t\t<option value=\"El Salvador\" >El Salvador<\/option>\n\t\t\t\t\t\t\t<option value=\"Equatorial Guinea\" >Equatorial Guinea<\/option>\n\t\t\t\t\t\t\t<option value=\"Eritrea\" >Eritrea<\/option>\n\t\t\t\t\t\t\t<option value=\"Estonia\" >Estonia<\/option>\n\t\t\t\t\t\t\t<option value=\"Ethiopia\" >Ethiopia<\/option>\n\t\t\t\t\t\t\t<option value=\"Europe\" >Europe<\/option>\n\t\t\t\t\t\t\t<option value=\"Falkland Islands\" >Falkland Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Faroe Islands\" >Faroe Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Fiji\" >Fiji<\/option>\n\t\t\t\t\t\t\t<option value=\"Finland\" >Finland<\/option>\n\t\t\t\t\t\t\t<option value=\"France\" >France<\/option>\n\t\t\t\t\t\t\t<option value=\"French Guiana\" >French Guiana<\/option>\n\t\t\t\t\t\t\t<option value=\"French Polynesia\" >French Polynesia<\/option>\n\t\t\t\t\t\t\t<option value=\"French Southern and Antarctic Lands\" >French Southern and Antarctic Lands<\/option>\n\t\t\t\t\t\t\t<option value=\"Gabon\" >Gabon<\/option>\n\t\t\t\t\t\t\t<option value=\"Gambia\" >Gambia<\/option>\n\t\t\t\t\t\t\t<option value=\"Georgia\" >Georgia<\/option>\n\t\t\t\t\t\t\t<option value=\"Germany\" >Germany<\/option>\n\t\t\t\t\t\t\t<option value=\"Ghana\" >Ghana<\/option>\n\t\t\t\t\t\t\t<option value=\"Gibraltar\" >Gibraltar<\/option>\n\t\t\t\t\t\t\t<option value=\"Greece\" >Greece<\/option>\n\t\t\t\t\t\t\t<option value=\"Greenland\" >Greenland<\/option>\n\t\t\t\t\t\t\t<option value=\"Grenada\" >Grenada<\/option>\n\t\t\t\t\t\t\t<option value=\"Guadeloupe\" >Guadeloupe<\/option>\n\t\t\t\t\t\t\t<option value=\"Guam\" >Guam<\/option>\n\t\t\t\t\t\t\t<option value=\"Guatemala\" >Guatemala<\/option>\n\t\t\t\t\t\t\t<option value=\"Guernsey\" >Guernsey<\/option>\n\t\t\t\t\t\t\t<option value=\"Guinea\" >Guinea<\/option>\n\t\t\t\t\t\t\t<option value=\"Guinea-Bissau\" >Guinea-Bissau<\/option>\n\t\t\t\t\t\t\t<option value=\"Guyana\" >Guyana<\/option>\n\t\t\t\t\t\t\t<option value=\"Haiti\" >Haiti<\/option>\n\t\t\t\t\t\t\t<option value=\"Heard Island and McDonald Islands\" >Heard Island and McDonald Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Honduras\" >Honduras<\/option>\n\t\t\t\t\t\t\t<option value=\"Hong Kong\" >Hong Kong<\/option>\n\t\t\t\t\t\t\t<option value=\"Hungary\" >Hungary<\/option>\n\t\t\t\t\t\t\t<option value=\"Iceland\" >Iceland<\/option>\n\t\t\t\t\t\t\t<option value=\"India\" >India<\/option>\n\t\t\t\t\t\t\t<option value=\"Indonesia\" >Indonesia<\/option>\n\t\t\t\t\t\t\t<option value=\"Iran\" >Iran<\/option>\n\t\t\t\t\t\t\t<option value=\"Iraq\" >Iraq<\/option>\n\t\t\t\t\t\t\t<option value=\"Ireland\" >Ireland<\/option>\n\t\t\t\t\t\t\t<option value=\"Isle of Man\" >Isle of Man<\/option>\n\t\t\t\t\t\t\t<option value=\"Israel\" >Israel<\/option>\n\t\t\t\t\t\t\t<option value=\"Italy\" >Italy<\/option>\n\t\t\t\t\t\t\t<option value=\"Jamaica\" >Jamaica<\/option>\n\t\t\t\t\t\t\t<option value=\"Japan\" >Japan<\/option>\n\t\t\t\t\t\t\t<option value=\"Jersey\" >Jersey<\/option>\n\t\t\t\t\t\t\t<option value=\"Jordan\" >Jordan<\/option>\n\t\t\t\t\t\t\t<option value=\"Kazakhstan\" >Kazakhstan<\/option>\n\t\t\t\t\t\t\t<option value=\"Kenya\" >Kenya<\/option>\n\t\t\t\t\t\t\t<option value=\"Kiribati\" >Kiribati<\/option>\n\t\t\t\t\t\t\t<option value=\"Kosovo\" >Kosovo<\/option>\n\t\t\t\t\t\t\t<option value=\"Kuwait\" >Kuwait<\/option>\n\t\t\t\t\t\t\t<option value=\"Kyrgyzstan\" >Kyrgyzstan<\/option>\n\t\t\t\t\t\t\t<option value=\"Laos\" >Laos<\/option>\n\t\t\t\t\t\t\t<option value=\"Latvia\" >Latvia<\/option>\n\t\t\t\t\t\t\t<option value=\"Lebanon\" >Lebanon<\/option>\n\t\t\t\t\t\t\t<option value=\"Lesotho\" >Lesotho<\/option>\n\t\t\t\t\t\t\t<option value=\"Liberia\" >Liberia<\/option>\n\t\t\t\t\t\t\t<option value=\"Libya\" >Libya<\/option>\n\t\t\t\t\t\t\t<option value=\"Liechtenstein\" >Liechtenstein<\/option>\n\t\t\t\t\t\t\t<option value=\"Lithuania\" >Lithuania<\/option>\n\t\t\t\t\t\t\t<option value=\"Luxembourg\" >Luxembourg<\/option>\n\t\t\t\t\t\t\t<option value=\"Macau\" >Macau<\/option>\n\t\t\t\t\t\t\t<option value=\"Macedonia (FYROM)\" >Macedonia (FYROM)<\/option>\n\t\t\t\t\t\t\t<option value=\"Madagascar\" >Madagascar<\/option>\n\t\t\t\t\t\t\t<option value=\"Malawi\" >Malawi<\/option>\n\t\t\t\t\t\t\t<option value=\"Malaysia\" >Malaysia<\/option>\n\t\t\t\t\t\t\t<option value=\"Maldives\" >Maldives<\/option>\n\t\t\t\t\t\t\t<option value=\"Mali\" >Mali<\/option>\n\t\t\t\t\t\t\t<option value=\"Malta\" >Malta<\/option>\n\t\t\t\t\t\t\t<option value=\"Marshall Islands\" >Marshall Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Martinique\" >Martinique<\/option>\n\t\t\t\t\t\t\t<option value=\"Mauritania\" >Mauritania<\/option>\n\t\t\t\t\t\t\t<option value=\"Mauritius\" >Mauritius<\/option>\n\t\t\t\t\t\t\t<option value=\"Mayotte\" >Mayotte<\/option>\n\t\t\t\t\t\t\t<option value=\"Mexico\" >Mexico<\/option>\n\t\t\t\t\t\t\t<option value=\"Micronesia\" >Micronesia<\/option>\n\t\t\t\t\t\t\t<option value=\"Moldova\" >Moldova<\/option>\n\t\t\t\t\t\t\t<option value=\"Monaco\" >Monaco<\/option>\n\t\t\t\t\t\t\t<option value=\"Mongolia\" >Mongolia<\/option>\n\t\t\t\t\t\t\t<option value=\"Montenegro\" >Montenegro<\/option>\n\t\t\t\t\t\t\t<option value=\"Montserrat\" >Montserrat<\/option>\n\t\t\t\t\t\t\t<option value=\"Morocco\" >Morocco<\/option>\n\t\t\t\t\t\t\t<option value=\"Mozambique\" >Mozambique<\/option>\n\t\t\t\t\t\t\t<option value=\"Myanmar (Burma)\" >Myanmar (Burma)<\/option>\n\t\t\t\t\t\t\t<option value=\"Namibia\" >Namibia<\/option>\n\t\t\t\t\t\t\t<option value=\"Nauru\" >Nauru<\/option>\n\t\t\t\t\t\t\t<option value=\"Nepal\" >Nepal<\/option>\n\t\t\t\t\t\t\t<option value=\"Netherlands\" >Netherlands<\/option>\n\t\t\t\t\t\t\t<option value=\"Netherlands Antilles\" >Netherlands Antilles<\/option>\n\t\t\t\t\t\t\t<option value=\"New Caledonia\" >New Caledonia<\/option>\n\t\t\t\t\t\t\t<option value=\"New Zealand\" >New Zealand<\/option>\n\t\t\t\t\t\t\t<option value=\"Nicaragua\" >Nicaragua<\/option>\n\t\t\t\t\t\t\t<option value=\"Niger\" >Niger<\/option>\n\t\t\t\t\t\t\t<option value=\"Nigeria\" >Nigeria<\/option>\n\t\t\t\t\t\t\t<option value=\"Niue\" >Niue<\/option>\n\t\t\t\t\t\t\t<option value=\"Norfolk Island\" >Norfolk Island<\/option>\n\t\t\t\t\t\t\t<option value=\"North Korea\" >North Korea<\/option>\n\t\t\t\t\t\t\t<option value=\"Northern Mariana Islands\" >Northern Mariana Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Norway\" >Norway<\/option>\n\t\t\t\t\t\t\t<option value=\"Oman\" >Oman<\/option>\n\t\t\t\t\t\t\t<option value=\"Pakistan\" >Pakistan<\/option>\n\t\t\t\t\t\t\t<option value=\"Palau\" >Palau<\/option>\n\t\t\t\t\t\t\t<option value=\"Palestine\" >Palestine<\/option>\n\t\t\t\t\t\t\t<option value=\"Panama\" >Panama<\/option>\n\t\t\t\t\t\t\t<option value=\"Papua New Guinea\" >Papua New Guinea<\/option>\n\t\t\t\t\t\t\t<option value=\"Paraguay\" >Paraguay<\/option>\n\t\t\t\t\t\t\t<option value=\"Peru\" >Peru<\/option>\n\t\t\t\t\t\t\t<option value=\"Philippines\" >Philippines<\/option>\n\t\t\t\t\t\t\t<option value=\"Pitcairn Islands\" >Pitcairn Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Poland\" >Poland<\/option>\n\t\t\t\t\t\t\t<option value=\"Portugal\" >Portugal<\/option>\n\t\t\t\t\t\t\t<option value=\"Puerto Rico\" >Puerto Rico<\/option>\n\t\t\t\t\t\t\t<option value=\"Qatar\" >Qatar<\/option>\n\t\t\t\t\t\t\t<option value=\"R\u00e9union\" >R\u00e9union<\/option>\n\t\t\t\t\t\t\t<option value=\"Romania\" >Romania<\/option>\n\t\t\t\t\t\t\t<option value=\"Russia\" >Russia<\/option>\n\t\t\t\t\t\t\t<option value=\"Rwanda\" >Rwanda<\/option>\n\t\t\t\t\t\t\t<option value=\"Saint Barth\u00e9lemy\" >Saint Barth\u00e9lemy<\/option>\n\t\t\t\t\t\t\t<option value=\"Saint Helena\" >Saint Helena<\/option>\n\t\t\t\t\t\t\t<option value=\"Saint Kitts and Nevis\" >Saint Kitts and Nevis<\/option>\n\t\t\t\t\t\t\t<option value=\"Saint Lucia\" >Saint Lucia<\/option>\n\t\t\t\t\t\t\t<option value=\"Saint Martin\" >Saint Martin<\/option>\n\t\t\t\t\t\t\t<option value=\"Saint Pierre and Miquelon\" >Saint Pierre and Miquelon<\/option>\n\t\t\t\t\t\t\t<option value=\"Saint Vincent and the Grenadines\" >Saint Vincent and the Grenadines<\/option>\n\t\t\t\t\t\t\t<option value=\"Samoa\" >Samoa<\/option>\n\t\t\t\t\t\t\t<option value=\"San Marino\" >San Marino<\/option>\n\t\t\t\t\t\t\t<option value=\"Sao Tome and Principe\" >Sao Tome and Principe<\/option>\n\t\t\t\t\t\t\t<option value=\"Saudi Arabia\" >Saudi Arabia<\/option>\n\t\t\t\t\t\t\t<option value=\"Senegal\" >Senegal<\/option>\n\t\t\t\t\t\t\t<option value=\"Serbia\" >Serbia<\/option>\n\t\t\t\t\t\t\t<option value=\"Seychelles\" >Seychelles<\/option>\n\t\t\t\t\t\t\t<option value=\"Sierra Leone\" >Sierra Leone<\/option>\n\t\t\t\t\t\t\t<option value=\"Singapore\" >Singapore<\/option>\n\t\t\t\t\t\t\t<option value=\"Sint Maarten\" >Sint Maarten<\/option>\n\t\t\t\t\t\t\t<option value=\"Slovakia\" >Slovakia<\/option>\n\t\t\t\t\t\t\t<option value=\"Slovenia\" >Slovenia<\/option>\n\t\t\t\t\t\t\t<option value=\"Solomon Islands\" >Solomon Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Somalia\" >Somalia<\/option>\n\t\t\t\t\t\t\t<option value=\"South Africa\" >South Africa<\/option>\n\t\t\t\t\t\t\t<option value=\"South Georgia and the South Sandwich Islands\" >South Georgia and the South Sandwich Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"South Korea\" >South Korea<\/option>\n\t\t\t\t\t\t\t<option value=\"South Sudan\" >South Sudan<\/option>\n\t\t\t\t\t\t\t<option value=\"Spain\" >Spain<\/option>\n\t\t\t\t\t\t\t<option value=\"Sri Lanka\" >Sri Lanka<\/option>\n\t\t\t\t\t\t\t<option value=\"Sudan\" >Sudan<\/option>\n\t\t\t\t\t\t\t<option value=\"Suriname\" >Suriname<\/option>\n\t\t\t\t\t\t\t<option value=\"Svalbard and Jan Mayen\" >Svalbard and Jan Mayen<\/option>\n\t\t\t\t\t\t\t<option value=\"Swaziland\" >Swaziland<\/option>\n\t\t\t\t\t\t\t<option value=\"Sweden\" >Sweden<\/option>\n\t\t\t\t\t\t\t<option value=\"Switzerland\" >Switzerland<\/option>\n\t\t\t\t\t\t\t<option value=\"Syria\" >Syria<\/option>\n\t\t\t\t\t\t\t<option value=\"Taiwan\" >Taiwan<\/option>\n\t\t\t\t\t\t\t<option value=\"Tajikistan\" >Tajikistan<\/option>\n\t\t\t\t\t\t\t<option value=\"Tanzania\" >Tanzania<\/option>\n\t\t\t\t\t\t\t<option value=\"Thailand\" >Thailand<\/option>\n\t\t\t\t\t\t\t<option value=\"Togo\" >Togo<\/option>\n\t\t\t\t\t\t\t<option value=\"Tokelau\" >Tokelau<\/option>\n\t\t\t\t\t\t\t<option value=\"Tonga\" >Tonga<\/option>\n\t\t\t\t\t\t\t<option value=\"Trinidad and Tobago\" >Trinidad and Tobago<\/option>\n\t\t\t\t\t\t\t<option value=\"Tunisia\" >Tunisia<\/option>\n\t\t\t\t\t\t\t<option value=\"Turkey\" >Turkey<\/option>\n\t\t\t\t\t\t\t<option value=\"Turkmenistan\" >Turkmenistan<\/option>\n\t\t\t\t\t\t\t<option value=\"Turks and Caicos Islands\" >Turks and Caicos Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Tuvalu\" >Tuvalu<\/option>\n\t\t\t\t\t\t\t<option value=\"U.S. Virgin Islands\" >U.S. Virgin Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Uganda\" >Uganda<\/option>\n\t\t\t\t\t\t\t<option value=\"Ukraine\" >Ukraine<\/option>\n\t\t\t\t\t\t\t<option value=\"United Arab Emirates\" >United Arab Emirates<\/option>\n\t\t\t\t\t\t\t<option value=\"United Kingdom\"  selected='selected'>United Kingdom<\/option>\n\t\t\t\t\t\t\t<option value=\"United States\" >United States<\/option>\n\t\t\t\t\t\t\t<option value=\"United States Minor Outlying Islands\" >United States Minor Outlying Islands<\/option>\n\t\t\t\t\t\t\t<option value=\"Uruguay\" >Uruguay<\/option>\n\t\t\t\t\t\t\t<option value=\"Uzbekistan\" >Uzbekistan<\/option>\n\t\t\t\t\t\t\t<option value=\"Vanuatu\" >Vanuatu<\/option>\n\t\t\t\t\t\t\t<option value=\"Vatican City\" >Vatican City<\/option>\n\t\t\t\t\t\t\t<option value=\"Venezuela\" >Venezuela<\/option>\n\t\t\t\t\t\t\t<option value=\"Vietnam\" >Vietnam<\/option>\n\t\t\t\t\t\t\t<option value=\"Wallis and Futuna\" >Wallis and Futuna<\/option>\n\t\t\t\t\t\t\t<option value=\"Western Sahara\" >Western Sahara<\/option>\n\t\t\t\t\t\t\t<option value=\"Yemen\" >Yemen<\/option>\n\t\t\t\t\t\t\t<option value=\"Zambia\" >Zambia<\/option>\n\t\t\t\t\t\t\t<option value=\"Zimbabwe\" >Zimbabwe<\/option>\n\t\t\t\t\t<\/select>\n\t<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-cf__field wpbm-cf__field--select\" data-field=\"sector\">\n\t\t<label class=\"wpbm-cf__sr-only\" for=\"wpbm-cf-sector-9\">Sector<\/label>\n\t\t<select id=\"wpbm-cf-sector-9\" name=\"sector\" class=\"wpbm-cf__input\" data-label=\"Sector\" data-placeholder=\"Sector\" >\n\t\t\t<option value=\"\" disabled  selected='selected'>Sector<\/option>\n\t\t\t\t\t\t\t<option value=\"Construction\" >Construction<\/option>\n\t\t\t\t\t\t\t<option value=\"Maritime\" >Maritime<\/option>\n\t\t\t\t\t\t\t<option value=\"Industrial\" >Industrial<\/option>\n\t\t\t\t\t\t\t<option value=\"Infrastructure\" >Infrastructure<\/option>\n\t\t\t\t\t\t\t<option value=\"Events\" >Events<\/option>\n\t\t\t\t\t\t\t<option value=\"Agriculture\" >Agriculture<\/option>\n\t\t\t\t\t\t\t<option value=\"Leisure\" >Leisure<\/option>\n\t\t\t\t\t\t\t<option value=\"Mining\" >Mining<\/option>\n\t\t\t\t\t\t\t<option value=\"Void and Vacant Properties\" >Void and Vacant Properties<\/option>\n\t\t\t\t\t\t\t<option value=\"Other\" >Other<\/option>\n\t\t\t\t\t<\/select>\n\t<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-cf__field wpbm-cf__field--select\" data-field=\"nature_of_your_enquiry\">\n\t\t<label class=\"wpbm-cf__sr-only\" for=\"wpbm-cf-nature_of_your_enquiry-10\">Nature of your enquiry *<\/label>\n\t\t<select id=\"wpbm-cf-nature_of_your_enquiry-10\" name=\"nature_of_your_enquiry\" class=\"wpbm-cf__input\" data-label=\"Nature of your enquiry\" data-placeholder=\"Nature of your enquiry *\" required>\n\t\t\t<option value=\"\" disabled  selected='selected'>Nature of your enquiry *<\/option>\n\t\t\t\t\t\t\t<option value=\"WES\" >WES<\/option>\n\t\t\t\t\t\t\t<option value=\"WiSE\" >WiSE<\/option>\n\t\t\t\t\t\t\t<option value=\"REACT\" >REACT<\/option>\n\t\t\t\t\t\t\t<option value=\"I&#039;d like to become a distributor\" >I&#039;d like to become a distributor<\/option>\n\t\t\t\t\t\t\t<option value=\"Other Enquiry\" >Other Enquiry<\/option>\n\t\t\t\t\t\t\t<option value=\"Training Enquiry\" >Training Enquiry<\/option>\n\t\t\t\t\t<\/select>\n\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-cf__field wpbm-cf__field--textarea\" data-field=\"message\">\n\t\t\t\t<label class=\"wpbm-cf__sr-only\" for=\"wpbm-cf-1-message\">Message *<\/label>\n\t\t\t\t<span class=\"wpbm-cf__textarea-label\" data-default-label=\"Message\">Message <span class=\"wpbm-cf__required\">*<\/span><\/span>\n\t\t\t\t<textarea id=\"wpbm-cf-1-message\" name=\"message\" class=\"wpbm-cf__textarea\" data-label=\"Message\" required><\/textarea>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-cf__legal\">\n\t\t\t\t<p class=\"wpbm-cf__legal-copy wpbm-cf__legal-copy--merged\">Ramtech is committed to protecting and respecting your privacy, and we&#039;ll only use your personal information to administer your account and to provide the products and services you requested from us. From time to time, we would like to contact you about our products and services, as well as other content that may be of interest to you. You can unsubscribe from these communications at any time. For more information on how to unsubscribe, our privacy practices, and how we are committed to protecting and respecting your privacy, please review our <a href=\"\/privacy-statement\/\">Privacy Statement<\/a>. By clicking submit below, you consent to allow Ramtech to store and process the personal information submitted above to provide you the content requested.<\/p>\n\t\t\t\t<label class=\"wpbm-cf__checkbox\">\n\t\t\t\t\t<input type=\"checkbox\" name=\"LEGAL_CONSENT.subscription_type_187062454\" value=\"true\">\n\t\t\t\t\t<span>I agree to receive other communications from Ramtech.<\/span>\n\t\t\t\t<\/label>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-cf__btn-row wpbm-cf__btn-row--split\">\n\t\t\t\t<button type=\"button\" class=\"wpbm-cf__btn wpbm-cf__btn--ghost\" data-action=\"prev\"><span class=\"wpbm-cf__btn-lbl\">Back<\/span><\/button>\n\t\t\t\t<button type=\"button\" class=\"wpbm-cf__btn wpbm-cf__btn--primary wpbm-cf__btn--submit\" data-action=\"submit\"><span class=\"wpbm-cf__btn-lbl\">Submit<\/span><span class=\"wpbm-cf__spinner\" aria-hidden=\"true\"><\/span><\/button>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-cf__error\" id=\"wpbm-cf-1-error\" aria-live=\"polite\" style=\"display:none;\"><\/div>\n\t\t<\/div>\n\n\t\t<div class=\"wpbm-cf__success\" id=\"wpbm-cf-1-success\" aria-live=\"polite\">\n\t\t\t<div class=\"wpbm-cf__success-inner\">\n\t\t\t\t\t\t\t\t\t<div class=\"wpbm-cf__avatar-wrap wpbm-cf__avatar-wrap--success\"><img class=\"wpbm-cf__avatar\" src=\"https:\/\/ramtechglobal.com\/wp-content\/themes\/ramtech-child\/inc\/wpb-modules\/assets\/avatar_1.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/div>\n\t\t\t\t\t\t\t\t<h3 class=\"wpbm-cf__success-heading wpbm-cf__typewriter\" data-typewriter data-name-template=\"Message sent!\">Message sent!<\/h3>\n\t\t\t\t<p class=\"wpbm-cf__success-copy wpbm-cf__typewriter wpbm-cf__typewriter--body\" data-typewriter data-name-template=\"Thanks for getting in touch [name]. Our team will review your enquiry and come back to you soon.\">Thanks for getting in touch [name]. Our team will review your enquiry and come back to you soon.<\/p>\n\t\t\t<\/div>\n\t\t<\/div>\n\t<\/div>\n\n\t<script>\n\t(function(){\n\t\tvar ROOT = document.getElementById(\"wpbm-cf-1\");\n\t\tif (!ROOT) return;\n\t\tvar ENDPOINT = \"https:\\\/\\\/api-eu1.hsforms.com\\\/submissions\\\/v3\\\/integration\\\/submit\\\/26807906\\\/9a354e46-763c-46d7-8bf3-5696a33f5bc5\";\n\t\tvar TYPE_SPEED = 40;\n\t\tvar COPY_DELAY = 400;\n\t\tvar step1 = ROOT.querySelector('#wpbm-cf-1-s1');\n\t\tvar step2 = ROOT.querySelector('#wpbm-cf-1-s2');\n\t\tvar success = ROOT.querySelector('#wpbm-cf-1-success');\n\t\tvar errorBox = ROOT.querySelector('#wpbm-cf-1-error');\n\t\tvar bars = ROOT.querySelectorAll('.wpbm-cf__bar');\n\t\tvar pendingTypewriterScope = null;\n\t\tvar hasPlayedTypewriterInView = false;\n\t\tvar typewriterObserver = null;\n\n\t\t(function applyRandomAvatar(){\n\t\t\tif (!ROOT.hasAttribute('data-random-avatar')) return;\n\t\t\tvar raw = ROOT.getAttribute('data-avatar-options') || '[]';\n\t\t\tvar options = [];\n\t\t\ttry { options = JSON.parse(raw); } catch (e) { options = []; }\n\t\t\tif (!options.length) return;\n\t\t\tvar selected = options[Math.floor(Math.random() * options.length)];\n\t\t\tif (!selected) return;\n\t\t\tROOT.querySelectorAll('.wpbm-cf__avatar').forEach(function(img){ img.setAttribute('src', selected); });\n\t\t})();\n\n\t\tfunction val(name) {\n\t\t\tvar el = ROOT.querySelector('[name=\"' + name + '\"]');\n\t\t\treturn el ? String(el.value || '').trim() : '';\n\t\t}\n\n\t\tfunction applyNameTemplate(template) {\n\t\t\tvar first = val('firstname').replace(\/\\s+\/g, ' ').trim();\n\t\t\tfirst = first ? (first.split(' ')[0] || '') : '';\n\t\t\tvar rendered = String(template || '').replace(\/\\[\\s*name\\s*\\]\/gi, first);\n\t\t\tif (!first) {\n\t\t\t\trendered = rendered.replace(\/\\s{2,}\/g, ' ').replace(\/\\s+([\u2014,.;:!?])\/g, '$1').trim();\n\t\t\t}\n\t\t\treturn rendered;\n\t\t}\n\n\t\tfunction refreshNameTokens(scope) {\n\t\t\tvar root = scope || ROOT;\n\t\t\troot.querySelectorAll('[data-name-template]').forEach(function(node){\n\t\t\t\tvar source = node.getAttribute('data-name-template') || '';\n\t\t\t\tvar rendered = applyNameTemplate(source);\n\t\t\t\tnode.setAttribute('data-typewriter-source', rendered);\n\t\t\t\tnode.textContent = rendered;\n\t\t\t});\n\t\t}\n\n\t\tfunction reserveTypewriterSpace(scope) {\n\t\t\tvar root = scope || ROOT;\n\t\t\troot.querySelectorAll('[data-typewriter]').forEach(function(node){\n\t\t\t\tvar text = node.getAttribute('data-typewriter-source');\n\t\t\t\tif (text === null) {\n\t\t\t\t\ttext = node.textContent;\n\t\t\t\t\tnode.setAttribute('data-typewriter-source', text);\n\t\t\t\t}\n\t\t\t\tvar previous = node.textContent;\n\t\t\t\tnode.textContent = text;\n\t\t\t\tnode.style.minHeight = '0px';\n\t\t\t\tvar h = Math.ceil(node.scrollHeight || node.offsetHeight || 0);\n\t\t\t\tif (h > 0) node.style.minHeight = h + 'px';\n\t\t\t\tnode.textContent = previous;\n\t\t\t});\n\t\t}\n\n\t\tfunction lockStageHeight() {\n\t\t\tvar panels = [step1, step2, success];\n\t\t\tvar original = {\n\t\t\t\tstep1: step1.classList.contains('wpbm-cf__step--active'),\n\t\t\t\tstep2: step2.classList.contains('wpbm-cf__step--active'),\n\t\t\t\tsuccessDisplay: success.style.display\n\t\t\t};\n\t\t\tvar maxHeight = 0;\n\t\t\tROOT.style.setProperty('--cf-step-min-height', '0px');\n\n\t\t\tpanels.forEach(function(panel){\n\t\t\t\tif (!panel) return;\n\t\t\t\tvar prev = {\n\t\t\t\t\tdisplay: panel.style.display,\n\t\t\t\t\tvisibility: panel.style.visibility,\n\t\t\t\t\tposition: panel.style.position,\n\t\t\t\t\tpointerEvents: panel.style.pointerEvents\n\t\t\t\t};\n\t\t\t\tstep1.classList.remove('wpbm-cf__step--active');\n\t\t\t\tstep2.classList.remove('wpbm-cf__step--active');\n\t\t\t\tpanel.style.display = 'block';\n\t\t\t\tpanel.style.visibility = 'hidden';\n\t\t\t\tpanel.style.position = 'relative';\n\t\t\t\tpanel.style.pointerEvents = 'none';\n\t\t\t\tif (panel === step1 || panel === step2) {\n\t\t\t\t\tpanel.classList.add('wpbm-cf__step--active');\n\t\t\t\t}\n\t\t\t\trefreshNameTokens(panel);\n\t\t\t\treserveTypewriterSpace(panel);\n\t\t\t\tmaxHeight = Math.max(maxHeight, Math.ceil(ROOT.scrollHeight || ROOT.offsetHeight || 0));\n\t\t\t\tpanel.style.display = prev.display;\n\t\t\t\tpanel.style.visibility = prev.visibility;\n\t\t\t\tpanel.style.position = prev.position;\n\t\t\t\tpanel.style.pointerEvents = prev.pointerEvents;\n\t\t\t});\n\n\t\t\tstep1.classList.toggle('wpbm-cf__step--active', original.step1);\n\t\t\tstep2.classList.toggle('wpbm-cf__step--active', original.step2);\n\t\t\tsuccess.style.display = original.successDisplay;\n\t\t\tif (maxHeight > 0) {\n\t\t\t\tROOT.style.setProperty('--cf-step-min-height', maxHeight + 'px');\n\t\t\t}\n\t\t}\n\n\t\tfunction runTypewriter(scope) {\n\t\t\trefreshNameTokens(scope || ROOT);\n\t\t\treserveTypewriterSpace(scope || ROOT);\n\t\t\tvar offset = 0;\n\t\t\t(scope || ROOT).querySelectorAll('[data-typewriter]').forEach(function(node){\n\t\t\t\tvar text = node.getAttribute('data-typewriter-source');\n\t\t\t\tif (text === null) {\n\t\t\t\t\ttext = node.textContent;\n\t\t\t\t\tnode.setAttribute('data-typewriter-source', text);\n\t\t\t\t}\n\t\t\t\tnode.textContent = '';\n\t\t\t\tnode.classList.remove('is-typing');\n\t\t\t\tvar startDelay = offset;\n\t\t\t\tvar duration = text.length * TYPE_SPEED;\n\t\t\t\twindow.setTimeout(function(){\n\t\t\t\t\tvar i = 0;\n\t\t\t\t\tnode.classList.add('is-typing');\n\t\t\t\t\t(function tick(){\n\t\t\t\t\t\tnode.textContent = text.slice(0, i);\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\tif (i <= text.length) {\n\t\t\t\t\t\t\twindow.setTimeout(tick, TYPE_SPEED);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.classList.remove('is-typing');\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t}, startDelay);\n\t\t\t\toffset += duration;\n\t\t\t\tif (!node.classList.contains('wpbm-cf__typewriter--body')) {\n\t\t\t\t\toffset += COPY_DELAY;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction isModuleInView() {\n\t\t\tvar rect = ROOT.getBoundingClientRect();\n\t\t\tvar vh = window.innerHeight || document.documentElement.clientHeight || 0;\n\t\t\treturn rect.bottom > 0 && rect.top < vh;\n\t\t}\n\n\t\tfunction playTypewriterWhenVisible(scope) {\n\t\t\tpendingTypewriterScope = scope || ROOT;\n\t\t\tif (isModuleInView()) {\n\t\t\t\thasPlayedTypewriterInView = true;\n\t\t\t\trunTypewriter(pendingTypewriterScope);\n\t\t\t\tpendingTypewriterScope = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!('IntersectionObserver' in window)) {\n\t\t\t\thasPlayedTypewriterInView = true;\n\t\t\t\trunTypewriter(pendingTypewriterScope);\n\t\t\t\tpendingTypewriterScope = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!typewriterObserver) {\n\t\t\t\ttypewriterObserver = new IntersectionObserver(function(entries) {\n\t\t\t\t\tentries.forEach(function(entry) {\n\t\t\t\t\t\tif (!entry.isIntersecting || !pendingTypewriterScope) return;\n\t\t\t\t\t\thasPlayedTypewriterInView = true;\n\t\t\t\t\t\trunTypewriter(pendingTypewriterScope);\n\t\t\t\t\t\tpendingTypewriterScope = null;\n\t\t\t\t\t});\n\t\t\t\t}, { threshold: [0, 0.15, 0.35] });\n\t\t\t\ttypewriterObserver.observe(ROOT);\n\t\t\t}\n\t\t}\n\n\t\tfunction setError(message) {\n\t\t\tif (!errorBox) return;\n\t\t\terrorBox.textContent = message || '';\n\t\t\terrorBox.style.display = message ? 'block' : 'none';\n\t\t}\n\n\t\tfunction scheduleReset(wrap, handler) {\n\t\t\twindow.clearTimeout(wrap._cfResetTimer);\n\t\t\twrap._cfResetTimer = window.setTimeout(handler, 1800);\n\t\t}\n\n\t\tfunction markInvalid(name, message) {\n\t\t\tvar wrap = ROOT.querySelector('.wpbm-cf__field[data-field=\"' + name + '\"]');\n\t\t\tif (!wrap) return;\n\t\t\twrap.classList.add('is-invalid');\n\t\t\tvar input = wrap.querySelector('input, select, textarea');\n\t\t\tvar textareaLabel = wrap.querySelector('.wpbm-cf__textarea-label');\n\t\t\tvar defaultLabel = input && input.getAttribute('data-label') ? input.getAttribute('data-label') : '';\n\t\t\tvar defaultPlaceholder = input && input.getAttribute('data-placeholder') ? input.getAttribute('data-placeholder') : (defaultLabel ? defaultLabel + ' *' : '');\n\t\t\tif (textareaLabel) {\n\t\t\t\ttextareaLabel.innerHTML = (message || 'This field is required').replace(\/&\/g, '&amp;').replace(\/<\/g, '&lt;').replace(\/>\/g, '&gt;');\n\t\t\t\ttextareaLabel.classList.remove('is-hidden');\n\t\t\t}\n\t\t\tif (input) {\n\t\t\t\tif (input.tagName === 'SELECT') {\n\t\t\t\t\tvar placeholderOption = input.querySelector('option[value=\"\"]');\n\t\t\t\t\tif (placeholderOption) placeholderOption.textContent = message || 'This field is required';\n\t\t\t\t} else if (input.tagName === 'TEXTAREA') {\n\t\t\t\t\t\/\/ handled by textarea label\n\t\t\t\t} else {\n\t\t\t\t\tinput.placeholder = message || 'This field is required';\n\t\t\t\t}\n\t\t\t}\n\t\t\tscheduleReset(wrap, function(){\n\t\t\t\tif (!input || String(input.value || '').trim()) return;\n\t\t\t\twrap.classList.remove('is-invalid');\n\t\t\t\tif (textareaLabel) {\n\t\t\t\t\ttextareaLabel.innerHTML = (textareaLabel.getAttribute('data-default-label') || defaultLabel || 'Message') + ' <span class=\"wpbm-cf__required\">*<\/span>';\n\t\t\t\t\ttextareaLabel.classList.remove('is-hidden');\n\t\t\t\t}\n\t\t\t\tif (input.tagName === 'SELECT') {\n\t\t\t\t\tvar placeholderOption = input.querySelector('option[value=\"\"]');\n\t\t\t\t\tif (placeholderOption) placeholderOption.textContent = defaultPlaceholder;\n\t\t\t\t} else if (input.tagName !== 'TEXTAREA') {\n\t\t\t\t\tinput.placeholder = defaultPlaceholder;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction clearInvalid(name) {\n\t\t\tvar wrap = ROOT.querySelector('.wpbm-cf__field[data-field=\"' + name + '\"]');\n\t\t\tif (!wrap) return;\n\t\t\twindow.clearTimeout(wrap._cfResetTimer);\n\t\t\twrap.classList.remove('is-invalid');\n\t\t\tvar input = wrap.querySelector('input, select, textarea');\n\t\t\tvar textareaLabel = wrap.querySelector('.wpbm-cf__textarea-label');\n\t\t\tvar defaultLabel = input && input.getAttribute('data-label') ? input.getAttribute('data-label') : '';\n\t\t\tvar defaultPlaceholder = input && input.getAttribute('data-placeholder') ? input.getAttribute('data-placeholder') : (defaultLabel ? defaultLabel + ' *' : '');\n\t\t\tif (textareaLabel) {\n\t\t\t\ttextareaLabel.innerHTML = (textareaLabel.getAttribute('data-default-label') || defaultLabel || 'Message') + ' <span class=\"wpbm-cf__required\">*<\/span>';\n\t\t\t\tif (input && String(input.value || '').trim()) {\n\t\t\t\t\ttextareaLabel.classList.add('is-hidden');\n\t\t\t\t} else {\n\t\t\t\t\ttextareaLabel.classList.remove('is-hidden');\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (input) {\n\t\t\t\tif (input.tagName === 'SELECT') {\n\t\t\t\t\tvar placeholderOption = input.querySelector('option[value=\"\"]');\n\t\t\t\t\tif (placeholderOption) placeholderOption.textContent = defaultPlaceholder;\n\t\t\t\t} else if (input.tagName !== 'TEXTAREA') {\n\t\t\t\t\tinput.placeholder = defaultPlaceholder;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tROOT.querySelectorAll('.wpbm-cf__textarea-label').forEach(function(node){\n\t\t\tnode.setAttribute('data-default-label', (node.textContent || '').trim());\n\t\t});\n\n\n\t\tfunction syncTextareaLabels() {\n\t\t\tROOT.querySelectorAll('.wpbm-cf__field--textarea').forEach(function(wrap){\n\t\t\t\tvar label = wrap.querySelector('.wpbm-cf__textarea-label');\n\t\t\t\tvar input = wrap.querySelector('textarea');\n\t\t\t\tif (!label || !input || wrap.classList.contains('is-invalid')) return;\n\t\t\t\tif (String(input.value || '').trim()) {\n\t\t\t\t\tlabel.classList.add('is-hidden');\n\t\t\t\t} else {\n\t\t\t\t\tlabel.classList.remove('is-hidden');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction validateStep1() {\n\t\t\tvar ok = true;\n\t\t\t[\n\t\t\t\t{ name: 'firstname', msg: 'This field is required' },\n\t\t\t\t{ name: 'lastname', msg: 'This field is required' },\n\t\t\t\t{ name: 'jobtitle', msg: 'This field is required' },\n\t\t\t\t{ name: 'phone', msg: 'This field is required' },\n\t\t\t\t{ name: 'email', msg: 'Please enter a valid email' },\n\t\t\t\t{ name: 'company', msg: 'This field is required' }\n\t\t\t].forEach(function(f){\n\t\t\t\tvar v = val(f.name);\n\t\t\t\tvar fail = !v || (f.name === 'email' && !\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(v));\n\t\t\t\tif (fail) {\n\t\t\t\t\tmarkInvalid(f.name, f.msg);\n\t\t\t\t\tok = false;\n\t\t\t\t} else {\n\t\t\t\t\tclearInvalid(f.name);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ok;\n\t\t}\n\n\t\tfunction validateStep2() {\n\t\t\tvar ok = true;\n\t\t\t[\n\t\t\t\t{ name: 'country', msg: 'This field is required' },\n\t\t\t\t{ name: 'nature_of_your_enquiry', msg: 'This field is required' },\n\t\t\t\t{ name: 'message', msg: 'This field is required' }\n\t\t\t].forEach(function(f){\n\t\t\t\tif (!val(f.name)) {\n\t\t\t\t\tmarkInvalid(f.name, f.msg);\n\t\t\t\t\tok = false;\n\t\t\t\t} else {\n\t\t\t\t\tclearInvalid(f.name);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ok;\n\t\t}\n\n\t\tfunction setStep(n) {\n\t\t\tsetError('');\n\t\t\tstep1.style.display = '';\n\t\t\tstep2.style.display = '';\n\t\t\tsuccess.style.display = 'none';\n\t\t\tstep1.classList.toggle('wpbm-cf__step--active', n === 1);\n\t\t\tstep2.classList.toggle('wpbm-cf__step--active', n === 2);\n\t\t\tif (bars.length > 1) bars[1].classList.toggle('wpbm-cf__bar--on', n === 2);\n\t\t\tlockStageHeight();\n\t\t\tplayTypewriterWhenVisible(n === 1 ? step1 : step2);\n\t\t}\n\n\t\tfunction showSuccess() {\n\t\t\tstep1.classList.remove('wpbm-cf__step--active');\n\t\t\tstep2.classList.remove('wpbm-cf__step--active');\n\t\t\tstep1.style.display = 'none';\n\t\t\tstep2.style.display = 'none';\n\t\t\tsuccess.style.display = 'flex';\n\t\t\tlockStageHeight();\n\t\t\tplayTypewriterWhenVisible(success);\n\t\t}\n\n\t\tROOT.querySelectorAll('input, select, textarea').forEach(function(el){\n\t\t\tel.addEventListener('input', function(){\n\t\t\t\tif (el.name === 'firstname') refreshNameTokens();\n\t\t\t\tif (el.name) clearInvalid(el.name);\n\t\t\t\tsyncTextareaLabels();\n\t\t\t\tsetError('');\n\t\t\t});\n\t\t\tel.addEventListener('change', function(){\n\t\t\t\tif (el.name === 'firstname') refreshNameTokens();\n\t\t\t\tif (el.name) clearInvalid(el.name);\n\t\t\t\tsyncTextareaLabels();\n\t\t\t\tsetError('');\n\t\t\t});\n\t\t});\n\n\t\tlockStageHeight();\n\t\tplayTypewriterWhenVisible(step1);\n\t\twindow.addEventListener('resize', function(){ lockStageHeight(); reserveTypewriterSpace(ROOT); if (!hasPlayedTypewriterInView && pendingTypewriterScope && isModuleInView()) { playTypewriterWhenVisible(pendingTypewriterScope); } });\n\t\twindow.addEventListener('load', function(){ lockStageHeight(); reserveTypewriterSpace(ROOT); if (!hasPlayedTypewriterInView && pendingTypewriterScope) { playTypewriterWhenVisible(pendingTypewriterScope); } });\n\n\t\tROOT.addEventListener('click', function(e){\n\t\t\tvar btn = e.target.closest('[data-action]');\n\t\t\tif (!btn) return;\n\t\t\tvar action = btn.getAttribute('data-action');\n\t\t\tif (action === 'next') {\n\t\t\t\tif (validateStep1()) setStep(2);\n\t\t\t}\n\t\t\tif (action === 'prev') {\n\t\t\t\tsetStep(1);\n\t\t\t}\n\t\t\tif (action === 'submit') {\n\t\t\t\tif (!validateStep2()) return;\n\t\t\t\tsubmit(btn);\n\t\t\t}\n\t\t});\n\n\t\tfunction submit(btn) {\n\t\t\tbtn.disabled = true;\n\t\t\tbtn.classList.add('is-loading');\n\t\t\tsetError('');\n\t\t\tvar fields = [\n\t\t\t\t{ name: 'firstname', value: val('firstname') },\n\t\t\t\t{ name: 'lastname', value: val('lastname') },\n\t\t\t\t{ name: 'jobtitle', value: val('jobtitle') },\n\t\t\t\t{ name: 'phone', value: val('phone') },\n\t\t\t\t{ name: 'email', value: val('email') },\n\t\t\t\t{ name: 'country', value: val('country') },\n\t\t\t\t{ name: 'sector', value: val('sector') },\n\t\t\t\t{ name: 'company', value: val('company') },\n\t\t\t\t{ name: 'nature_of_your_enquiry', value: val('nature_of_your_enquiry') },\n\t\t\t\t{ name: 'message', value: val('message') }\n\t\t\t];\n\t\t\tvar checkbox = ROOT.querySelector('[name=\"LEGAL_CONSENT.subscription_type_187062454\"]');\n\t\t\tif (checkbox && checkbox.checked) {\n\t\t\t\tfields.push({ name: 'LEGAL_CONSENT.subscription_type_187062454', value: 'true' });\n\t\t\t}\n\t\t\tfetch(ENDPOINT, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: { 'Content-Type': 'application\/json' },\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tfields: fields,\n\t\t\t\t\tcontext: {\n\t\t\t\t\t\tpageUri: window.location.href,\n\t\t\t\t\t\tpageName: document.title\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t\t.then(function(response){\n\t\t\t\tif (!response.ok) {\n\t\t\t\t\treturn response.text().then(function(text){ throw new Error(text || ('HubSpot submission failed with status ' + response.status)); });\n\t\t\t\t}\n\t\t\t\treturn response.json().catch(function(){ return {}; });\n\t\t\t})\n\t\t\t.then(function(){\n\t\t\t\tshowSuccess();\n\t\t\t})\n\t\t\t.catch(function(err){\n\t\t\t\tconsole.error('[wpbm_contact_form] HubSpot submission error:', err);\n\t\t\t\tsetError(ROOT.getAttribute('data-error') || 'There was a problem sending your enquiry. Please try again.');\n\t\t\t})\n\t\t\t.finally(function(){\n\t\t\t\tbtn.disabled = false;\n\t\t\t\tbtn.classList.remove('is-loading');\n\t\t\t});\n\t\t}\n\t})();\n\t<\/script>\n\t<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-0\" data-row=\"script-row-unique-0\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-0\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row row-container\" id=\"row-unique-1\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell  vc_custom_1775654316779 border-color-uydo-color single-block-padding  unradius-xl\" style=\"border-style: solid;border-top-width: 1px ;border-right-width: 1px ;border-bottom-width: 1px ;border-left-width: 1px ;\" ><div class=\"uncont\" >\t<style>\n\t\t#wpbm-calc-11{\n\t\t\t--calc-accent:#E74011;\n\t\t\t--calc-dark:#323A45;\n\t\t}\n\t<\/style>\n\t\n\t<div class=\"wpbm-cost-calculator\" id=\"wpbm-calc-11\">\n\n\t\t\n\t\t<div class=\"wpbm-calc__grid\">\n\n\t\t\t<div class=\"wpbm-calc__config-col\">\n\t\t\t\t<div class=\"wpbm-calc__card\">\n\t\t\t\t\t<div class=\"wpbm-calc__card-header\">\n\t\t\t\t\t\t<div class=\"wpbm-calc__card-icon\">\n\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"3\"\/><path d=\"M19.07 4.93a10 10 0 010 14.14M4.93 4.93a10 10 0 000 14.14\"\/><\/svg>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<h2>Configuration<\/h2>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"wpbm-calc__card-body\">\n\n\t\t\t\t\t\t<div class=\"wpbm-calc__field\">\n\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M2 20h20l-2-7H4L2 20zm10-16v4M8 8h8\"\/><\/svg>\n\t\t\t\t\t\t\t\tVessel Size\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t<div class=\"wpbm-calc__vessel-group\" data-field=\"vesselSize\"><\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"wpbm-calc__field\">\n\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6\"\/><\/svg>\n\t\t\t\t\t\t\t\tHourly Fire Watch Rate\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t<div class=\"wpbm-calc__range-wrap\">\n\t\t\t\t\t\t\t\t<div class=\"wpbm-calc__range-row\">\n\t\t\t\t\t\t\t\t\t<span class=\"wpbm-calc__range-hint\">Min<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wpbm-calc__range-val\" data-display=\"hourlyRate\"><\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"wpbm-calc__range-hint\">Max<\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<input type=\"range\" data-field=\"hourlyRate\" \/>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"wpbm-calc__field\">\n\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg>\n\t\t\t\t\t\t\t\tHours Per Day\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t<div class=\"wpbm-calc__select-wrap\">\n\t\t\t\t\t\t\t\t<select data-field=\"hoursPerDay\"><\/select>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"wpbm-calc__field\">\n\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><\/svg>\n\t\t\t\t\t\t\t\tNumber of Guards\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t<div class=\"wpbm-calc__select-wrap\">\n\t\t\t\t\t\t\t\t<select data-field=\"numGuards\"><\/select>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t<div class=\"wpbm-calc__field\">\n\t\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"\/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"\/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"\/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"\/><\/svg>\n\t\t\t\t\t\t\t\tDuration\t\t\t\t\t\t\t<\/label>\n\t\t\t\t\t\t\t<div class=\"wpbm-calc__select-wrap\">\n\t\t\t\t\t\t\t\t<select data-field=\"durationYears\"><\/select>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-calc__results-col\">\n\n\t\t\t\t<div class=\"wpbm-calc__metrics-row\">\n\t\t\t\t\t<div class=\"wpbm-calc__metric-card\">\n\t\t\t\t\t\t<div class=\"wpbm-calc__mc-label\">WES One-Time Cost<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__mc-value\" data-result=\"wesCost\">\u2014<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__mc-sub\">Fixed equipment investment<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"wpbm-calc__metric-card\">\n\t\t\t\t\t\t<div class=\"wpbm-calc__mc-label\">Fire Watch Total<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__mc-value\" data-result=\"fwTotal\">\u2014<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__mc-sub\" data-result=\"fwTotalSub\">Over selected period<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"wpbm-calc__savings-card\" data-result=\"savingsCard\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__sc-label\" data-result=\"savingsLabel\">Projected Savings<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__sc-value\" data-result=\"savingsValue\">\u2014<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__sc-sub\" data-result=\"savingsSub\">Difference over selected duration<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"wpbm-calc__savings-icon\" data-result=\"savingsIcon\">\n\t\t\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\" data-result=\"savingsSvg\"><polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\"\/><polyline points=\"17 6 23 6 23 12\"\/><\/svg>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"wpbm-calc__strip\">\n\t\t\t\t\t<div class=\"wpbm-calc__strip-card\">\n\t\t\t\t\t\t<div class=\"wpbm-calc__strip-label\">Daily Fire Watch<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__strip-val\" data-result=\"dailyCost\">\u2014<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__strip-unit\">per day<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"wpbm-calc__strip-card\">\n\t\t\t\t\t\t<div class=\"wpbm-calc__strip-label\">Break-Even (Days)<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__strip-val\" data-result=\"beDays\">\u2014<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__strip-unit\">jours<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"wpbm-calc__strip-card\">\n\t\t\t\t\t\t<div class=\"wpbm-calc__strip-label\">Break-Even (Years)<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__strip-val\" data-result=\"beYears\">\u2014<\/div>\n\t\t\t\t\t\t<div class=\"wpbm-calc__strip-unit\">years<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\n\t\t\t\t<div class=\"wpbm-calc__breakeven-callout\">\n\t\t\t\t\tWES pays for itself in approximately <strong data-result=\"beCallout\">\u2014<\/strong>.\n\t\t\t\t<\/div>\n\n\t\t\t<\/div>\n\t\t<\/div>\n\n\t\t<div class=\"wpbm-calc__chart-card\">\n\t\t\t<div class=\"wpbm-calc__chart-title\">\n\t\t\t\t<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg>\n\t\t\t\tCost Comparison Over Time\t\t\t<\/div>\n\t\t\t<div class=\"wpbm-calc__chart-legend\">\n\t\t\t\t<div class=\"wpbm-calc__legend-item\">\n\t\t\t\t\t<div class=\"wpbm-calc__legend-dot\" data-legend=\"wes\"><\/div>\n\t\t\t\t\t<span>WES Cost<\/span>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"wpbm-calc__legend-item\">\n\t\t\t\t\t<div class=\"wpbm-calc__legend-dot\" data-legend=\"fw\"><\/div>\n\t\t\t\t\t<span>Fire Watch Cost<\/span>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<canvas data-canvas=\"chart\" width=\"1200\" height=\"420\"><\/canvas>\n\t\t<\/div>\n\n\t<\/div>\n\n\t<script>\n\t(function() {\n\t\tvar CONFIG = {\"brand\":{\"companyName\":\"WES\",\"tagline\":\"\",\"accentColour\":\"#E74011\",\"darkColour\":\"#323A45\"},\"currency\":{\"code\":\"USD\",\"locale\":\"en-US\"},\"wesCosts\":{\"Small\":35000,\"Medium\":50000,\"Large\":100000},\"vesselSizes\":[{\"id\":\"Small\",\"label\":\"Small\",\"sublabel\":\"Up to 50m\"},{\"id\":\"Medium\",\"label\":\"Medium\",\"sublabel\":\"50 \\u2013 100m\"},{\"id\":\"Large\",\"label\":\"Large\",\"sublabel\":\"100m+\"}],\"defaults\":{\"vesselSize\":\"Medium\",\"hourlyRate\":70,\"hoursPerDay\":12,\"numGuards\":1,\"durationYears\":1},\"hourlyRateMin\":10,\"hourlyRateMax\":500,\"hourlyRateStep\":5,\"hoursOptions\":[8,12,24],\"maxGuards\":6,\"maxDurationYears\":10,\"chart\":{\"wesLineColour\":\"#323A45\",\"fireWatchLineColour\":\"#0ea5e9\"}};\n\t\tvar ROOT   = document.getElementById(\"wpbm-calc-11\");\n\t\tif (!ROOT) return;\n\n\t\tfunction q(sel)  { return ROOT.querySelector(sel); }\n\t\tfunction qa(sel) { return ROOT.querySelectorAll(sel); }\n\t\tfunction res(key){ return ROOT.querySelector('[data-result=\"' + key + '\"]'); }\n\n\t\tvar state = {\n\t\t\tvesselSize:    CONFIG.defaults.vesselSize,\n\t\t\thourlyRate:    CONFIG.defaults.hourlyRate,\n\t\t\thoursPerDay:   CONFIG.defaults.hoursPerDay,\n\t\t\tnumGuards:     CONFIG.defaults.numGuards,\n\t\t\tdurationYears: CONFIG.defaults.durationYears\n\t\t};\n\n\t\tvar chart = null;\n\t\tvar resizeTimer = null;\n\n\t\tfunction hexFromRgb(rgb) {\n\t\t\tif (!rgb) return null;\n\t\t\tif (rgb.indexOf('#') === 0) return rgb;\n\t\t\tvar m = rgb.match(\/\\d+\/g);\n\t\t\tif (!m || m.length < 3) return null;\n\t\t\treturn '#' + m.slice(0, 3).map(function(v){\n\t\t\t\treturn ('0' + parseInt(v, 10).toString(16)).slice(-2);\n\t\t\t}).join('');\n\t\t}\n\n\t\tfunction hexToRgba(hex, alpha) {\n\t\t\tif (!hex) return 'rgba(0,0,0,' + alpha + ')';\n\t\t\tif (hex.indexOf('rgb') === 0) {\n\t\t\t\tvar bits = hex.match(\/\\d+\/g);\n\t\t\t\tif (bits && bits.length >= 3) {\n\t\t\t\t\treturn 'rgba(' + bits[0] + ',' + bits[1] + ',' + bits[2] + ',' + alpha + ')';\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar clean = hex.replace('#', '');\n\t\t\tif (clean.length === 3) {\n\t\t\t\tclean = clean[0] + clean[0] + clean[1] + clean[1] + clean[2] + clean[2];\n\t\t\t}\n\t\t\tif (clean.length !== 6) return hex;\n\t\t\tvar r = parseInt(clean.substring(0, 2), 16);\n\t\t\tvar g = parseInt(clean.substring(2, 4), 16);\n\t\t\tvar b = parseInt(clean.substring(4, 6), 16);\n\t\t\treturn 'rgba(' + r + ',' + g + ',' + b + ',' + alpha + ')';\n\t\t}\n\n\t\tfunction applyPaletteVar(helperId, cssVar, cfgPath) {\n\t\t\tvar node = document.getElementById(helperId);\n\t\t\tif (!node) return;\n\t\t\tvar computed = window.getComputedStyle(node).color;\n\t\t\tvar hex = hexFromRgb(computed);\n\t\t\tif (!hex) return;\n\t\t\tif (cssVar) {\n\t\t\t\tROOT.style.setProperty(cssVar, hex);\n\t\t\t}\n\t\t\tif (cfgPath === 'accent') CONFIG.brand.accentColour = hex;\n\t\t\tif (cfgPath === 'dark') CONFIG.brand.darkColour = hex;\n\t\t\tif (cfgPath === 'wes') CONFIG.chart.wesLineColour = hex;\n\t\t\tif (cfgPath === 'fw') CONFIG.chart.fireWatchLineColour = hex;\n\t\t}\n\n\t\tfunction applyPaletteVars() {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\tfunction fmtCurrency(val) {\n\t\t\ttry {\n\t\t\t\treturn new Intl.NumberFormat(CONFIG.currency.locale, {\n\t\t\t\t\tstyle: 'currency',\n\t\t\t\t\tcurrency: CONFIG.currency.code,\n\t\t\t\t\tmaximumFractionDigits: 0\n\t\t\t\t}).format(val);\n\t\t\t} catch (err) {\n\t\t\t\treturn CONFIG.currency.code + ' ' + Math.round(val).toString();\n\t\t\t}\n\t\t}\n\n\t\tfunction fmtNum(val, dec) {\n\t\t\ttry {\n\t\t\t\treturn new Intl.NumberFormat(CONFIG.currency.locale, {\n\t\t\t\t\tmaximumFractionDigits: dec !== undefined ? dec : 1\n\t\t\t\t}).format(val);\n\t\t\t} catch (err) {\n\t\t\t\treturn Number(val).toFixed(dec !== undefined ? dec : 1);\n\t\t\t}\n\t\t}\n\n\t\tfunction buildUI() {\n\t\t\tvar vg = q('[data-field=\"vesselSize\"]');\n\t\t\tCONFIG.vesselSizes.forEach(function(v) {\n\t\t\t\tvar btn = document.createElement('button');\n\t\t\t\tbtn.type = 'button';\n\t\t\t\tbtn.className = 'wpbm-calc__vessel-btn' + (v.id === state.vesselSize ? ' is-active' : '');\n\t\t\t\tbtn.dataset.id = v.id;\n\t\t\t\tbtn.innerHTML = '<span class=\"wpbm-calc__vb-label\">' + v.label + '<\/span><span class=\"wpbm-calc__vb-sub\">' + v.sublabel + '<\/span>';\n\t\t\t\tbtn.addEventListener('click', function() {\n\t\t\t\t\tstate.vesselSize = v.id;\n\t\t\t\t\tqa('.wpbm-calc__vessel-btn').forEach(function(b) { b.classList.remove('is-active'); });\n\t\t\t\t\tbtn.classList.add('is-active');\n\t\t\t\t\tupdate();\n\t\t\t\t});\n\t\t\t\tvg.appendChild(btn);\n\t\t\t});\n\n\t\t\tvar hs = q('[data-field=\"hoursPerDay\"]');\n\t\t\tCONFIG.hoursOptions.forEach(function(h) {\n\t\t\t\tvar opt = document.createElement('option');\n\t\t\t\topt.value = h;\n\t\t\t\topt.textContent = h + ' hours';\n\t\t\t\tif (h === state.hoursPerDay) opt.selected = true;\n\t\t\t\ths.appendChild(opt);\n\t\t\t});\n\n\t\t\tvar gs = q('[data-field=\"numGuards\"]');\n\t\t\tfor (var i = 1; i <= CONFIG.maxGuards; i++) {\n\t\t\t\tvar gOpt = document.createElement('option');\n\t\t\t\tgOpt.value = i;\n\t\t\t\tgOpt.textContent = i + (i === 1 ? ' guard' : ' guards');\n\t\t\t\tif (i === state.numGuards) gOpt.selected = true;\n\t\t\t\tgs.appendChild(gOpt);\n\t\t\t}\n\n\t\t\tvar ds = q('[data-field=\"durationYears\"]');\n\t\t\tfor (var y = 1; y <= CONFIG.maxDurationYears; y++) {\n\t\t\t\tvar dOpt = document.createElement('option');\n\t\t\t\tdOpt.value = y;\n\t\t\t\tdOpt.textContent = y + (y === 1 ? ' year' : ' years');\n\t\t\t\tif (y === state.durationYears) dOpt.selected = true;\n\t\t\t\tds.appendChild(dOpt);\n\t\t\t}\n\n\t\t\tvar r = q('[data-field=\"hourlyRate\"]');\n\t\t\tr.min   = CONFIG.hourlyRateMin;\n\t\t\tr.max   = CONFIG.hourlyRateMax;\n\t\t\tr.step  = CONFIG.hourlyRateStep;\n\t\t\tr.value = state.hourlyRate;\n\t\t\tq('[data-display=\"hourlyRate\"]').textContent = fmtCurrency(state.hourlyRate);\n\n\t\t\tr.addEventListener('input', function() {\n\t\t\t\tstate.hourlyRate = Number(this.value);\n\t\t\t\tq('[data-display=\"hourlyRate\"]').textContent = fmtCurrency(state.hourlyRate);\n\t\t\t\tupdate();\n\t\t\t});\n\n\t\t\t['hoursPerDay', 'numGuards', 'durationYears'].forEach(function(field) {\n\t\t\t\tq('[data-field=\"' + field + '\"]').addEventListener('change', function() {\n\t\t\t\t\tstate[field] = Number(this.value);\n\t\t\t\t\tupdate();\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tvar dWes = q('[data-legend=\"wes\"]');\n\t\t\tvar dFw  = q('[data-legend=\"fw\"]');\n\t\t\tif (dWes) dWes.style.background = CONFIG.chart.wesLineColour;\n\t\t\tif (dFw)  dFw.style.background  = CONFIG.chart.fireWatchLineColour;\n\n\t\t\tROOT.style.setProperty('--calc-accent', CONFIG.brand.accentColour);\n\t\t\tROOT.style.setProperty('--calc-dark', CONFIG.brand.darkColour);\n\t\t}\n\n\t\tfunction calculate() {\n\t\t\tvar wesCost            = CONFIG.wesCosts[state.vesselSize];\n\t\t\tvar totalDays          = state.durationYears * 365;\n\t\t\tvar dailyCost          = state.hourlyRate * state.hoursPerDay * state.numGuards;\n\t\t\tvar totalFireWatchCost = dailyCost * totalDays;\n\t\t\tvar breakEvenDays      = dailyCost > 0 ? wesCost \/ dailyCost : 0;\n\t\t\tvar breakEvenYears     = breakEvenDays \/ 365;\n\t\t\tvar costDifference     = totalFireWatchCost - wesCost;\n\t\t\treturn {\n\t\t\t\twesCost: wesCost,\n\t\t\t\tdailyCost: dailyCost,\n\t\t\t\ttotalFireWatchCost: totalFireWatchCost,\n\t\t\t\tbreakEvenDays: breakEvenDays,\n\t\t\t\tbreakEvenYears: breakEvenYears,\n\t\t\t\tcostDifference: costDifference\n\t\t\t};\n\t\t}\n\n\t\tfunction update() {\n\t\t\tvar c = calculate();\n\n\t\t\tres('wesCost').textContent    = fmtCurrency(c.wesCost);\n\t\t\tres('fwTotal').textContent    = fmtCurrency(c.totalFireWatchCost);\n\t\t\tres('fwTotalSub').textContent = 'Over ' + state.durationYears + ' year' + (state.durationYears > 1 ? 's' : '');\n\t\t\tres('dailyCost').textContent  = fmtCurrency(c.dailyCost);\n\t\t\tres('beDays').textContent     = fmtNum(c.breakEvenDays, 0);\n\t\t\tres('beYears').textContent    = fmtNum(c.breakEvenYears, 2);\n\n\t\t\tvar positive = c.costDifference > 0;\n\t\t\tvar sc = res('savingsCard');\n\t\t\tsc.className = 'wpbm-calc__savings-card ' + (positive ? 'is-positive' : 'is-negative');\n\t\t\tres('savingsLabel').textContent = positive ? 'Projected Savings' : 'Additional Cost';\n\t\t\tres('savingsValue').textContent = fmtCurrency(Math.abs(c.costDifference));\n\t\t\tres('savingsSub').textContent   = 'Difference over selected ' + state.durationYears + '-year duration';\n\n\t\t\tvar svg = res('savingsSvg');\n\t\t\tif (positive) {\n\t\t\t\tsvg.innerHTML = '<polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\"><\/polyline><polyline points=\"17 6 23 6 23 12\"><\/polyline>';\n\t\t\t} else {\n\t\t\t\tsvg.innerHTML = '<polyline points=\"23 18 13.5 8.5 8.5 13.5 1 6\"><\/polyline><polyline points=\"17 18 23 18 23 12\"><\/polyline>';\n\t\t\t}\n\n\t\t\tres('beCallout').textContent = c.breakEvenDays > 0\n\t\t\t\t? fmtNum(c.breakEvenDays, 0) + ' days (' + fmtNum(c.breakEvenYears, 1) + ' years)'\n\t\t\t\t: '\u2014';\n\n\t\t\tupdateChart();\n\t\t}\n\n\t\tfunction buildChartData() {\n\t\t\tvar labels  = [];\n\t\t\tvar wesData = [];\n\t\t\tvar fwData  = [];\n\t\t\tvar wesCost   = CONFIG.wesCosts[state.vesselSize];\n\t\t\tvar dailyCost = state.hourlyRate * state.hoursPerDay * state.numGuards;\n\t\t\tvar months    = state.durationYears * 12;\n\t\t\tfor (var m = 0; m <= months; m++) {\n\t\t\t\tlabels.push(m === 0 ? 'Start' : 'Mo ' + m);\n\t\t\t\twesData.push(wesCost);\n\t\t\t\tfwData.push(Math.round(dailyCost * (365 \/ 12) * m));\n\t\t\t}\n\t\t\treturn { labels: labels, wesData: wesData, fwData: fwData };\n\t\t}\n\n\t\tfunction initChart() {\n\t\t\tvar canvas = q('[data-canvas=\"chart\"]');\n\t\t\tif (!canvas) return;\n\t\t\tchart = {\n\t\t\t\tcanvas: canvas,\n\t\t\t\tctx: canvas.getContext('2d')\n\t\t\t};\n\t\t}\n\n\t\tfunction roundRect(ctx, x, y, w, h, r) {\n\t\t\tvar radius = Math.min(r, w \/ 2, h \/ 2);\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x + radius, y);\n\t\t\tctx.arcTo(x + w, y, x + w, y + h, radius);\n\t\t\tctx.arcTo(x + w, y + h, x, y + h, radius);\n\t\t\tctx.arcTo(x, y + h, x, y, radius);\n\t\t\tctx.arcTo(x, y, x + w, y, radius);\n\t\t\tctx.closePath();\n\t\t}\n\n\t\tfunction drawLine(ctx, points, color, width) {\n\t\t\tif (!points.length) return;\n\t\t\tctx.beginPath();\n\t\t\tctx.strokeStyle = color;\n\t\t\tctx.lineWidth = width;\n\t\t\tctx.lineJoin = 'round';\n\t\t\tctx.lineCap = 'round';\n\t\t\tctx.moveTo(points[0].x, points[0].y);\n\t\t\tfor (var i = 1; i < points.length; i++) {\n\t\t\t\tctx.lineTo(points[i].x, points[i].y);\n\t\t\t}\n\t\t\tctx.stroke();\n\t\t}\n\n\t\tfunction updateChart() {\n\t\t\tif (!chart || !chart.ctx) return;\n\n\t\t\tvar canvas = chart.canvas;\n\t\t\tvar ctx = chart.ctx;\n\t\t\tvar ratio = window.devicePixelRatio || 1;\n\t\t\tvar cssWidth = canvas.clientWidth || canvas.parentNode.clientWidth || 1200;\n\t\t\tvar cssHeight = 320;\n\t\t\tcanvas.width = Math.round(cssWidth * ratio);\n\t\t\tcanvas.height = Math.round(cssHeight * ratio);\n\t\t\tcanvas.style.height = cssHeight + 'px';\n\t\t\tctx.setTransform(ratio, 0, 0, ratio, 0, 0);\n\t\t\tctx.clearRect(0, 0, cssWidth, cssHeight);\n\n\t\t\tvar data = buildChartData();\n\t\t\tvar values = data.wesData.concat(data.fwData);\n\t\t\tvar maxVal = Math.max.apply(null, values.concat([1]));\n\t\t\tvar minVal = 0;\n\t\t\tvar padding = { top: 16, right: 20, bottom: 34, left: 72 };\n\t\t\tvar plotW = cssWidth - padding.left - padding.right;\n\t\t\tvar plotH = cssHeight - padding.top - padding.bottom;\n\t\t\tvar xCount = Math.max(1, data.labels.length - 1);\n\t\t\tvar yTicks = 5;\n\n\t\t\tctx.fillStyle = '#ffffff';\n\t\t\troundRect(ctx, 0, 0, cssWidth, cssHeight, 12);\n\t\t\tctx.fill();\n\n\t\t\tctx.strokeStyle = '#f0f1f3';\n\t\t\tctx.lineWidth = 1;\n\t\t\tctx.font = '11px sans-serif';\n\t\t\tctx.fillStyle = '#a0a8b4';\n\t\t\tctx.textAlign = 'right';\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\tfor (var yi = 0; yi <= yTicks; yi++) {\n\t\t\t\tvar value = minVal + ( ( maxVal - minVal ) * ( yi \/ yTicks ) );\n\t\t\t\tvar y = padding.top + plotH - ( plotH * ( yi \/ yTicks ) );\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(padding.left, y);\n\t\t\t\tctx.lineTo(cssWidth - padding.right, y);\n\t\t\t\tctx.stroke();\n\t\t\t\tctx.fillText(fmtCurrency(Math.round(value)), padding.left - 10, y);\n\t\t\t}\n\n\t\t\tctx.textAlign = 'center';\n\t\t\tctx.textBaseline = 'top';\n\t\t\tvar xTickLimit = Math.min(13, data.labels.length);\n\t\t\tfor (var xi = 0; xi < data.labels.length; xi++) {\n\t\t\t\tvar show = data.labels.length <= xTickLimit || xi === 0 || xi === data.labels.length - 1 || xi % Math.ceil(data.labels.length \/ xTickLimit) === 0;\n\t\t\t\tif (!show) continue;\n\t\t\t\tvar x = padding.left + ( plotW * ( xi \/ xCount ) );\n\t\t\t\tctx.fillText(data.labels[xi], x, cssHeight - padding.bottom + 10);\n\t\t\t}\n\n\t\t\tfunction pointFor(index, value) {\n\t\t\t\tvar x = padding.left + ( plotW * ( index \/ xCount ) );\n\t\t\t\tvar y = padding.top + plotH - ( ( value - minVal ) \/ ( maxVal - minVal || 1 ) ) * plotH;\n\t\t\t\treturn { x: x, y: y };\n\t\t\t}\n\n\t\t\tvar wesPoints = data.wesData.map(function(v, i){ return pointFor(i, v); });\n\t\t\tvar fwPoints = data.fwData.map(function(v, i){ return pointFor(i, v); });\n\n\t\t\tdrawLine(ctx, wesPoints, CONFIG.chart.wesLineColour, 2.5);\n\t\t\tdrawLine(ctx, fwPoints, CONFIG.chart.fireWatchLineColour, 2.5);\n\n\t\t\tvar lastWes = wesPoints[wesPoints.length - 1];\n\t\t\tvar lastFw = fwPoints[fwPoints.length - 1];\n\t\t\tctx.fillStyle = CONFIG.chart.wesLineColour;\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(lastWes.x, lastWes.y, 3.5, 0, Math.PI * 2);\n\t\t\tctx.fill();\n\t\t\tctx.fillStyle = CONFIG.chart.fireWatchLineColour;\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(lastFw.x, lastFw.y, 3.5, 0, Math.PI * 2);\n\t\t\tctx.fill();\n\t\t}\n\n\t\tfunction handleResize() {\n\t\t\twindow.clearTimeout(resizeTimer);\n\t\t\tresizeTimer = window.setTimeout(updateChart, 120);\n\t\t}\n\n\t\tapplyPaletteVars();\n\t\tbuildUI();\n\t\tinitChart();\n\t\tupdate();\n\t\twindow.addEventListener('resize', handleResize);\n\t\twindow.addEventListener('orientationchange', handleResize);\n\t})();\n\t<\/script>\n\t<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-1\" data-row=\"script-row-unique-1\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-1\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row row-container\" id=\"row-unique-2\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell  vc_custom_1775654644766 border-color-uydo-color single-block-padding style-color-199620-bg has-bg  unradius-xl\" style=\"border-style: solid;border-top-width: 1px ;border-right-width: 1px ;border-bottom-width: 1px ;border-left-width: 1px ;\" ><div class=\"uncont\" >\t<style>\n\t\t#wpbm-qf-12{\n\t\t\t--qf-accent:#E74011;\n\t\t\t--qf-text:#ffffff;\n\t\t\t--qf-body:#ffffff;\n\t\t\t--qf-muted:rgba(255,255,255,0.55);\n\t\t\t--qf-focus:#ffffff;\n\t\t\t--qf-btn-border:#E74011;\n\t\t\t--qf-btn-text:#ffffff;\n\t\t\t--qf-btn-hover-bg:#E74011;\n\t\t\t--qf-btn-hover-text:#ffffff;\n\t\t\t--qf-title-size:30px;\n\t\t\t--qf-copy-size:16px;\n\t\t\t--qf-avatar-size:75px;\n\t\t\t--qf-type-speed:40ms;\n\t\t\t--qf-type-copy-delay:400ms;\n\t\t\t--qf-side-tab-bg:#ffffff;\n\t\t\t--qf-side-tab-border:#ffffff;\n\t\t\t--qf-side-tab-text:#3b4354;\n\t\t\t--qf-side-tab-text-size:16px;\n\t\t\t--qf-side-tab-fade-duration:260ms;\n\t\t\t--qf-side-tab-width:70px;\n\t\t\t--qf-side-tab-avatar-size:40px;\n\t\t\t--qf-side-tab-avatar-offset-y:-12px;\n\t\t\t--qf-side-tab-text-offset-y:0px;\n\t\t\t--qf-side-tab-inner-gap:8px;\n\t\t\t--qf-side-tab-length:200px;\n\t\t}\n\t<\/style>\n\t\n\t<div class=\"wpbm-quote-form wpbm-quote-form--no-progress wpbm-quote-form--has-side-tab\" id=\"wpbm-qf-12\" data-random-avatar=\"1\" data-avatar-options=\"[&quot;https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/themes\\\/ramtech-child\\\/inc\\\/wpb-modules\\\/assets\\\/avatar_1.svg&quot;,&quot;https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/themes\\\/ramtech-child\\\/inc\\\/wpb-modules\\\/assets\\\/avatar_2.svg&quot;,&quot;https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/themes\\\/ramtech-child\\\/inc\\\/wpb-modules\\\/assets\\\/avatar_3.svg&quot;,&quot;https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/themes\\\/ramtech-child\\\/inc\\\/wpb-modules\\\/assets\\\/avatar_4.svg&quot;,&quot;https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/themes\\\/ramtech-child\\\/inc\\\/wpb-modules\\\/assets\\\/avatar_5.svg&quot;,&quot;https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/themes\\\/ramtech-child\\\/inc\\\/wpb-modules\\\/assets\\\/avatar_6.svg&quot;]\">\n\n\t\t\n\t\t<div class=\"wpbm-qf__step wpbm-qf__step--active\" id=\"wpbm-qf-12-s1\">\n\n\t\t\t<div class=\"wpbm-qf__intro\">\n\t\t\t\t\t\t\t\t\t<div class=\"wpbm-qf__avatar-wrap\">\n\t\t\t\t\t\t<img class=\"wpbm-qf__avatar\" src=\"https:\/\/ramtechglobal.com\/wp-content\/themes\/ramtech-child\/inc\/wpb-modules\/assets\/avatar_1.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"wpbm-qf__intro-copy\">\n\t\t\t\t\t<h2 class=\"wpbm-qf__heading wpbm-qf__typewriter\" data-typewriter>Hi there, my name is Rambot \u2014 looking for a quote from Ramtech?<\/h2>\n\t\t\t\t\t<p class=\"wpbm-qf__subtext wpbm-qf__typewriter wpbm-qf__typewriter--body\" data-typewriter>Fill in your details below and let&#039;s get started. We just need a few basics so we know who we&#039;re talking to.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-qf__grid wpbm-qf__grid--2\">\n\t\t\t\t<div class=\"wpbm-qf__field\" data-field=\"firstname\">\n\t\t\t\t\t<input type=\"text\" name=\"firstname\" autocomplete=\"given-name\"\n\t\t\t\t\t\tdata-label=\"Full Name\"\n\t\t\t\t\t\tplaceholder=\"Full Name\">\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"wpbm-qf__field\" data-field=\"phone\">\n\t\t\t\t\t<input type=\"tel\" name=\"phone\" autocomplete=\"tel\"\n\t\t\t\t\t\tdata-label=\"Contact Number\"\n\t\t\t\t\t\tplaceholder=\"Contact Number\">\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-qf__grid wpbm-qf__grid--2\">\n\t\t\t\t<div class=\"wpbm-qf__field\" data-field=\"email\">\n\t\t\t\t\t<input type=\"email\" name=\"email\" autocomplete=\"email\"\n\t\t\t\t\t\tdata-label=\"Work Email\"\n\t\t\t\t\t\tplaceholder=\"Work Email\">\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"wpbm-qf__field\" data-field=\"company\">\n\t\t\t\t\t<input type=\"text\" name=\"company\" autocomplete=\"organization\"\n\t\t\t\t\t\tdata-label=\"Company\"\n\t\t\t\t\t\tplaceholder=\"Company\">\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-qf__btn-row wpbm-qf__btn-row--next\">\n\t\t\t\t<button type=\"button\" class=\"wpbm-qf__btn wpbm-qf__btn--primary wpbm-qf__btn--next\" data-action=\"next\">\n\t\t\t\t\t<span class=\"wpbm-qf__btn-lbl\">Next<\/span>\n\t\t\t\t<\/button>\n\t\t\t<\/div>\n\n\t\t<\/div>\n\n\t\t<div class=\"wpbm-qf__step\" id=\"wpbm-qf-12-s2\">\n\n\t\t\t<div class=\"wpbm-qf__intro\">\n\t\t\t\t\t\t\t\t\t<div class=\"wpbm-qf__avatar-wrap\">\n\t\t\t\t\t\t<img class=\"wpbm-qf__avatar\" src=\"https:\/\/ramtechglobal.com\/wp-content\/themes\/ramtech-child\/inc\/wpb-modules\/assets\/avatar_1.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<div class=\"wpbm-qf__intro-copy\">\n\t\t\t\t\t<h2 class=\"wpbm-qf__heading wpbm-qf__typewriter\" data-typewriter data-name-template=\"Almost there [name] \u2014 Tell where you are based and a little bit about your project\">Almost there [name] \u2014 Tell where you are based and a little bit about your project<\/h2>\n\t\t\t\t\t<p class=\"wpbm-qf__subtext wpbm-qf__typewriter wpbm-qf__typewriter--body\" data-typewriter data-name-template=\"Give us as much detail as you can about what you need.\">Give us as much detail as you can about what you need.<\/p>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-qf__grid wpbm-qf__grid--2\">\n\t\t\t\t<div class=\"wpbm-qf__field\">\n\t\t\t\t\t<input type=\"text\" name=\"state\" autocomplete=\"address-level1\"\n\t\t\t\t\t\tdata-label=\"State \/ Region\"\n\t\t\t\t\t\tplaceholder=\"State \/ Region\">\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"wpbm-qf__field\">\n\t\t\t\t\t<div class=\"wpbm-qf__select-wrap\">\n\t\t\t\t\t\t<select name=\"country\" autocomplete=\"country-name\">\n\t\t\t\t\t\t\t<option value=\"\">Country<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Afghanistan\">Afghanistan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Albania\">Albania<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Algeria\">Algeria<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Andorra\">Andorra<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Angola\">Angola<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Antigua and Barbuda\">Antigua and Barbuda<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Argentina\">Argentina<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Armenia\">Armenia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Australia\">Australia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Austria\">Austria<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Azerbaijan\">Azerbaijan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Bahamas\">Bahamas<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Bahrain\">Bahrain<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Bangladesh\">Bangladesh<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Barbados\">Barbados<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Belarus\">Belarus<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Belgium\">Belgium<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Belize\">Belize<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Benin\">Benin<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Bhutan\">Bhutan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Bolivia\">Bolivia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Bosnia and Herzegovina\">Bosnia and Herzegovina<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Botswana\">Botswana<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Brazil\">Brazil<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Brunei\">Brunei<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Bulgaria\">Bulgaria<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Burkina Faso\">Burkina Faso<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Burundi\">Burundi<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Cabo Verde\">Cabo Verde<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Cambodia\">Cambodia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Cameroon\">Cameroon<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Canada\">Canada<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Central African Republic\">Central African Republic<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Chad\">Chad<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Chile\">Chile<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"China\">China<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Colombia\">Colombia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Comoros\">Comoros<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Congo (Brazzaville)\">Congo (Brazzaville)<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Congo (Kinshasa)\">Congo (Kinshasa)<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Costa Rica\">Costa Rica<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Croatia\">Croatia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Cuba\">Cuba<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Cyprus\">Cyprus<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Czech Republic\">Czech Republic<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Denmark\">Denmark<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Djibouti\">Djibouti<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Dominica\">Dominica<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Dominican Republic\">Dominican Republic<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Ecuador\">Ecuador<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Egypt\">Egypt<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"El Salvador\">El Salvador<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Equatorial Guinea\">Equatorial Guinea<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Eritrea\">Eritrea<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Estonia\">Estonia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Eswatini\">Eswatini<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Ethiopia\">Ethiopia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Fiji\">Fiji<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Finland\">Finland<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"France\">France<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Gabon\">Gabon<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Gambia\">Gambia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Georgia\">Georgia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Germany\">Germany<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Ghana\">Ghana<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Greece\">Greece<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Grenada\">Grenada<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Guatemala\">Guatemala<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Guinea\">Guinea<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Guinea-Bissau\">Guinea-Bissau<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Guyana\">Guyana<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Haiti\">Haiti<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Honduras\">Honduras<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Hungary\">Hungary<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Iceland\">Iceland<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"India\">India<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Indonesia\">Indonesia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Iran\">Iran<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Iraq\">Iraq<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Ireland\">Ireland<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Israel\">Israel<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Italy\">Italy<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Jamaica\">Jamaica<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Japan\">Japan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Jordan\">Jordan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Kazakhstan\">Kazakhstan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Kenya\">Kenya<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Kiribati\">Kiribati<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Kuwait\">Kuwait<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Kyrgyzstan\">Kyrgyzstan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Laos\">Laos<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Latvia\">Latvia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Lebanon\">Lebanon<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Lesotho\">Lesotho<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Liberia\">Liberia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Libya\">Libya<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Liechtenstein\">Liechtenstein<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Lithuania\">Lithuania<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Luxembourg\">Luxembourg<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Madagascar\">Madagascar<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Malawi\">Malawi<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Malaysia\">Malaysia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Maldives\">Maldives<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Mali\">Mali<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Malta\">Malta<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Marshall Islands\">Marshall Islands<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Mauritania\">Mauritania<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Mauritius\">Mauritius<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Mexico\">Mexico<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Micronesia\">Micronesia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Moldova\">Moldova<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Monaco\">Monaco<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Mongolia\">Mongolia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Montenegro\">Montenegro<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Morocco\">Morocco<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Mozambique\">Mozambique<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Myanmar\">Myanmar<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Namibia\">Namibia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Nauru\">Nauru<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Nepal\">Nepal<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Netherlands\">Netherlands<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"New Zealand\">New Zealand<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Nicaragua\">Nicaragua<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Niger\">Niger<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Nigeria\">Nigeria<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"North Korea\">North Korea<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"North Macedonia\">North Macedonia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Norway\">Norway<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Oman\">Oman<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Pakistan\">Pakistan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Palau\">Palau<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Palestine\">Palestine<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Panama\">Panama<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Papua New Guinea\">Papua New Guinea<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Paraguay\">Paraguay<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Peru\">Peru<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Philippines\">Philippines<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Poland\">Poland<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Portugal\">Portugal<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Qatar\">Qatar<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Romania\">Romania<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Russia\">Russia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Rwanda\">Rwanda<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Saint Kitts and Nevis\">Saint Kitts and Nevis<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Saint Lucia\">Saint Lucia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Saint Vincent and the Grenadines\">Saint Vincent and the Grenadines<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Samoa\">Samoa<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"San Marino\">San Marino<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Sao Tome and Principe\">Sao Tome and Principe<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Saudi Arabia\">Saudi Arabia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Senegal\">Senegal<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Serbia\">Serbia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Seychelles\">Seychelles<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Sierra Leone\">Sierra Leone<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Singapore\">Singapore<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Slovakia\">Slovakia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Slovenia\">Slovenia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Solomon Islands\">Solomon Islands<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Somalia\">Somalia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"South Africa\">South Africa<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"South Korea\">South Korea<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"South Sudan\">South Sudan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Spain\">Spain<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Sri Lanka\">Sri Lanka<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Sudan\">Sudan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Suriname\">Suriname<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Sweden\">Sweden<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Switzerland\">Switzerland<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Syria\">Syria<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Taiwan\">Taiwan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Tajikistan\">Tajikistan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Tanzania\">Tanzania<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Thailand\">Thailand<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Timor-Leste\">Timor-Leste<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Togo\">Togo<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Tonga\">Tonga<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Trinidad and Tobago\">Trinidad and Tobago<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Tunisia\">Tunisia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Turkey\">Turkey<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Turkmenistan\">Turkmenistan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Tuvalu\">Tuvalu<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Uganda\">Uganda<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Ukraine\">Ukraine<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"United Arab Emirates\">United Arab Emirates<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"United Kingdom\">United Kingdom<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"United States\">United States<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Uruguay\">Uruguay<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Uzbekistan\">Uzbekistan<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Vanuatu\">Vanuatu<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Vatican City\">Vatican City<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Venezuela\">Venezuela<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Vietnam\">Vietnam<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Yemen\">Yemen<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Zambia\">Zambia<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<option value=\"Zimbabwe\">Zimbabwe<\/option>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/select>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-qf__field wpbm-qf__field--textarea\" data-field=\"message\">\n\t\t\t\t<span class=\"wpbm-qf__textarea-label\" aria-hidden=\"true\">Message<\/span>\n\t\t\t\t<textarea name=\"message\"\n\t\t\t\t\tdata-label=\"Message\"\n\t\t\t\t\tplaceholder=\"\"><\/textarea>\n\t\t\t<\/div>\n\n\t\t\t<p class=\"wpbm-qf__disclaimer\">Ramtech needs the contact information you provide to us to contact you about our products and services. We may also record limited enquiry metadata such as referring page and time on page before submission. You may unsubscribe from these communications at any time. For information on how we process your data, please review our <a href=\"\/privacy-statement\/\">Privacy Statement<\/a>.<\/p>\n\n\t\t\t<div class=\"wpbm-qf__btn-row wpbm-qf__btn-row--split\">\n\t\t\t\t<button type=\"button\" class=\"wpbm-qf__btn wpbm-qf__btn--ghost wpbm-qf__btn--back\" data-action=\"prev\">\n\t\t\t\t\t<span class=\"wpbm-qf__btn-lbl\">Back<\/span>\n\t\t\t\t<\/button>\n\t\t\t\t<button type=\"button\" class=\"wpbm-qf__btn wpbm-qf__btn--primary wpbm-qf__btn--submit\" data-action=\"submit\">\n\t\t\t\t\t<span class=\"wpbm-qf__btn-lbl\">Submit<\/span>\n\t\t\t\t\t<div class=\"wpbm-qf__spinner\" aria-hidden=\"true\"><\/div>\n\t\t\t\t<\/button>\n\t\t\t<\/div>\n\n\t\t\t<div class=\"wpbm-qf__error\" id=\"wpbm-qf-12-error\" aria-live=\"polite\" style=\"display:none;\"><\/div>\n\n\t\t<\/div>\n\n\t\t<div class=\"wpbm-qf__success\" id=\"wpbm-qf-12-success\" aria-live=\"polite\">\n\t\t\t\t\t\t\t<div class=\"wpbm-qf__avatar-wrap wpbm-qf__avatar-wrap--success\">\n\t\t\t\t\t<img class=\"wpbm-qf__avatar\" src=\"https:\/\/ramtechglobal.com\/wp-content\/themes\/ramtech-child\/inc\/wpb-modules\/assets\/avatar_1.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\">\n\t\t\t\t<\/div>\n\t\t\t\t\t\t<h3 class=\"wpbm-qf__typewriter\" data-typewriter data-name-template=\"Quote request sent!\">Quote request sent!<\/h3>\n\t\t\t<p class=\"wpbm-qf__typewriter wpbm-qf__typewriter--body\" data-typewriter data-name-template=\"Thanks for getting in touch [name]. Our team will review your project details and get back to you within 24\u201348 hours.\">Thanks for getting in touch [name]. Our team will review your project details and get back to you within 24\u201348 hours.<\/p>\n\t\t<\/div>\n\n\t\t\t\t\t<button type=\"button\" class=\"wpbm-qf__side-tab\" id=\"wpbm-qf-12-side-tab\" aria-label=\"Get a Quote\">\n\t\t\t\t\t\t\t\t\t<span class=\"wpbm-qf__side-tab-avatar-wrap\"><img class=\"wpbm-qf__side-tab-avatar\" src=\"https:\/\/ramtechglobal.com\/wp-content\/themes\/ramtech-child\/inc\/wpb-modules\/assets\/avatar_1.svg\" alt=\"\" loading=\"lazy\" decoding=\"async\"><\/span>\n\t\t\t\t\t\t\t\t<span class=\"wpbm-qf__side-tab-label\">Get a Quote<\/span>\n\t\t\t<\/button>\n\t\t\n\t<\/div>\n\n\t<script>\n\t(function() {\n\t\tvar ROOT       = document.getElementById(\"wpbm-qf-12\");\n\t\tvar ENDPOINT   = \"https:\\\/\\\/api-eu1.hsforms.com\\\/submissions\\\/v3\\\/integration\\\/submit\\\/26807906\\\/a1e19a29-c457-4f5f-827a-ab073fecae47\";\n\t\tvar PAGE_START = Date.now();\n\t\tvar TYPE_SPEED = 40;\n\t\tvar COPY_DELAY = 400;\n\n\t\tif (!ROOT) return;\n\n\t\tvar step1    = ROOT.querySelector('#wpbm-qf-12-s1');\n\t\tvar step2    = ROOT.querySelector('#wpbm-qf-12-s2');\n\t\tvar success  = ROOT.querySelector('#wpbm-qf-12-success');\n\t\tvar errorBox = ROOT.querySelector('#wpbm-qf-12-error');\n\t\tvar bars     = ROOT.querySelectorAll('.wpbm-qf__bar');\n\t\tvar sideTab  = ROOT.querySelector('#wpbm-qf-12-side-tab');\n\t\tvar pendingTypewriterScope = null;\n\t\tvar hasPlayedTypewriterInView = false;\n\t\tvar typewriterObserver = null;\n\t\tvar sideTabHideTimer = null;\n\t\tvar sideTabTriggerPercent = 50;\n\n\t\t(function applyRandomAvatar(){\n\t\t\tif (!ROOT.hasAttribute('data-random-avatar')) return;\n\t\t\tvar raw = ROOT.getAttribute('data-avatar-options') || '[]';\n\t\t\tvar options = [];\n\t\t\ttry { options = JSON.parse(raw); } catch (e) { options = []; }\n\t\t\tif (!options || !options.length) return;\n\t\t\tvar selected = options[Math.floor(Math.random() * options.length)];\n\t\t\tif (!selected) return;\n\t\t\tROOT.querySelectorAll('.wpbm-qf__avatar, .wpbm-qf__side-tab-avatar').forEach(function(img) {\n\t\t\t\timg.setAttribute('src', selected);\n\t\t\t});\n\t\t})();\n\n\t\tfunction syncSideTabVars() {\n\t\t\tif (!sideTab || !window.getComputedStyle) return;\n\t\t\tvar styles = window.getComputedStyle(ROOT);\n\t\t\t[\n\t\t\t\t'--qf-side-tab-bg',\n\t\t\t\t'--qf-side-tab-border',\n\t\t\t\t'--qf-side-tab-text',\n\t\t\t\t'--qf-side-tab-text-size',\n\t\t\t\t'--qf-side-tab-fade-duration',\n\t\t\t\t'--qf-side-tab-width',\n\t\t\t\t'--qf-side-tab-avatar-size',\n\t\t\t\t'--qf-side-tab-avatar-offset-y',\n\t\t\t\t'--qf-side-tab-text-offset-y',\n\t\t\t\t'--qf-side-tab-inner-gap',\n\t\t\t\t'--qf-side-tab-length'\n\t\t\t].forEach(function(name) {\n\t\t\t\tvar value = styles.getPropertyValue(name);\n\t\t\t\tif (value) {\n\t\t\t\t\tsideTab.style.setProperty(name, value.trim());\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction val(name) {\n\t\t\tvar el = ROOT.querySelector('[name=\"' + name + '\"]');\n\t\t\treturn el ? el.value.trim() : '';\n\t\t}\n\n\t\tfunction getMessageLabel() {\n\t\t\treturn ROOT.querySelector('.wpbm-qf__field[data-field=\"message\"] .wpbm-qf__textarea-label');\n\t\t}\n\n\t\tfunction syncMessageLabel() {\n\t\t\tvar textarea = ROOT.querySelector('[name=\"message\"]');\n\t\t\tvar label = getMessageLabel();\n\t\t\tif (!textarea || !label) return;\n\n\t\t\tif (textarea.value.trim()) {\n\t\t\t\tlabel.classList.add('wpbm-qf__textarea-label--hidden');\n\t\t\t} else {\n\t\t\t\tlabel.classList.remove('wpbm-qf__textarea-label--hidden');\n\t\t\t}\n\t\t}\n\n\t\tfunction resetMessageLabel() {\n\t\t\tvar label = getMessageLabel();\n\t\t\tif (!label) return;\n\t\t\tlabel.textContent = 'Message';\n\t\t\tlabel.classList.remove('wpbm-qf__textarea-label--error');\n\t\t\tsyncMessageLabel();\n\t\t}\n\n\t\tfunction scheduleFieldReset(wrap, inputEl) {\n\t\t\twindow.clearTimeout(wrap._qfResetTimer);\n\t\t\twrap._qfResetTimer = window.setTimeout(function() {\n\t\t\t\tif (!inputEl.value.trim()) {\n\t\t\t\t\twrap.classList.remove('wpbm-qf__field--invalid');\n\t\t\t\t\tinputEl.placeholder = inputEl.dataset.label || '';\n\t\t\t\t}\n\t\t\t}, 1800);\n\t\t}\n\n\t\tfunction scheduleMessageReset(wrap, labelEl, textareaEl) {\n\t\t\twindow.clearTimeout(wrap._qfResetTimer);\n\t\t\twrap._qfResetTimer = window.setTimeout(function() {\n\t\t\t\tif (!textareaEl.value.trim()) {\n\t\t\t\t\twrap.classList.remove('wpbm-qf__field--invalid');\n\t\t\t\t\tlabelEl.textContent = 'Message';\n\t\t\t\t\tlabelEl.classList.remove('wpbm-qf__textarea-label--error');\n\t\t\t\t\tlabelEl.classList.remove('wpbm-qf__textarea-label--hidden');\n\t\t\t\t}\n\t\t\t}, 1800);\n\t\t}\n\n\t\tfunction sanitiseReferrer(referrer) {\n\t\t\tif (!referrer) return '';\n\t\t\ttry {\n\t\t\t\tvar url = new URL(referrer);\n\t\t\t\treturn url.origin + url.pathname;\n\t\t\t} catch (e) {\n\t\t\t\treturn '';\n\t\t\t}\n\t\t}\n\n\t\tfunction buildSubmittedMessage() {\n\t\t\tvar baseMessage = val('message');\n\t\t\tvar sessionSeconds = Math.max(1, Math.round((Date.now() - PAGE_START) \/ 1000));\n\t\t\tvar referralLink = sanitiseReferrer(document.referrer);\n\n\t\t\tvar metadata = [\n\t\t\t\t'',\n\t\t\t\t'---',\n\t\t\t\t'Session Time: ' + sessionSeconds + ' seconds',\n\t\t\t\t'Referral Link: ' + (referralLink || 'Direct \/ Unknown')\n\t\t\t].join('\\n');\n\n\t\t\treturn baseMessage + metadata;\n\t\t}\n\n\t\tfunction getFirstName() {\n\t\t\tvar fullName = val('firstname').replace(\/\\s+\/g, ' ').trim();\n\t\t\tif (!fullName) return '';\n\t\t\treturn fullName.split(' ')[0] || '';\n\t\t}\n\n\t\tfunction applyNameTemplate(template) {\n\t\t\tvar firstName = getFirstName();\n\t\t\tvar value = String(template || '');\n\t\t\tvalue = value.replace(\/\\[\\s*name\\s*\\]\/gi, firstName);\n\t\t\tif (!firstName) {\n\t\t\t\tvalue = value.replace(\/\\s{2,}\/g, ' ').replace(\/\\s+([\u2014,.;:!?])\/g, '$1').trim();\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\n\t\tfunction refreshNameTokens(scope) {\n\t\t\tvar nodes = scope ? [].slice.call(scope.querySelectorAll('[data-name-template]')) : [].slice.call(ROOT.querySelectorAll('[data-name-template]'));\n\t\t\tnodes.forEach(function(node) {\n\t\t\t\tvar template = node.getAttribute('data-name-template') || '';\n\t\t\t\tvar rendered = applyNameTemplate(template);\n\t\t\t\tnode.setAttribute('data-typewriter-source', rendered);\n\t\t\t\tnode.textContent = rendered;\n\t\t\t});\n\t\t}\n\n\t\tfunction getActiveContentBlocks() {\n\t\t\tvar activeStep = ROOT.querySelector('.wpbm-qf__step--active');\n\t\t\tvar nodes = [];\n\t\t\tif (activeStep) {\n\t\t\t\tnodes = nodes.concat([].slice.call(activeStep.querySelectorAll('[data-typewriter]')));\n\t\t\t}\n\t\t\tif (success && success.style.display !== 'none') {\n\t\t\t\tnodes = nodes.concat([].slice.call(success.querySelectorAll('[data-typewriter]')));\n\t\t\t}\n\t\t\treturn nodes;\n\t\t}\n\n\t\tfunction getTypewriterNodes(scope) {\n\t\t\treturn scope ? [].slice.call(scope.querySelectorAll('[data-typewriter]')) : getActiveContentBlocks();\n\t\t}\n\n\t\tfunction reserveTypewriterSpace(scope) {\n\t\t\tgetTypewriterNodes(scope).forEach(function(node) {\n\t\t\t\tvar text = node.getAttribute('data-typewriter-source');\n\t\t\t\tif (text === null) {\n\t\t\t\t\ttext = node.textContent;\n\t\t\t\t\tnode.setAttribute('data-typewriter-source', text);\n\t\t\t\t}\n\n\t\t\t\tvar previousText = node.textContent;\n\t\t\t\tvar previousMinHeight = node.style.minHeight;\n\t\t\t\tnode.textContent = text;\n\t\t\t\tnode.style.minHeight = '0px';\n\t\t\t\tvar measuredHeight = Math.ceil(node.scrollHeight || node.offsetHeight || 0);\n\t\t\t\tif (measuredHeight > 0) {\n\t\t\t\t\tnode.style.minHeight = measuredHeight + 'px';\n\t\t\t\t} else {\n\t\t\t\t\tnode.style.minHeight = previousMinHeight;\n\t\t\t\t}\n\t\t\t\tnode.textContent = previousText;\n\t\t\t});\n\t\t}\n\n\t\tfunction lockStageHeight() {\n\t\t\tvar panels = [step1, step2, success];\n\t\t\tvar rootMinHeight = 0;\n\t\t\tvar originalRootMinHeight = ROOT.style.minHeight;\n\t\t\tvar activeStepState = {\n\t\t\t\tstep1: step1.classList.contains('wpbm-qf__step--active'),\n\t\t\t\tstep2: step2.classList.contains('wpbm-qf__step--active'),\n\t\t\t\tsuccessDisplay: success.style.display\n\t\t\t};\n\n\t\t\tROOT.style.minHeight = '0px';\n\n\t\t\tpanels.forEach(function(panel) {\n\t\t\t\tif (!panel) return;\n\t\t\t\tvar original = {\n\t\t\t\t\tdisplay: panel.style.display,\n\t\t\t\t\tvisibility: panel.style.visibility,\n\t\t\t\t\tposition: panel.style.position,\n\t\t\t\t\tpointerEvents: panel.style.pointerEvents\n\t\t\t\t};\n\n\t\t\t\tstep1.classList.remove('wpbm-qf__step--active');\n\t\t\t\tstep2.classList.remove('wpbm-qf__step--active');\n\t\t\t\tpanel.style.display = 'block';\n\t\t\t\tpanel.style.visibility = 'hidden';\n\t\t\t\tpanel.style.position = 'relative';\n\t\t\t\tpanel.style.pointerEvents = 'none';\n\t\t\t\tif (panel === step1 || panel === step2) {\n\t\t\t\t\tpanel.classList.add('wpbm-qf__step--active');\n\t\t\t\t}\n\n\t\t\t\trefreshNameTokens(panel);\n\t\t\t\treserveTypewriterSpace(panel);\n\t\t\t\trootMinHeight = Math.max(rootMinHeight, Math.ceil(ROOT.scrollHeight || ROOT.offsetHeight || 0));\n\n\t\t\t\tpanel.style.display = original.display;\n\t\t\t\tpanel.style.visibility = original.visibility;\n\t\t\t\tpanel.style.position = original.position;\n\t\t\t\tpanel.style.pointerEvents = original.pointerEvents;\n\t\t\t});\n\n\t\t\tstep1.classList.toggle('wpbm-qf__step--active', activeStepState.step1);\n\t\t\tstep2.classList.toggle('wpbm-qf__step--active', activeStepState.step2);\n\t\t\tsuccess.style.display = activeStepState.successDisplay;\n\n\t\t\tif (rootMinHeight > 0) {\n\t\t\t\tROOT.style.minHeight = rootMinHeight + 'px';\n\t\t\t} else {\n\t\t\t\tROOT.style.minHeight = originalRootMinHeight;\n\t\t\t}\n\t\t}\n\n\t\tfunction runTypewriter(scope) {\n\t\t\trefreshNameTokens(scope || ROOT);\n\t\t\treserveTypewriterSpace(scope || ROOT);\n\t\t\tvar nodes = getTypewriterNodes(scope);\n\t\t\tvar sequenceOffset = 0;\n\n\t\t\tnodes.forEach(function(node) {\n\t\t\t\tvar text = node.getAttribute('data-typewriter-source');\n\t\t\t\tif (text === null) {\n\t\t\t\t\ttext = node.textContent;\n\t\t\t\t\tnode.setAttribute('data-typewriter-source', text);\n\t\t\t\t}\n\t\t\t\tnode.textContent = '';\n\t\t\t\tnode.classList.remove('is-typing');\n\n\t\t\t\tvar startDelay = sequenceOffset;\n\t\t\t\tvar duration = text.length * TYPE_SPEED;\n\n\t\t\t\twindow.setTimeout(function() {\n\t\t\t\t\tvar i = 0;\n\t\t\t\t\tnode.classList.add('is-typing');\n\t\t\t\t\t(function tick() {\n\t\t\t\t\t\tnode.textContent = text.slice(0, i);\n\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\tif (i <= text.length) {\n\t\t\t\t\t\t\twindow.setTimeout(tick, TYPE_SPEED);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.classList.remove('is-typing');\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t}, startDelay);\n\n\t\t\t\tsequenceOffset += duration;\n\t\t\t\tif (!node.classList.contains('wpbm-qf__typewriter--body')) {\n\t\t\t\t\tsequenceOffset += COPY_DELAY;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfunction isModuleInView() {\n\t\t\tvar rect = ROOT.getBoundingClientRect();\n\t\t\tvar vh = window.innerHeight || document.documentElement.clientHeight || 0;\n\t\t\treturn rect.bottom > 0 && rect.top < vh;\n\t\t}\n\n\t\tfunction playTypewriterWhenVisible(scope) {\n\t\t\tpendingTypewriterScope = scope || ROOT;\n\t\t\tif (isModuleInView()) {\n\t\t\t\thasPlayedTypewriterInView = true;\n\t\t\t\trunTypewriter(pendingTypewriterScope);\n\t\t\t\tpendingTypewriterScope = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!('IntersectionObserver' in window)) {\n\t\t\t\thasPlayedTypewriterInView = true;\n\t\t\t\trunTypewriter(pendingTypewriterScope);\n\t\t\t\tpendingTypewriterScope = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!typewriterObserver) {\n\t\t\t\ttypewriterObserver = new IntersectionObserver(function(entries) {\n\t\t\t\t\tentries.forEach(function(entry) {\n\t\t\t\t\t\tif (!entry.isIntersecting || !pendingTypewriterScope) return;\n\t\t\t\t\t\thasPlayedTypewriterInView = true;\n\t\t\t\t\t\trunTypewriter(pendingTypewriterScope);\n\t\t\t\t\t\tpendingTypewriterScope = null;\n\t\t\t\t\t});\n\t\t\t\t}, { threshold: [0, 0.15, 0.35] });\n\t\t\t\ttypewriterObserver.observe(ROOT);\n\t\t\t}\n\t\t}\n\n\t\tfunction updateSideTab(force) {\n\t\t\tif (!sideTab) return;\n\t\t\tsyncSideTabVars();\n\t\t\tvar rect = ROOT.getBoundingClientRect();\n\t\t\tvar triggerLine = window.innerHeight * (Math.max(0, Math.min(100, sideTabTriggerPercent)) \/ 100);\n\t\t\tvar formInView = rect.top < window.innerHeight && rect.bottom > 0;\n\t\t\tvar shouldShow = force === true ? true : (rect.bottom <= triggerLine);\n\n\t\t\tif (formInView) {\n\t\t\t\tshouldShow = false;\n\t\t\t}\n\n\t\t\twindow.clearTimeout(sideTabHideTimer);\n\n\t\t\tif (shouldShow) {\n\t\t\t\tsideTab.classList.add('is-visible');\n\t\t\t} else {\n\t\t\t\tsideTab.classList.remove('is-visible');\n\t\t\t\tsideTabHideTimer = window.setTimeout(function() {\n\t\t\t\t\tif (!sideTab.classList.contains('is-visible')) {\n\t\t\t\t\t\tsideTab.blur();\n\t\t\t\t\t}\n\t\t\t\t}, 260);\n\t\t\t}\n\t\t}\n\n\t\tfunction setStep(n) {\n\t\t\tstep1.style.display = '';\n\t\t\tstep2.style.display = '';\n\t\t\tsuccess.style.display = 'none';\n\n\t\t\tstep1.classList.toggle('wpbm-qf__step--active', n === 1);\n\t\t\tstep2.classList.toggle('wpbm-qf__step--active', n === 2);\n\n\t\t\tif (bars.length > 1) {\n\t\t\t\tbars[1].classList.toggle('wpbm-qf__bar--on', n === 2);\n\t\t\t}\n\n\t\t\tplayTypewriterWhenVisible(n === 1 ? step1 : step2);\n\t\t\tupdateSideTab(false);\n\n\t\t}\n\n\t\tfunction showError(message) {\n\t\t\tif (!errorBox) return;\n\t\t\terrorBox.textContent = message;\n\t\t\terrorBox.style.display = 'block';\n\t\t}\n\n\t\tfunction clearError() {\n\t\t\tif (!errorBox) return;\n\t\t\terrorBox.textContent = '';\n\t\t\terrorBox.style.display = 'none';\n\t\t}\n\n\t\tfunction markInvalid(fieldEl, msg) {\n\t\t\tvar wrap = ROOT.querySelector('[data-field=\"' + fieldEl + '\"]');\n\t\t\tif (!wrap) return;\n\n\t\t\twrap.classList.add('wpbm-qf__field--invalid');\n\n\t\t\tif (fieldEl === 'message') {\n\t\t\t\tvar label = wrap.querySelector('.wpbm-qf__textarea-label');\n\t\t\t\tvar textarea = wrap.querySelector('textarea');\n\t\t\t\tif (label && textarea) {\n\t\t\t\t\tlabel.textContent = msg || 'Required';\n\t\t\t\t\tlabel.classList.add('wpbm-qf__textarea-label--error');\n\t\t\t\t\tlabel.classList.remove('wpbm-qf__textarea-label--hidden');\n\t\t\t\t\tscheduleMessageReset(wrap, label, textarea);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar inp = wrap.querySelector('input, textarea');\n\t\t\tif (inp) {\n\t\t\t\tinp.placeholder = msg || 'Required';\n\t\t\t\tscheduleFieldReset(wrap, inp);\n\t\t\t}\n\t\t}\n\n\t\tfunction clearInvalid(fieldEl) {\n\t\t\tvar wrap = ROOT.querySelector('[data-field=\"' + fieldEl + '\"]');\n\t\t\tif (!wrap) return;\n\n\t\t\twindow.clearTimeout(wrap._qfResetTimer);\n\t\t\twrap.classList.remove('wpbm-qf__field--invalid');\n\n\t\t\tif (fieldEl === 'message') {\n\t\t\t\tresetMessageLabel();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar inp = wrap.querySelector('input, textarea');\n\t\t\tif (inp) {\n\t\t\t\tinp.placeholder = inp.dataset.label || '';\n\t\t\t}\n\t\t}\n\n\t\tfunction validateStep1() {\n\t\t\tvar ok = true;\n\n\t\t\t[\n\t\t\t\t{ name: 'firstname', msg: 'This field is required' },\n\t\t\t\t{ name: 'phone', msg: 'This field is required' },\n\t\t\t\t{ name: 'email', msg: 'Please enter a valid email' },\n\t\t\t\t{ name: 'company', msg: 'This field is required' }\n\t\t\t].forEach(function(f) {\n\t\t\t\tvar v = val(f.name);\n\t\t\t\tvar fail = !v || (f.name === 'email' && !\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(v));\n\t\t\t\tif (fail) {\n\t\t\t\t\tmarkInvalid(f.name, f.msg);\n\t\t\t\t\tok = false;\n\t\t\t\t} else {\n\t\t\t\t\tclearInvalid(f.name);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn ok;\n\t\t}\n\n\t\tfunction validateStep2() {\n\t\t\tvar v = val('message');\n\t\t\tif (!v) {\n\t\t\t\tmarkInvalid('message', 'This field is required');\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tclearInvalid('message');\n\t\t\treturn true;\n\t\t}\n\n\t\tROOT.querySelectorAll('input[data-label]').forEach(function(el) {\n\t\t\tel.addEventListener('input', function() {\n\t\t\t\tclearError();\n\t\t\t\tif (el.name === 'firstname') {\n\t\t\t\t\trefreshNameTokens();\n\t\t\t\t}\n\t\t\t\tvar wrap = el.closest('[data-field]');\n\t\t\t\tif (wrap && el.value.trim()) {\n\t\t\t\t\tclearInvalid(wrap.getAttribute('data-field'));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tel.addEventListener('blur', function() {\n\t\t\t\tvar wrap = el.closest('[data-field]');\n\t\t\t\tif (wrap && !wrap.classList.contains('wpbm-qf__field--invalid') && !el.value.trim()) {\n\t\t\t\t\tel.placeholder = el.dataset.label || '';\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tvar messageField = ROOT.querySelector('[name=\"message\"]');\n\t\tif (messageField) {\n\t\t\tmessageField.addEventListener('focus', function() {\n\t\t\t\tvar label = getMessageLabel();\n\t\t\t\tif (label && !messageField.value.trim()) {\n\t\t\t\t\tlabel.classList.remove('wpbm-qf__textarea-label--hidden');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmessageField.addEventListener('blur', function() {\n\t\t\t\tvar wrap = messageField.closest('[data-field=\"message\"]');\n\t\t\t\tif (wrap && !wrap.classList.contains('wpbm-qf__field--invalid') && !messageField.value.trim()) {\n\t\t\t\t\tresetMessageLabel();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tmessageField.addEventListener('input', function() {\n\t\t\t\tclearError();\n\t\t\t\tif (messageField.value.trim()) {\n\t\t\t\t\tclearInvalid('message');\n\t\t\t\t} else {\n\t\t\t\t\tresetMessageLabel();\n\t\t\t\t}\n\t\t\t\tsyncMessageLabel();\n\t\t\t});\n\n\t\t\tsyncMessageLabel();\n\t\t}\n\n\t\tif (sideTab) {\n\t\t\tsyncSideTabVars();\n\t\t\tif (sideTab.parentNode !== document.body) {\n\t\t\t\tdocument.body.appendChild(sideTab);\n\t\t\t\tsyncSideTabVars();\n\t\t\t}\n\t\t\tsideTab.addEventListener('click', function() {\n\t\t\t\tROOT.scrollIntoView({ behavior: 'smooth', block: 'center' });\n\t\t\t\tupdateSideTab(false);\n\t\t\t});\n\t\t\twindow.addEventListener('scroll', updateSideTab, { passive: true });\n\t\t\twindow.addEventListener('resize', function(){ lockStageHeight(); reserveTypewriterSpace(ROOT); syncSideTabVars(); updateSideTab(); if (!hasPlayedTypewriterInView && pendingTypewriterScope && isModuleInView()) { playTypewriterWhenVisible(pendingTypewriterScope); } });\n\t\t\twindow.addEventListener('load', function(){ syncSideTabVars(); updateSideTab(); if (!hasPlayedTypewriterInView && pendingTypewriterScope) { playTypewriterWhenVisible(pendingTypewriterScope); } window.setTimeout(function(){ syncSideTabVars(); updateSideTab(); if (!hasPlayedTypewriterInView && pendingTypewriterScope) { playTypewriterWhenVisible(pendingTypewriterScope); } }, 120); });\n\t\t\tif ('IntersectionObserver' in window) {\n\t\t\t\tvar observer = new IntersectionObserver(function(entries) {\n\t\t\t\t\tentries.forEach(function(entry) {\n\t\t\t\t\t\tif (entry.isIntersecting) {\n\t\t\t\t\t\t\tupdateSideTab(false);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}, { threshold: [0, 0.15, 0.5] });\n\t\t\t\tobserver.observe(ROOT);\n\t\t\t}\n\t\t\tupdateSideTab(false);\n\t\t}\n\n\t\tlockStageHeight();\n\t\tplayTypewriterWhenVisible(step1);\n\n\t\tROOT.addEventListener('click', function(e) {\n\t\t\tvar btn = e.target.closest('[data-action]');\n\t\t\tif (!btn) return;\n\n\t\t\tvar action = btn.dataset.action;\n\n\t\t\tif (action === 'next') {\n\t\t\t\tclearError();\n\t\t\t\tif (validateStep1()) {\n\t\t\t\t\tsetStep(2);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (action === 'prev') {\n\t\t\t\tclearError();\n\t\t\t\tsetStep(1);\n\t\t\t}\n\n\t\t\tif (action === 'submit') {\n\t\t\t\tclearError();\n\t\t\t\tif (!validateStep2()) return;\n\t\t\t\tsubmit(btn);\n\t\t\t}\n\t\t});\n\n\t\tfunction submit(btn) {\n\t\t\tbtn.classList.add('wpbm-qf__btn--loading');\n\t\t\tbtn.disabled = true;\n\t\t\tclearError();\n\n\t\t\tvar fullName = val('firstname');\n\n\t\t\tvar fields = [\n\t\t\t\t{ name: 'firstname', value: fullName },\n\t\t\t\t{ name: 'lastname', value: '' },\n\t\t\t\t{ name: 'phone', value: val('phone') },\n\t\t\t\t{ name: 'email', value: val('email') },\n\t\t\t\t{ name: 'company', value: val('company') },\n\t\t\t\t{ name: 'state', value: val('state') },\n\t\t\t\t{ name: 'country', value: val('country') },\n\t\t\t\t{ name: 'message', value: buildSubmittedMessage() }\n\t\t\t];\n\n\t\t\tfetch(ENDPOINT, {\n\t\t\t\tmethod: 'POST',\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': 'application\/json'\n\t\t\t\t},\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tfields: fields,\n\t\t\t\t\tcontext: {\n\t\t\t\t\t\tpageUri: window.location.href,\n\t\t\t\t\t\tpageName: document.title\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t\t.then(function(response) {\n\t\t\t\tif (!response.ok) {\n\t\t\t\t\treturn response.text().then(function(text) {\n\t\t\t\t\t\tthrow new Error(text || ('HubSpot submission failed with status ' + response.status));\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn response.json().catch(function() {\n\t\t\t\t\treturn {};\n\t\t\t\t});\n\t\t\t})\n\t\t\t.then(function() {\n\t\t\t\tstep1.classList.remove('wpbm-qf__step--active');\n\t\t\t\tstep1.style.display = 'none';\n\t\t\t\tstep2.classList.remove('wpbm-qf__step--active');\n\t\t\t\tstep2.style.display = 'none';\n\t\t\t\tsuccess.style.display = 'flex';\n\t\t\t\tplayTypewriterWhenVisible(success);\n\t\t\t\tupdateSideTab(false);\n\t\t\t})\n\t\t\t.catch(function(err) {\n\t\t\t\tconsole.error('[wpbm_quote_form] HubSpot submission error:', err);\n\t\t\t\tshowError('There was a problem sending your quote request. Please try again.');\n\t\t\t\tbtn.classList.remove('wpbm-qf__btn--loading');\n\t\t\t\tbtn.disabled = false;\n\t\t\t});\n\t\t}\n\t})();\n\t<\/script>\n\t<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-2\" data-row=\"script-row-unique-2\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-2\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row row-container\" id=\"row-unique-3\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell  vc_custom_1775654316779 border-color-uydo-color single-block-padding  unradius-xl\" style=\"border-style: solid;border-top-width: 1px ;border-right-width: 1px ;border-bottom-width: 1px ;border-left-width: 1px ;\" ><div class=\"uncont\" >\t<div class=\"wpbm-hh-wrap\" id=\"wpbm-hh-13\"\n\t\tdata-endpoint=\"30\"\n\t\tdata-startpoint=\"80\"\n\t\tdata-mode=\"word\">\n\t\t<div class=\"wpbm-hh__base\"><div class=\"vc_custom_heading_wrap \"><div class=\"heading-text el-text\"><h2 class=\"h1 text-color-199620-color\" aria-label=\"This is a heading element.This is a heading elemenThis is a heading elemenThis is a heading elemenThis is a heading elemenThis is a heading elemenThis is a heading elemenThis is a heading elemenThis is a heading elemenThis is a heading elemen\"><span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">This<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">element.This<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px\">elemen<\/span> <\/h2><\/div><div class=\"clear\"><\/div><\/div><\/div>\n\t\t<div class=\"wpbm-hh__dup\" aria-hidden=\"true\"><div class=\"vc_custom_heading_wrap \"><div class=\"heading-text el-text\"><h2 class=\"h1 text-accent-color\" aria-hidden=\"true\"><span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">This<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">element.This<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">elemenThis<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">is<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">a<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">heading<\/span> <span class=\"wpbm-hh__word\" aria-hidden=\"true\" style=\"position:relative;padding-bottom:2px;opacity:0\">elemen<\/span> <\/h2><\/div><div class=\"clear\"><\/div><\/div><\/div>\n\t<\/div>\n\t<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-3\" data-row=\"script-row-unique-3\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-3\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row row-container\" id=\"row-unique-4\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-6 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell no-block-padding\" ><div class=\"uncont\" >\t<style>\n\t\t#wpbm-3d-14{\n\t\t\t--wpbm-3d-accent:#E74011;\n\t\t\t--wpbm-3d-text:#FFFFFF;\n\t\t\t--wpbm-3d-panel-bg:#1F2633;\n\t\t\t--wpbm-3d-height:640px;\n\t\t\t--wpbm-3d-hotspot-size:18px;\n\t\t\t--wpbm-3d-tooltip-width:260px;\n\t\t}\n\t<\/style>\n\t\n\t<div id=\"wpbm-3d-14\" class=\"wpbm-3d-object-hotspots\" data-script-path=\"\/wp-content\/themes\/ramtech-child\/inc\/wpb-modules\/assets\/vendor\/model-viewer.min.js\" data-los-opacity=\"0.0000\">\n\t\t\t\t\t\t\t\t<model-viewer\n\t\t\t\tclass=\"wpbm-3d__viewer\"\n\t\t\t\tsrc=\"https:\/\/ramtechglobal.com\/3d\/call_point.glb\"\n\t\t\t\t\t\t\t\tcamera-controls\t\t\t\t\t\t\t\tinteraction-prompt=\"none\"\n\t\t\t\ttouch-action=\"pan-y\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"wpbm-3d__hotspot wpbm-3d__hotspot--left\"\n\t\t\t\t\t\tslot=\"hotspot-hs_z0u3r3m4\"\n\t\t\t\t\t\tdata-hotspot-id=\"hs_z0u3r3m4\"\n\t\t\t\t\t\tdata-position=\"-0.0500m 0.2300m -0.0200m\"\n\t\t\t\t\t\tdata-hs-x=\"-0.0500\"\n\t\t\t\t\t\tdata-hs-y=\"0.2300\"\n\t\t\t\t\t\tdata-hs-z=\"-0.0200\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"wpbm-3d__hotspot-dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<span class=\"wpbm-3d__tooltip\" role=\"tooltip\">\n\t\t\t\t\t\t\t<strong>New hotspot<\/strong>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"wpbm-3d__hotspot\"\n\t\t\t\t\t\tslot=\"hotspot-hs_oithg8j1\"\n\t\t\t\t\t\tdata-hotspot-id=\"hs_oithg8j1\"\n\t\t\t\t\t\tdata-position=\"0.0000m 0.0600m 0.1600m\"\n\t\t\t\t\t\tdata-hs-x=\"0.0000\"\n\t\t\t\t\t\tdata-hs-y=\"0.0600\"\n\t\t\t\t\t\tdata-hs-z=\"0.1600\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"wpbm-3d__hotspot-dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<span class=\"wpbm-3d__tooltip\" role=\"tooltip\">\n\t\t\t\t\t\t\t<strong>New hotspot<\/strong>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"wpbm-3d__hotspot wpbm-3d__hotspot--left\"\n\t\t\t\t\t\tslot=\"hotspot-hs_z00nyycy\"\n\t\t\t\t\t\tdata-hotspot-id=\"hs_z00nyycy\"\n\t\t\t\t\t\tdata-position=\"-0.1200m 0.2100m 0.1200m\"\n\t\t\t\t\t\tdata-hs-x=\"-0.1200\"\n\t\t\t\t\t\tdata-hs-y=\"0.2100\"\n\t\t\t\t\t\tdata-hs-z=\"0.1200\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"wpbm-3d__hotspot-dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<span class=\"wpbm-3d__tooltip\" role=\"tooltip\">\n\t\t\t\t\t\t\t<strong>New hotspot<\/strong>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"wpbm-3d__hotspot wpbm-3d__hotspot--left\"\n\t\t\t\t\t\tslot=\"hotspot-hs_fpuvqmib\"\n\t\t\t\t\t\tdata-hotspot-id=\"hs_fpuvqmib\"\n\t\t\t\t\t\tdata-position=\"-0.0100m 0.3100m 0.2500m\"\n\t\t\t\t\t\tdata-hs-x=\"-0.0100\"\n\t\t\t\t\t\tdata-hs-y=\"0.3100\"\n\t\t\t\t\t\tdata-hs-z=\"0.2500\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"wpbm-3d__hotspot-dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<span class=\"wpbm-3d__tooltip\" role=\"tooltip\">\n\t\t\t\t\t\t\t<strong>New hotspot<\/strong>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"wpbm-3d__hotspot\"\n\t\t\t\t\t\tslot=\"hotspot-hs_oaumyjor\"\n\t\t\t\t\t\tdata-hotspot-id=\"hs_oaumyjor\"\n\t\t\t\t\t\tdata-position=\"0.0100m 0.5000m 0.0700m\"\n\t\t\t\t\t\tdata-hs-x=\"0.0100\"\n\t\t\t\t\t\tdata-hs-y=\"0.5000\"\n\t\t\t\t\t\tdata-hs-z=\"0.0700\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"wpbm-3d__hotspot-dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<span class=\"wpbm-3d__tooltip\" role=\"tooltip\">\n\t\t\t\t\t\t\t<strong>New hotspot copy<\/strong>\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<\/model-viewer>\n\t\t\t<\/div>\n\n\t<script>\n\t(function(){\n\t\tvar root = document.getElementById(\"wpbm-3d-14\");\n\t\tif (!root) return;\n\n\t\tfunction loadScript(path, callback) {\n\t\t\tvar clean = String(path || '').trim();\n\t\t\tif (!clean) return callback();\n\t\t\tvar existing = document.querySelector('script[data-wpbm-model-viewer-front=\"' + clean + '\"]');\n\t\t\tif (existing) {\n\t\t\t\tif (customElements.get('model-viewer')) {\n\t\t\t\t\tcallback();\n\t\t\t\t} else {\n\t\t\t\t\texisting.addEventListener('load', callback, { once: true });\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar script = document.createElement('script');\n\t\t\tscript.type = 'module';\n\t\t\tscript.src = \/^(https?:)?\\\/\\\/\/.test(clean) ? clean : (clean.charAt(0) === '\/' ? clean : '\/' + clean.replace(\/^\\\/+\/, ''));\n\t\t\tscript.setAttribute('data-wpbm-model-viewer-front', clean);\n\t\t\tscript.addEventListener('load', callback, { once: true });\n\t\t\tdocument.head.appendChild(script);\n\t\t}\n\n\t\tvar _initDone = false;\n\t\tfunction init() {\n\t\t\tif (_initDone) return;\n\t\t\t_initDone = true;\n\n\t\t\tvar viewer = root.querySelector('model-viewer');\n\t\t\tif (!viewer) return;\n\n\t\t\t\/\/ \u2500\u2500 LOS dimming \u2014 distance comparison (manu.ninja technique) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\t\t\t\/\/ Compare camera\u2192hotspot distance vs camera\u2192model-centre distance.\n\t\t\t\/\/ If the hotspot is farther away than the model centre, it's behind it.\n\t\t\t\/\/ Works for any roughly convex model with no raycasting or normals needed.\n\t\t\tvar losFloor = parseFloat(root.getAttribute('data-los-opacity') || '0');\n\t\t\tif (isNaN(losFloor)) losFloor = 0;\n\t\t\tlosFloor = Math.max(0, Math.min(1, losFloor));\n\n\t\t\t\/\/ Set transition once \u2014 no need to reapply on every camera-change.\n\t\t\troot.querySelectorAll('.wpbm-3d__hotspot').forEach(function(button) {\n\t\t\t\tbutton.style.transition = 'opacity .25s ease';\n\t\t\t});\n\n\t\t\t\/\/ Read each hotspot's world-space position from data attributes.\n\t\t\tvar hotspots = [];\n\t\t\troot.querySelectorAll('.wpbm-3d__hotspot').forEach(function(button) {\n\t\t\t\thotspots.push({\n\t\t\t\t\tel: button,\n\t\t\t\t\tx: parseFloat(button.getAttribute('data-hs-x')) || 0,\n\t\t\t\t\ty: parseFloat(button.getAttribute('data-hs-y')) || 0,\n\t\t\t\t\tz: parseFloat(button.getAttribute('data-hs-z')) || 0\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tfunction updateLOS() {\n\t\t\t\tvar orbit = viewer.getCameraOrbit();\n\t\t\t\tif (!orbit) return;\n\n\t\t\t\t\/\/ Reconstruct camera world position from spherical coords (Three.js Y-up).\n\t\t\t\tvar r      = orbit.radius;\n\t\t\t\tvar sinPhi = Math.sin(orbit.phi);\n\t\t\t\tvar camX   = r * sinPhi * Math.sin(orbit.theta);\n\t\t\t\tvar camY   = r * Math.cos(orbit.phi);\n\t\t\t\tvar camZ   = r * sinPhi * Math.cos(orbit.theta);\n\n\t\t\t\thotspots.forEach(function(hs) {\n\t\t\t\t\tvar dx          = camX - hs.x;\n\t\t\t\t\tvar dy          = camY - hs.y;\n\t\t\t\t\tvar dz          = camZ - hs.z;\n\t\t\t\t\tvar hotspotDist = Math.sqrt(dx * dx + dy * dy + dz * dz);\n\t\t\t\t\tvar opacity     = hotspotDist > r ? losFloor : 1;\n\n\t\t\t\t\ths.el.style.opacity       = String(opacity);\n\t\t\t\t\ths.el.style.pointerEvents = opacity <= 0.001 ? 'none' : 'auto';\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tupdateLOS();\n\t\t\tviewer.addEventListener('camera-change', updateLOS);\n\t\t\t\/\/ \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n\t\t\t\/\/ \u2500\u2500 Tooltip events \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\t\t\troot.querySelectorAll('.wpbm-3d__hotspot').forEach(function(button) {\n\t\t\t\tvar tooltip = button.querySelector('.wpbm-3d__tooltip');\n\t\t\t\tif (!tooltip) return;\n\n\t\t\t\tfunction openTip()  { button.classList.add('is-active'); }\n\t\t\t\tfunction closeTip() { button.classList.remove('is-active'); }\n\n\t\t\t\tbutton.addEventListener('mouseenter', openTip);\n\t\t\t\tbutton.addEventListener('mouseleave', closeTip);\n\t\t\t\tbutton.addEventListener('focus',      openTip);\n\t\t\t\tbutton.addEventListener('blur',       closeTip);\n\t\t\t\tbutton.addEventListener('click', function(e) {\n\t\t\t\t\tif (window.matchMedia('(hover: none)').matches) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\troot.querySelectorAll('.wpbm-3d__hotspot').forEach(function(other) {\n\t\t\t\t\t\t\tif (other !== button) other.classList.remove('is-active');\n\t\t\t\t\t\t});\n\t\t\t\t\t\tbutton.classList.toggle('is-active');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tdocument.addEventListener('click', function(e) {\n\t\t\t\tif (root.contains(e.target)) return;\n\t\t\t\troot.querySelectorAll('.wpbm-3d__hotspot').forEach(function(button) {\n\t\t\t\t\tbutton.classList.remove('is-active');\n\t\t\t\t});\n\t\t\t});\n\t\t\t\/\/ \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\t\t}\n\n\t\tloadScript(root.getAttribute('data-script-path') || '', function(){\n\t\t\tif (!customElements.get('model-viewer')) return;\n\t\t\tvar viewer = root.querySelector('model-viewer');\n\t\t\tif (!viewer) return;\n\t\t\tif (viewer.modelIsVisible || viewer.loaded) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tviewer.addEventListener('load', init, { once: true });\n\t\t\t\twindow.setTimeout(init, 1200);\n\t\t\t}\n\t\t});\n\t})();\n\t<\/script>\n\t<\/div><\/div><\/div><\/div><\/div><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-6 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell no-block-padding\" ><div class=\"uncont\" >\t<style>\n\t\t#wpbm-image-15{\n\t\t\t--wpbm-image-accent:#E74011;\n\t\t\t--wpbm-image-text:#FFFFFF;\n\t\t\t--wpbm-image-panel-bg:#1F2633;\n\t\t\t--wpbm-image-max-width:100%;\n\t\t\t--wpbm-image-radius:20px;\n\t\t\t--wpbm-image-hotspot-size:18px;\n\t\t\t--wpbm-image-hotspot-size-mobile:clamp(16px, 4.5vw, 18px);\n\t\t\t--wpbm-image-tooltip-width:340px;\n\t\t\t--wpbm-image-panel-padding:18px;\n\t\t\t--wpbm-image-panel-gap:18px;\n\t\t\t--wpbm-image-media-width:120px;\n\t\t\t--wpbm-image-media-height:120px;\n\t\t\t--wpbm-image-title-size:16px;\n\t\t\t--wpbm-image-title-line-height:1.3;\n\t\t\t--wpbm-image-body-size:14px;\n\t\t\t--wpbm-image-body-line-height:1.6;\n\t\t}\n\t<\/style>\n\t\n\t<div id=\"wpbm-image-15\" class=\"wpbm-image-hotspots\">\n\t\t\t\t\t<div class=\"wpbm-image-hotspots__media\">\n\t\t\t\t<img decoding=\"async\" class=\"wpbm-image-hotspots__image\" src=\"https:\/\/ramtechglobal.com\/wp-content\/uploads\/ramtech_fire_accessories_fire_extinguisher_servicing_and_maintenance_04.webp\" alt=\"\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclass=\"wpbm-image-hotspots__hotspot\"\n\t\t\t\t\t\tstyle=\"left:56.17%;top:51.81%;\"\n\t\t\t\t\t\tdata-hotspot-id=\"hs_klbc0joe\"\n\t\t\t\t\t\tdata-hotspot-type=\"title_copy\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<span class=\"wpbm-image-hotspots__hotspot-dot\" aria-hidden=\"true\"><\/span>\n\t\t\t\t\t\t<span class=\"wpbm-image-hotspots__tooltip\" role=\"tooltip\">\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t<span class=\"wpbm-image-hotspots__tooltip-content\">\n\t\t\t\t\t\t\t\t<strong>Clipboard<\/strong>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/button>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<\/div>\n\n\t<script>\n\t(function(){\n\t\tvar root = document.getElementById(\"wpbm-image-15\");\n\t\tif (!root) return;\n\n\t\tvar _initDone = false;\n\t\tfunction startVideo(button) {\n\t\t\tvar video = button.querySelector('video');\n\t\t\tif (!video) return;\n\t\t\tvideo.muted = true;\n\t\t\tvideo.playsInline = true;\n\t\t\tvar playPromise = video.play();\n\t\t\tif (playPromise && typeof playPromise.catch === 'function') {\n\t\t\t\tplayPromise.catch(function(){});\n\t\t\t}\n\t\t}\n\t\tfunction stopVideo(button) {\n\t\t\tvar video = button.querySelector('video');\n\t\t\tif (!video) return;\n\t\t\tvideo.pause();\n\t\t\ttry { video.currentTime = 0; } catch (e) {}\n\t\t}\n\t\tfunction init() {\n\t\t\tif (_initDone) return;\n\t\t\t_initDone = true;\n\n\t\t\troot.querySelectorAll('.wpbm-image-hotspots__hotspot').forEach(function(button) {\n\t\t\t\tfunction openTip()  {\n\t\t\t\t\tbutton.classList.add('is-active');\n\t\t\t\t\tstartVideo(button);\n\t\t\t\t}\n\t\t\t\tfunction closeTip() {\n\t\t\t\t\tbutton.classList.remove('is-active');\n\t\t\t\t\tstopVideo(button);\n\t\t\t\t}\n\n\t\t\t\tbutton.addEventListener('mouseenter', openTip);\n\t\t\t\tbutton.addEventListener('mouseleave', closeTip);\n\t\t\t\tbutton.addEventListener('focus', openTip);\n\t\t\t\tbutton.addEventListener('blur', closeTip);\n\t\t\t\tbutton.addEventListener('click', function(e) {\n\t\t\t\t\tif (window.matchMedia('(hover: none)').matches) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tvar becomingActive = !button.classList.contains('is-active');\n\t\t\t\t\t\troot.querySelectorAll('.wpbm-image-hotspots__hotspot').forEach(function(other) {\n\t\t\t\t\t\t\tother.classList.remove('is-active');\n\t\t\t\t\t\t\tstopVideo(other);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (becomingActive) {\n\t\t\t\t\t\t\tbutton.classList.add('is-active');\n\t\t\t\t\t\t\tstartVideo(button);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tdocument.addEventListener('click', function(e) {\n\t\t\t\tif (root.contains(e.target)) return;\n\t\t\t\troot.querySelectorAll('.wpbm-image-hotspots__hotspot').forEach(function(button) {\n\t\t\t\t\tbutton.classList.remove('is-active');\n\t\t\t\t\tstopVideo(button);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tif (document.readyState === 'loading') {\n\t\t\tdocument.addEventListener('DOMContentLoaded', init);\n\t\t} else {\n\t\t\tinit();\n\t\t}\n\t})();\n\t<\/script>\n\t<\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-4\" data-row=\"script-row-unique-4\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-4\"));<\/script><\/div><\/div><\/div><div data-parent=\"true\" class=\"vc_row row-container\" id=\"row-unique-5\"><div class=\"row limit-width row-parent\"><div class=\"wpb_row row-inner\"><div class=\"wpb_column pos-top pos-center align_left column_parent col-lg-12 single-internal-gutter\"><div class=\"uncol style-light\"  ><div class=\"uncoltable\"><div class=\"uncell no-block-padding\" ><div class=\"uncont\" ><\/div><\/div><\/div><\/div><\/div><script id=\"script-row-unique-5\" data-row=\"script-row-unique-5\" type=\"text\/javascript\" class=\"vc_controls\">UNCODE.initRow(document.getElementById(\"row-unique-5\"));<\/script><\/div><\/div><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"Hi there, my name is Rambot \u2014 let&#039;s get your message to the right team. Fill in a few details [...]","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-146595","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>testing_modules - Ramtech Global<\/title>\n<meta name=\"robots\" content=\"index, nofollow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ramtechglobal.com\/fr\/modules-de-test\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"testing_modules\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ramtechglobal.com\/fr\/modules-de-test\/\" \/>\n<meta property=\"og:site_name\" content=\"Ramtech Global\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-13T15:01:37+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\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:\\\/\\\/ramtechglobal.com\\\/testing_modules\\\/\",\"url\":\"https:\\\/\\\/ramtechglobal.com\\\/testing_modules\\\/\",\"name\":\"testing_modules - Ramtech Global\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ramtechglobal.com\\\/#website\"},\"datePublished\":\"2026-04-02T08:57:27+00:00\",\"dateModified\":\"2026-04-13T15:01:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ramtechglobal.com\\\/testing_modules\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ramtechglobal.com\\\/testing_modules\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ramtechglobal.com\\\/testing_modules\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ramtechglobal.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"testing_modules\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ramtechglobal.com\\\/#website\",\"url\":\"https:\\\/\\\/ramtechglobal.com\\\/\",\"name\":\"Ramtech Global\",\"description\":\"Shaping a Safer World Through Innovation\",\"publisher\":{\"@id\":\"https:\\\/\\\/ramtechglobal.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ramtechglobal.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ramtechglobal.com\\\/#organization\",\"name\":\"Ramtech Global\",\"url\":\"https:\\\/\\\/ramtechglobal.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/ramtechglobal.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/uploads\\\/ramtech_logo_ob.svg\",\"contentUrl\":\"https:\\\/\\\/ramtechglobal.com\\\/wp-content\\\/uploads\\\/ramtech_logo_ob.svg\",\"width\":\"1\",\"height\":\"1\",\"caption\":\"Ramtech Global\"},\"image\":{\"@id\":\"https:\\\/\\\/ramtechglobal.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"modules_de_test - Ramtech Global","robots":{"index":"index","follow":"nofollow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ramtechglobal.com\/fr\/modules-de-test\/","og_locale":"fr_FR","og_type":"article","og_title":"testing_modules","og_url":"https:\/\/ramtechglobal.com\/fr\/modules-de-test\/","og_site_name":"Ramtech Global","article_modified_time":"2026-04-13T15:01:37+00:00","twitter_card":"summary_large_image","twitter_misc":{"Dur\u00e9e de lecture estim\u00e9e":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/ramtechglobal.com\/testing_modules\/","url":"https:\/\/ramtechglobal.com\/testing_modules\/","name":"modules_de_test - Ramtech Global","isPartOf":{"@id":"https:\/\/ramtechglobal.com\/#website"},"datePublished":"2026-04-02T08:57:27+00:00","dateModified":"2026-04-13T15:01:37+00:00","breadcrumb":{"@id":"https:\/\/ramtechglobal.com\/testing_modules\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ramtechglobal.com\/testing_modules\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/ramtechglobal.com\/testing_modules\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ramtechglobal.com\/"},{"@type":"ListItem","position":2,"name":"testing_modules"}]},{"@type":"WebSite","@id":"https:\/\/ramtechglobal.com\/#website","url":"https:\/\/ramtechglobal.com\/","name":"Ramtech Global","description":"Fa\u00e7onner un Monde Plus S\u00fbr Gr\u00e2ce \u00e0 l\u2019Innovation","publisher":{"@id":"https:\/\/ramtechglobal.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ramtechglobal.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/ramtechglobal.com\/#organization","name":"Ramtech Global","url":"https:\/\/ramtechglobal.com\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/ramtechglobal.com\/#\/schema\/logo\/image\/","url":"https:\/\/ramtechglobal.com\/wp-content\/uploads\/ramtech_logo_ob.svg","contentUrl":"https:\/\/ramtechglobal.com\/wp-content\/uploads\/ramtech_logo_ob.svg","width":"1","height":"1","caption":"Ramtech Global"},"image":{"@id":"https:\/\/ramtechglobal.com\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/ramtechglobal.com\/fr\/wp-json\/wp\/v2\/pages\/146595","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ramtechglobal.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ramtechglobal.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ramtechglobal.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/ramtechglobal.com\/fr\/wp-json\/wp\/v2\/comments?post=146595"}],"version-history":[{"count":193,"href":"https:\/\/ramtechglobal.com\/fr\/wp-json\/wp\/v2\/pages\/146595\/revisions"}],"predecessor-version":[{"id":146930,"href":"https:\/\/ramtechglobal.com\/fr\/wp-json\/wp\/v2\/pages\/146595\/revisions\/146930"}],"wp:attachment":[{"href":"https:\/\/ramtechglobal.com\/fr\/wp-json\/wp\/v2\/media?parent=146595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}