{"id":7053,"date":"2026-09-24T13:17:01","date_gmt":"2026-09-24T13:17:01","guid":{"rendered":"https:\/\/extreemtek.com\/?page_id=7053"},"modified":"2026-10-23T05:51:27","modified_gmt":"2026-10-23T05:51:27","slug":"iot-and-connected-products","status":"publish","type":"page","link":"https:\/\/extreemtek.com\/nl\/iot-and-connected-products\/","title":{"rendered":"IoT en verbonden producten"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"7053\" class=\"elementor elementor-7053\">\n\t\t\t\t<div class=\"elementor-element elementor-element-93322ec e-con-full e-flex e-con e-parent\" data-id=\"93322ec\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d6d5872 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"d6d5872\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter+Tight:wght@400;500;600;700;800&display=swap');\n\n#sk-nav{\n  --sk-navy:#0a1a4d;\n  --sk-amber-lite:#F5B01A;\n  --sk-amber-deep:#D86605;\n  --sk-line:#e6e9f0;\n\n  position:relative;\n  z-index:900;\n  background:#fff;\n  border-bottom:1px solid var(--sk-line);\n  font-family:\"Inter Tight\",system-ui,-apple-system,\"Segoe UI\",sans-serif;\n  -webkit-font-smoothing:antialiased;\n}\n#sk-nav *,#sk-nav *::before,#sk-nav *::after{box-sizing:border-box}\n\n#sk-nav .sk-n-bar{\n  display:flex;\n  align-items:center;\n  gap:1rem;\n  max-width:1300px;\n  margin:0 auto;\n  padding:.85rem 1.25rem;\n}\n\n\/* logo *\/\n#sk-nav .sk-n-logo{flex:none;display:inline-flex;align-items:center;line-height:0}\n#sk-nav .sk-n-logo img{\n  display:block;\n  width:auto;\n  height:46px;\n  max-width:none;\n}\n\n\/* desktop links *\/\n#sk-nav .sk-n-links{\n  display:flex;\n  align-items:center;\n  gap:clamp(1.2rem,3vw,2.4rem);\n  margin:0 auto;\n  padding:0;\n  list-style:none;\n}\n#sk-nav .sk-n-links li{margin:0;padding:0;list-style:none}\n#sk-nav .sk-n-links li::marker,#sk-nav .sk-n-links li::before{content:none}\n#sk-nav .sk-n-links a{\n  font-size:1.02rem;\n  font-weight:600;\n  letter-spacing:-.01em;\n  color:var(--sk-navy);\n  text-decoration:none;\n  transition:color .16s ease;\n}\n#sk-nav .sk-n-links a:hover{color:#1a56e8}\n\n\/* cta *\/\n#sk-nav .sk-n-cta{\n  flex:none;\n  display:inline-flex;\n  align-items:center;\n  justify-content:center;\n  padding:.78rem 1.4rem;\n  border:0;\n  border-radius:8px;\n  background:linear-gradient(180deg,var(--sk-amber-lite) 0%,var(--sk-amber-deep) 100%);\n  color:#fff;\n  font-family:inherit;\n  font-size:.95rem;\n  font-weight:700;\n  letter-spacing:-.01em;\n  text-decoration:none;\n  white-space:nowrap;\n  box-shadow:0 6px 18px rgba(216,102,5,.3);\n  transition:transform .18s ease,box-shadow .18s ease;\n}\n#sk-nav .sk-n-cta:hover{\n  transform:translateY(-1px);color:#fff;text-decoration:none;\n  box-shadow:0 10px 24px rgba(216,102,5,.4);\n}\n#sk-nav .sk-n-cta:focus-visible{outline:3px solid var(--sk-navy);outline-offset:3px}\n\n\/* hamburger \u2014 hidden on desktop *\/\n#sk-nav .sk-n-toggle{\n  display:none;\n  flex:none;\n  width:44px;height:44px;\n  padding:0;\n  border:1px solid var(--sk-line);\n  border-radius:10px;\n  background:#fff;\n  color:var(--sk-navy);\n  cursor:pointer;\n  align-items:center;\n  justify-content:center;\n  line-height:0;\n}\n#sk-nav .sk-n-toggle:focus-visible{outline:3px solid var(--sk-navy);outline-offset:2px}\n#sk-nav .sk-n-toggle svg{display:block;flex:none}\n#sk-nav .sk-n-toggle .sk-n-close{display:none}\n#sk-nav .sk-n-toggle[aria-expanded=\"true\"] .sk-n-open{display:none}\n#sk-nav .sk-n-toggle[aria-expanded=\"true\"] .sk-n-close{display:block}\n\n\/* ---------- MOBILE ---------- *\/\n@media (max-width:1024px){\n  #sk-nav .sk-n-bar{gap:.7rem;padding:.7rem 1rem}\n  #sk-nav .sk-n-logo img{height:38px}\n  #sk-nav .sk-n-toggle{display:inline-flex}\n\n  #sk-nav .sk-n-cta{\n    margin-left:auto;\n    padding:.66rem 1rem;\n    font-size:.86rem;\n  }\n\n  \/* links become the drop panel *\/\n  #sk-nav .sk-n-links{\n    position:absolute;\n    left:0;right:0;\n    top:100%;\n    display:grid;\n    gap:0;\n    margin:0;\n    padding:0 1rem .6rem;\n    background:#fff;\n    border-bottom:1px solid var(--sk-line);\n    box-shadow:0 14px 30px rgba(10,26,77,.10);\n    opacity:0;\n    visibility:hidden;\n    transform:translateY(-10px);\n    transition:opacity .22s ease,transform .22s ease,visibility .22s ease;\n  }\n  #sk-nav .sk-n-links.is-open{\n    opacity:1;\n    visibility:visible;\n    transform:translateY(0);\n  }\n  #sk-nav .sk-n-links a{\n    display:block;\n    padding:.95rem .25rem;\n    font-size:1.05rem;\n    border-bottom:1px solid #f2f4f8;\n  }\n  #sk-nav .sk-n-links li:last-child a{border-bottom:0}\n}\n\n@media (max-width:420px){\n  #sk-nav .sk-n-logo img{height:32px}\n  #sk-nav .sk-n-cta{padding:.6rem .8rem;font-size:.8rem}\n  #sk-nav .sk-n-toggle{width:40px;height:40px}\n}\n\n@media (prefers-reduced-motion:reduce){\n  #sk-nav *{transition:none !important}\n}\n<\/style>\n\n<header id=\"sk-nav\">\n  <nav class=\"sk-n-bar\" aria-label=\"Main\">\n\n    <a class=\"sk-n-logo\" href=\"https:\/\/extreemtek.com\/\">\n      <img decoding=\"async\" src=\"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/09\/Frame.png\" alt=\"ExtreemTek \u2014 Engineering Ideas into Intelligent Reality\">\n    <\/a>\n\n    <ul class=\"sk-n-links\" id=\"skNavLinks\">\n      <li><a href=\"https:\/\/extreemtek.com\/\">Home<\/a><\/li>\n      <li><a href=\"https:\/\/extreemtek.com\/#services\">What We Do<\/a><\/li>\n      <li><a href=\"https:\/\/extreemtek.com\/#case-studies\">Case Studies<\/a><\/li>\n      <li><a href=\"https:\/\/extreemtek.com\/#how-we-work\">How We Work<\/a><\/li><li><a href=\"https:\/\/extreemtek.com\/contact-us\/\">Contact Us<\/a><\/li>\n    <\/ul>\n\n    <a class=\"sk-n-cta\" href=\"#iot-cta\">Discuss Your Product<\/a>\n\n    <button class=\"sk-n-toggle\" id=\"skNavToggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"skNavLinks\" aria-label=\"Open menu\">\n      <svg class=\"sk-n-open\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M4 7h16M4 12h16M4 17h16\"><\/path><\/svg>\n      <svg class=\"sk-n-close\" width=\"22\" height=\"22\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\"><\/path><\/svg>\n    <\/button>\n\n  <\/nav>\n<\/header>\n\n<script>\n(function(){\n  var btn   = document.getElementById('skNavToggle');\n  var links = document.getElementById('skNavLinks');\n  if(!btn || !links) return;\n\n  function setOpen(open){\n    links.classList.toggle('is-open', open);\n    btn.setAttribute('aria-expanded', open);\n    btn.setAttribute('aria-label', open ? 'Close menu' : 'Open menu');\n  }\n\n  btn.addEventListener('click', function(){\n    setOpen(btn.getAttribute('aria-expanded') !== 'true');\n  });\n\n  \/* close after tapping a link *\/\n  links.addEventListener('click', function(e){\n    if(e.target.closest('a')) setOpen(false);\n  });\n\n  \/* close on Escape, and on outside tap *\/\n  document.addEventListener('keydown', function(e){\n    if(e.key === 'Escape') setOpen(false);\n  });\n  document.addEventListener('click', function(e){\n    if(!e.target.closest('#sk-nav')) setOpen(false);\n  });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-931da8b e-con-full e-flex e-con e-parent\" data-id=\"931da8b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-07b9892 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"07b9892\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ===== ExtreemTek Hero \u2014 paste into an Elementor HTML widget ===== -->\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n\r\n<section class=\"etk-hero\">\r\n  <div class=\"etk-hero__inner\">\r\n\r\n    <!-- LEFT \u2014 copy -->\r\n    <div class=\"etk-hero__copy\">\r\n\r\n      <p class=\"etk-badge\">Services <span class=\"etk-badge__dot\">&bull;<\/span> IoT Firmware &amp; Smart Devices<\/p>\r\n\r\n      <h1 class=\"etk-title\">\r\n        From Sensors to Products\r\n        <span class=\"etk-title__accent\">Built to Scale<\/span>\r\n      <\/h1>\r\n\r\n      <div class=\"etk-actions\">\r\n        <a class=\"etk-btn etk-btn--orange\"\r\n           href=\"https:\/\/calendly.com\/aqeel-extreemtek\/30min\"\r\n           target=\"_blank\" rel=\"noopener\">\r\n          Schedule a Discovery Call\r\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 12h15M13 6l6 6-6 6\"\/><\/svg>\r\n        <\/a>\r\n        <button class=\"etk-btn etk-btn--blue\" type=\"button\" data-etk-open>\r\n          Send Project Details\r\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 12h15M13 6l6 6-6 6\"\/><\/svg>\r\n        <\/button>\r\n      <\/div>\r\n\r\n      <ul class=\"etk-features\">\r\n        <li>\r\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"7\" y=\"7\" width=\"10\" height=\"10\" rx=\"1.6\"\/><path d=\"M10 3.5v3.5M14 3.5v3.5M10 17v3.5M14 17v3.5M3.5 10H7M3.5 14H7M17 10h3.5M17 14h3.5\"\/><\/svg>\r\n          <span>IOT &amp; Firmware<\/span>\r\n        <\/li>\r\n        <li>\r\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 19.5v-8\"\/><circle cx=\"12\" cy=\"9.2\" r=\"2.1\"\/><path d=\"M7.7 13.6a6 6 0 010-8.8M16.3 4.8a6 6 0 010 8.8M4.6 16.8a10.2 10.2 0 010-15.2M19.4 1.6a10.2 10.2 0 010 15.2\"\/><\/svg>\r\n          <span>Smart Devices<\/span>\r\n        <\/li>\r\n        <li>\r\n          <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 12a7.5 7.5 0 0115 0v5.2a2.3 2.3 0 01-2.3 2.3H6.8a2.3 2.3 0 01-2.3-2.3V12z\"\/><path d=\"M9.3 15.4h5.4\"\/><\/svg>\r\n          <span>Secure Ecosystem<\/span>\r\n        <\/li>\r\n      <\/ul>\r\n\r\n    <\/div>\r\n\r\n    <!-- RIGHT \u2014 floating picture card -->\r\n    <div class=\"etk-hero__media\">\r\n      <div class=\"etk-stage\">\r\n        <div class=\"etk-cluster\">\r\n          <article class=\"etk-card\">\r\n            <img decoding=\"async\" class=\"etk-card__img\"\r\n                 src=\"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/09\/05f1a79c54a8dbc1d51e39a5eaf2693318008d38.png\"\r\n                 alt=\"ExtreemTek IoT hardware\">\r\n          <\/article>\r\n        <\/div>\r\n        <span class=\"etk-stage__shadow\" aria-hidden=\"true\"><\/span>\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ===== MODAL ===== -->\r\n<div class=\"etk-modal\" id=\"etkModal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"etkModalTitle\" hidden>\r\n  <div class=\"etk-modal__backdrop\" data-etk-close><\/div>\r\n\r\n  <div class=\"etk-modal__panel\" role=\"document\">\r\n    <button class=\"etk-modal__x\" type=\"button\" data-etk-close aria-label=\"Close\">\r\n      <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\"\/><\/svg>\r\n    <\/button>\r\n\r\n    <span class=\"etk-modal__mark\">\r\n      <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M21.5 2.5L2.8 9.4c-.8.3-.8 1.4 0 1.7l7.2 2.9 2.9 7.2c.3.8 1.4.8 1.7 0L21.5 2.5z\"\/><path d=\"M21.5 2.5L10 14\"\/><\/svg>\r\n    <\/span>\r\n\r\n    <h2 class=\"etk-modal__title\" id=\"etkModalTitle\">Let's Explore <span>Your Product Idea!<\/span><\/h2>\r\n    <p class=\"etk-modal__sub\">Tell us what you're building. Our engineering team will help you define the next step.<\/p>\r\n\r\n    <form class=\"etk-form\" id=\"etkForm\" novalidate>\r\n      <input type=\"hidden\" name=\"access_key\" value=\"d16be941-4049-42a1-aac1-c0025927fe85\">\r\n      <input type=\"hidden\" name=\"subject\" value=\"New project enquiry \u2014 ExtreemTek website\">\r\n      <input type=\"hidden\" name=\"from_name\" value=\"ExtreemTek Website\">\r\n      <input type=\"checkbox\" name=\"botcheck\" class=\"etk-form__hp\" tabindex=\"-1\" autocomplete=\"off\">\r\n\r\n      <div class=\"etk-field\">\r\n        <svg class=\"etk-field__ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"8\" r=\"3.6\"\/><path d=\"M4.8 20c.6-3.6 3.6-5.6 7.2-5.6s6.6 2 7.2 5.6\"\/><\/svg>\r\n        <input type=\"text\" name=\"name\" placeholder=\"Your Name*\" required autocomplete=\"name\">\r\n      <\/div>\r\n\r\n      <div class=\"etk-field\">\r\n        <svg class=\"etk-field__ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"2.8\" y=\"5\" width=\"18.4\" height=\"14\" rx=\"2.4\"\/><path d=\"M3.4 6.6L12 12.6l8.6-6\"\/><\/svg>\r\n        <input type=\"email\" name=\"email\" placeholder=\"Work Email*\" required autocomplete=\"email\">\r\n      <\/div>\r\n\r\n      <!-- phone: digits and phone punctuation only -->\r\n      <div class=\"etk-field\">\r\n        <svg class=\"etk-field__ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6.3 3.5h3.1l1.6 4-2 1.2a10.5 10.5 0 004.8 4.8l1.2-2 4 1.6v3.1a1.8 1.8 0 01-2 1.8A15.6 15.6 0 014.5 5.5a1.8 1.8 0 011.8-2z\"\/><\/svg>\r\n        <input type=\"tel\" id=\"etkPhone\" name=\"phone\"\r\n               placeholder=\"Phone Number*\"\r\n               required\r\n               inputmode=\"tel\"\r\n               autocomplete=\"tel\"\r\n               maxlength=\"20\"\r\n               pattern=\"[0-9+()\\-\\s]{7,20}\"\r\n               title=\"Digits only \u2014 you may also use + ( ) - and spaces\">\r\n        <small class=\"etk-hint\">Digits only. You may use +, (), - and spaces.<\/small>\r\n      <\/div>\r\n\r\n      <div class=\"etk-field etk-field--select\">\r\n        <svg class=\"etk-field__ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M12 2.8l8.4 4.6v9.2L12 21.2l-8.4-4.6V7.4L12 2.8z\"\/><path d=\"M3.8 7.4L12 12l8.2-4.6M12 12v9.2\"\/><\/svg>\r\n        <select name=\"project_type\" required>\r\n          <option value=\"\" disabled selected>What do you want to build?*<\/option>\r\n          <option>IoT firmware \/ embedded<\/option>\r\n          <option>Smart device (hardware + software)<\/option>\r\n          <option>Sensor network \/ telemetry<\/option>\r\n          <option>Mobile app (iOS &amp; Android)<\/option>\r\n          <option>Website \/ Web platform<\/option>\r\n          <option>Something else<\/option>\r\n        <\/select>\r\n        <svg class=\"etk-field__caret\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 9.5l6 6 6-6\"\/><\/svg>\r\n      <\/div>\r\n\r\n      <!-- optional short summary -->\r\n      <div class=\"etk-field etk-field--area\">\r\n        <svg class=\"etk-field__ico\" viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4.5 5.5h15M4.5 10h15M4.5 14.5h10\"\/><\/svg>\r\n        <textarea name=\"project_brief\"\r\n                  placeholder=\"Briefly, what are you building? (optional)\"\r\n                  aria-label=\"Short summary of your project or idea\"\r\n                  maxlength=\"600\" rows=\"3\"><\/textarea>\r\n        <small class=\"etk-hint\">A sentence or two is plenty \u2014 we'll ask the rest on the call.<\/small>\r\n      <\/div>\r\n\r\n      <button class=\"etk-submit\" type=\"submit\">\r\n        <span class=\"etk-submit__label\">Let's Discuss Your Idea<\/span>\r\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M4 12h15M13 6l6 6-6 6\"\/><\/svg>\r\n      <\/button>\r\n\r\n      <p class=\"etk-note\">\r\n        <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"4.6\" y=\"10.4\" width=\"14.8\" height=\"9.6\" rx=\"2.2\"\/><path d=\"M8.2 10.4V7.6a3.8 3.8 0 017.6 0v2.8\"\/><\/svg>\r\n        No obligation. We'll get back to you within 1\u20132 business days.\r\n      <\/p>\r\n\r\n      <p class=\"etk-status\" id=\"etkStatus\" role=\"status\" aria-live=\"polite\"><\/p>\r\n    <\/form>\r\n  <\/div>\r\n<\/div>\r\n\r\n<style>\r\n\/* ---- scoped to .etk-hero so the theme can't bleed in ---- *\/\r\n.etk-hero{\r\n  --navy:#0A1E3F;\r\n  --navy-2:#0D2751;\r\n  --orange:#F9A21B;\r\n  --blue:#1877F2;\r\n  --sky:#4C9BF8;\r\n  --ink:#FFFFFF;\r\n  --line:rgba(255,255,255,.16);\r\n\r\n  position:relative;\r\n  background:var(--navy);\r\n  background-image:radial-gradient(900px 520px at 76% 40%, var(--navy-2) 0%, var(--navy) 62%);\r\n  padding:80px 24px;\r\n  font-family:\"Poppins\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\r\n  overflow:hidden;\r\n}\r\n.etk-hero *,.etk-hero *::before,.etk-hero *::after{box-sizing:border-box;}\r\n\r\n.etk-hero__inner{\r\n  max-width:1280px;margin:0 auto;\r\n  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);\r\n  gap:48px;align-items:center;\r\n}\r\n\r\n\/* badge *\/\r\n.etk-badge{\r\n  display:inline-flex;align-items:center;gap:10px;\r\n  margin:0 0 30px;padding:11px 24px;\r\n  border:1px solid rgba(255,255,255,.35);border-radius:999px;\r\n  color:var(--ink);font-size:14px;font-weight:600;\r\n  letter-spacing:.06em;text-transform:uppercase;line-height:1;\r\n}\r\n.etk-badge__dot{color:var(--sky);font-size:16px;line-height:1;}\r\n\r\n\/* headline *\/\r\n.etk-title{\r\n  margin:0 0 34px;color:var(--ink);\r\n  font-size:clamp(38px,4.8vw,68px);font-weight:800;\r\n  line-height:1.04;letter-spacing:-.02em;\r\n}\r\n.etk-title__accent{display:block;color:var(--orange);}\r\n\r\n\/* buttons *\/\r\n.etk-actions{display:flex;flex-wrap:wrap;gap:20px;}\r\n.etk-hero .etk-btn{\r\n  display:inline-flex;align-items:center;gap:12px;\r\n  padding:17px 28px;border:0;border-radius:6px;\r\n  color:#fff !important;font-family:inherit;font-size:17px;font-weight:600;line-height:1;\r\n  text-decoration:none;cursor:pointer;\r\n  -webkit-appearance:none;appearance:none;\r\n  transition:transform .18s ease,filter .18s ease;\r\n}\r\n.etk-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}\r\n.etk-hero .etk-btn--orange{background:var(--orange) !important;}\r\n.etk-hero .etk-btn--blue{background:var(--blue) !important;}\r\n.etk-btn:hover{filter:brightness(1.07);transform:translateY(-2px);}\r\n.etk-btn:focus-visible{outline:3px solid #fff;outline-offset:3px;}\r\n\r\n\/* feature row \u2014 single line *\/\r\n.etk-features{\r\n  display:flex;flex-wrap:nowrap;align-items:center;\r\n  gap:clamp(14px,2vw,34px);\r\n  margin:46px 0 0;padding:30px 0 0;\r\n  list-style:none;border-top:1px solid var(--line);\r\n}\r\n.etk-features li{\r\n  display:flex;align-items:center;gap:9px;flex:none;\r\n  color:var(--ink);font-size:clamp(12px,1.02vw,15.5px);font-weight:500;white-space:nowrap;\r\n}\r\n.etk-features svg{\r\n  width:clamp(17px,1.4vw,23px);height:clamp(17px,1.4vw,23px);flex:none;color:var(--orange);\r\n  fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;\r\n}\r\n\r\n\/* ---- floating picture card ---- *\/\r\n.etk-hero__media{position:relative;display:flex;justify-content:center;}\r\n\r\n.etk-stage{\r\n  position:relative;\r\n  width:100%;max-width:520px;    \/* controls the card size *\/\r\n  padding:16px 16px 70px;        \/* room for the ground shadow *\/\r\n}\r\n\r\n.etk-cluster{\r\n  position:relative;\r\n  animation:etk-float 7s ease-in-out infinite;\r\n}\r\n\r\n.etk-card{\r\n  position:relative;overflow:hidden;\r\n  margin:0;padding:0;\r\n  border:1px solid rgba(255,255,255,.14);border-radius:18px;\r\n  background:#0C2049;\r\n  box-shadow:0 26px 60px rgba(0,0,0,.5);\r\n}\r\n.etk-hero .etk-card__img{\r\n  display:block;width:100%;height:auto;max-width:100%;\r\n  margin:0;border:0;border-radius:0;\r\n}\r\n\r\n\/* soft round shadow pooled below the card *\/\r\n.etk-stage__shadow{\r\n  position:absolute;left:50%;bottom:14px;\r\n  width:72%;height:30px;border-radius:50%;\r\n  background:radial-gradient(ellipse at center, rgba(0,0,0,.55) 0%, rgba(0,0,0,.26) 45%, rgba(0,0,0,0) 74%);\r\n  filter:blur(16px);\r\n  transform:translateX(-50%);\r\n  animation:etk-float-shadow 7s ease-in-out infinite;\r\n}\r\n\r\n@keyframes etk-float{\r\n  0%,100%{transform:translateY(0);}\r\n  50%{transform:translateY(-14px);}\r\n}\r\n@keyframes etk-float-shadow{\r\n  0%,100%{transform:translateX(-50%) scale(1);opacity:.9;}\r\n  50%{transform:translateX(-50%) scale(.82);opacity:.52;}\r\n}\r\n\r\n\/* ===== MODAL ===== *\/\r\n.etk-modal{\r\n  position:fixed;inset:0;z-index:99999;\r\n  display:flex;align-items:center;justify-content:center;\r\n  padding:20px;\r\n  font-family:\"Poppins\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\r\n}\r\n.etk-modal[hidden]{display:none;}\r\n.etk-modal *,.etk-modal *::before,.etk-modal *::after{box-sizing:border-box;}\r\n\r\n.etk-modal__backdrop{\r\n  position:absolute;inset:0;\r\n  background:rgba(3,10,24,.72);\r\n  -webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);\r\n  animation:etk-fade .22s ease;\r\n}\r\n\r\n.etk-modal__panel{\r\n  position:relative;z-index:2;\r\n  width:100%;max-width:540px;max-height:94vh;\r\n  padding:34px 40px 30px;\r\n  border:1px solid rgba(47,134,246,.5);border-radius:16px;\r\n  background:linear-gradient(170deg,#132C4F 0%,#0C1E3B 60%,#0A1730 100%);\r\n  box-shadow:0 30px 80px rgba(0,0,0,.6);\r\n  animation:etk-pop .26s cubic-bezier(.3,.8,.3,1);\r\n  overflow-y:auto;\r\n  scrollbar-width:none;\r\n  -ms-overflow-style:none;\r\n}\r\n.etk-modal__panel::-webkit-scrollbar{width:0;height:0;display:none;}\r\n\r\n.etk-modal__x{\r\n  position:absolute;top:16px;right:16px;\r\n  width:38px;height:38px;min-width:0;min-height:0;\r\n  padding:0 !important;margin:0;\r\n  border:0;border-radius:50%;\r\n  display:flex;align-items:center;justify-content:center;\r\n  line-height:0;font-size:0;\r\n  background:rgba(255,255,255,.12) !important;color:#fff !important;\r\n  cursor:pointer;-webkit-appearance:none;appearance:none;\r\n  transition:background .2s ease;\r\n}\r\n.etk-modal__x:hover{background:rgba(255,255,255,.22) !important;}\r\n.etk-modal__x svg{\r\n  display:block;width:16px;height:16px;\r\n  fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;\r\n}\r\n\r\n.etk-modal__mark{\r\n  display:grid;place-items:center;\r\n  width:62px;height:62px;margin-bottom:18px;\r\n  border-radius:14px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);\r\n}\r\n.etk-modal__mark svg{\r\n  width:29px;height:29px;color:#F9A21B;\r\n  fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;\r\n}\r\n\r\n.etk-modal__title{\r\n  margin:0 0 10px;color:#fff;\r\n  font-size:clamp(24px,3vw,32px);font-weight:800;line-height:1.15;letter-spacing:-.015em;\r\n}\r\n.etk-modal__title span{color:#F9A21B;}\r\n.etk-modal__sub{\r\n  margin:0 0 22px;color:#C3D2E6;font-size:14.5px;line-height:1.55;\r\n}\r\n\r\n\/* form *\/\r\n.etk-form{display:flex;flex-direction:column;gap:12px;}\r\n.etk-form__hp{position:absolute;left:-9999px;opacity:0;pointer-events:none;}\r\n\r\n.etk-field{position:relative;display:block;}\r\n.etk-field__ico{\r\n  position:absolute;left:18px;top:50%;transform:translateY(-50%);\r\n  width:20px;height:20px;color:#5B6B82;pointer-events:none;\r\n  fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;\r\n}\r\n\/* textarea icon pins to the first line, not the middle *\/\r\n.etk-field--area .etk-field__ico{top:19px;transform:none;}\r\n.etk-field__caret{\r\n  position:absolute;right:18px;top:50%;transform:translateY(-50%);\r\n  width:18px;height:18px;color:#5B6B82;pointer-events:none;\r\n  fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;\r\n}\r\n\r\n.etk-modal input[type=text],\r\n.etk-modal input[type=email],\r\n.etk-modal input[type=tel],\r\n.etk-modal select,\r\n.etk-modal textarea{\r\n  width:100%;height:56px;\r\n  padding:0 20px 0 50px;margin:0;\r\n  border:2px solid transparent;border-radius:9px;\r\n  background:#fff !important;color:#132B4D !important;\r\n  font-family:inherit;font-size:15px;font-weight:500;\r\n  -webkit-appearance:none;appearance:none;\r\n  transition:border-color .2s ease,box-shadow .2s ease;\r\n}\r\n.etk-modal textarea{\r\n  height:auto;min-height:104px;\r\n  padding:16px 18px 16px 50px;\r\n  line-height:1.5;resize:vertical;\r\n}\r\n.etk-modal select{padding-right:46px;cursor:pointer;}\r\n.etk-modal input::placeholder,\r\n.etk-modal textarea::placeholder{color:#8A98AB;font-weight:500;}\r\n.etk-modal select:invalid{color:#8A98AB !important;}\r\n.etk-modal input:focus,\r\n.etk-modal select:focus,\r\n.etk-modal textarea:focus{\r\n  outline:none;border-color:#2F86F6;box-shadow:0 0 0 4px rgba(47,134,246,.25);\r\n}\r\n.etk-modal .etk-field--error input,\r\n.etk-modal .etk-field--error select{border-color:#F05138;}\r\n\r\n.etk-hint{\r\n  display:block;margin:6px 0 0 2px;\r\n  color:#9FB1C8;font-size:12px;line-height:1.45;\r\n}\r\n\r\n.etk-submit{\r\n  display:flex;align-items:center;justify-content:center;gap:12px;\r\n  width:100%;height:58px;margin-top:6px;\r\n  border:0;border-radius:9px;\r\n  background:linear-gradient(90deg,#F9A21B 0%,#E8740C 100%) !important;\r\n  color:#fff !important;font-family:inherit;font-size:16px;font-weight:700;line-height:1;\r\n  cursor:pointer;-webkit-appearance:none;appearance:none;\r\n  box-shadow:0 10px 26px rgba(232,116,12,.3);\r\n  transition:filter .2s ease,transform .2s ease;\r\n}\r\n.etk-submit svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;}\r\n.etk-submit:hover{filter:brightness(1.06);transform:translateY(-2px);}\r\n.etk-submit:disabled{opacity:.65;cursor:not-allowed;transform:none;}\r\n\r\n.etk-note{\r\n  display:flex;align-items:center;gap:9px;\r\n  margin:12px 0 0;color:#9FB1C8;font-size:12.5px;line-height:1.5;\r\n}\r\n.etk-note svg{\r\n  width:15px;height:15px;flex:none;\r\n  fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;\r\n}\r\n\r\n.etk-status{margin:10px 0 0;font-size:13.5px;font-weight:600;line-height:1.5;}\r\n.etk-status:empty{display:none;}\r\n.etk-status--ok{color:#5BD99A;}\r\n.etk-status--err{color:#FF8A73;}\r\n.etk-form--sent .etk-note{display:none;}\r\n\r\n@keyframes etk-fade{from{opacity:0;}to{opacity:1;}}\r\n@keyframes etk-pop{from{opacity:0;transform:translateY(16px) scale(.97);}to{opacity:1;transform:none;}}\r\n\r\n\/* responsive *\/\r\n@media (max-width:1024px){\r\n  .etk-hero__inner{grid-template-columns:1fr;gap:48px;}\r\n  .etk-stage{max-width:520px;padding:12px 12px 62px;}\r\n}\r\n@media (max-width:600px){\r\n  .etk-hero{padding:52px 18px;}\r\n  .etk-badge{font-size:12px;padding:10px 18px;}\r\n  .etk-actions{gap:14px;}\r\n  .etk-hero .etk-btn{width:100%;justify-content:center;font-size:16px;padding:16px 22px;}\r\n  .etk-features{flex-wrap:wrap;gap:14px 22px;margin-top:36px;}\r\n  .etk-features li{font-size:13.5px;}\r\n\r\n  .etk-stage{max-width:100%;padding:8px 4px 52px;}\r\n  .etk-card{border-radius:14px;}\r\n\r\n  .etk-modal{padding:12px;}\r\n  .etk-modal__panel{padding:28px 20px 24px;}\r\n  .etk-modal__mark{width:54px;height:54px;margin-bottom:15px;}\r\n  .etk-modal__mark svg{width:25px;height:25px;}\r\n  .etk-modal__sub{font-size:13.5px;margin-bottom:18px;}\r\n  .etk-modal input[type=text],\r\n  .etk-modal input[type=email],\r\n  .etk-modal input[type=tel],\r\n  .etk-modal select{height:52px;font-size:14.5px;}\r\n  .etk-modal textarea{min-height:96px;font-size:14.5px;}\r\n  .etk-submit{height:54px;font-size:15px;}\r\n}\r\n@media (max-height:720px){\r\n  .etk-modal__panel{padding:26px 34px 22px;}\r\n  .etk-modal__mark{width:52px;height:52px;margin-bottom:13px;}\r\n  .etk-modal__mark svg{width:24px;height:24px;}\r\n  .etk-modal__title{font-size:clamp(21px,2.6vw,27px);}\r\n  .etk-modal__sub{margin-bottom:16px;font-size:13.5px;}\r\n  .etk-form{gap:10px;}\r\n  .etk-modal input[type=text],\r\n  .etk-modal input[type=email],\r\n  .etk-modal input[type=tel],\r\n  .etk-modal select{height:50px;}\r\n  .etk-modal textarea{min-height:88px;}\r\n  .etk-submit{height:52px;}\r\n}\r\n@media (prefers-reduced-motion:reduce){\r\n  .etk-btn,.etk-submit{transition:none;}\r\n  .etk-cluster,.etk-stage__shadow{animation:none;}\r\n  .etk-modal__panel,.etk-modal__backdrop{animation:none;}\r\n}\r\n<\/style>\r\n\r\n<script>\r\n(function(){\r\n  var modal  = document.getElementById('etkModal');\r\n  var form   = document.getElementById('etkForm');\r\n  var status = document.getElementById('etkStatus');\r\n  var phone  = document.getElementById('etkPhone');\r\n  if(!modal || !form) return;\r\n\r\n  var lastFocus = null;\r\n\r\n  \/* ---- phone field: allow only digits and phone punctuation ---- *\/\r\n  if(phone){\r\n    var ALLOWED = \/[^0-9+()\\-\\s]\/g;\r\n\r\n    \/* block disallowed characters as they are typed *\/\r\n    phone.addEventListener('keypress', function(e){\r\n      if(e.ctrlKey || e.metaKey || e.altKey) return;\r\n      if(e.key && e.key.length === 1 && ALLOWED.test(e.key)){\r\n        e.preventDefault();\r\n      }\r\n    });\r\n\r\n    \/* strip anything that slips through (paste, autofill, mobile keyboards) *\/\r\n    function clean(){\r\n      var start = phone.selectionStart;\r\n      var before = phone.value;\r\n      var after = before.replace(ALLOWED, '');\r\n      if(after !== before){\r\n        phone.value = after;\r\n        var drop = before.length - after.length;\r\n        try{ phone.setSelectionRange(Math.max(0, start - drop), Math.max(0, start - drop)); }catch(err){}\r\n      }\r\n    }\r\n    phone.addEventListener('input', clean);\r\n    phone.addEventListener('paste', function(){ setTimeout(clean, 0); });\r\n  }\r\n\r\n  function open(e){\r\n    lastFocus = e && e.currentTarget ? e.currentTarget : null;\r\n    modal.hidden = false;\r\n    document.body.style.overflow = 'hidden';\r\n    var first = modal.querySelector('input[name=\"name\"]');\r\n    if(first) setTimeout(function(){ first.focus(); }, 60);\r\n  }\r\n\r\n  function close(){\r\n    modal.hidden = true;\r\n    document.body.style.overflow = '';\r\n\r\n    \/* clear every field so reopening starts fresh *\/\r\n    form.reset();\r\n    form.querySelectorAll('.etk-field').forEach(function(f){ f.classList.remove('etk-field--error'); });\r\n\r\n    form.classList.remove('etk-form--sent');\r\n    status.textContent = '';\r\n    status.className = 'etk-status';\r\n    if(lastFocus) lastFocus.focus();\r\n  }\r\n\r\n  function say(msg, kind){\r\n    status.textContent = msg;\r\n    status.className = 'etk-status' + (kind ? ' etk-status--' + kind : '');\r\n    form.classList.toggle('etk-form--sent', !!msg);\r\n  }\r\n\r\n  document.querySelectorAll('[data-etk-open]').forEach(function(btn){\r\n    btn.addEventListener('click', open);\r\n  });\r\n  modal.querySelectorAll('[data-etk-close]').forEach(function(btn){\r\n    btn.addEventListener('click', close);\r\n  });\r\n  document.addEventListener('keydown', function(ev){\r\n    if(ev.key === 'Escape' && !modal.hidden) close();\r\n  });\r\n\r\n  form.addEventListener('submit', function(ev){\r\n    ev.preventDefault();\r\n\r\n    form.querySelectorAll('.etk-field').forEach(function(f){ f.classList.remove('etk-field--error'); });\r\n    say('');\r\n\r\n    var bad = false;\r\n    form.querySelectorAll('input[required], select[required]').forEach(function(el){\r\n      var empty = !el.value;\r\n      var badEmail = el.type === 'email' && !\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(el.value);\r\n      var badPhone = el.type === 'tel' && el.value.replace(\/\\D\/g, '').length < 7;\r\n      if(empty || badEmail || badPhone){\r\n        el.closest('.etk-field').classList.add('etk-field--error');\r\n        bad = true;\r\n      }\r\n    });\r\n    if(bad){\r\n      say('Please complete every required field with a valid email and phone number.', 'err');\r\n      return;\r\n    }\r\n\r\n    var btn = form.querySelector('.etk-submit');\r\n    var lbl = form.querySelector('.etk-submit__label');\r\n    var original = lbl.textContent;\r\n    btn.disabled = true;\r\n    lbl.textContent = 'Sending\u2026';\r\n\r\n    var payload = Object.fromEntries(new FormData(form).entries());\r\n\r\n    fetch('https:\/\/api.web3forms.com\/submit', {\r\n      method: 'POST',\r\n      headers: { 'Content-Type': 'application\/json', 'Accept': 'application\/json' },\r\n      body: JSON.stringify(payload)\r\n    })\r\n    .then(function(r){ return r.json(); })\r\n    .then(function(data){\r\n      if(data.success){\r\n        form.reset();\r\n        say('Thanks \u2014 your details are with our team. We\\'ll reply within 1\u20132 business days.', 'ok');\r\n        setTimeout(close, 3200);\r\n      } else {\r\n        say(data.message || 'Something went wrong. Please email us directly.', 'err');\r\n      }\r\n    })\r\n    .catch(function(){\r\n      say('Network error. Please check your connection and try again.', 'err');\r\n    })\r\n    .finally(function(){\r\n      btn.disabled = false;\r\n      lbl.textContent = original;\r\n    });\r\n  });\r\n})();\r\n<\/script>\r\n<!-- ===== \/ExtreemTek Hero ===== -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-44da58b e-con-full e-flex e-con e-parent\" data-id=\"44da58b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5b0c0b8 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"5b0c0b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ===== ExtreemTek \u2014 Engineering Process \u2014 Elementor HTML widget ===== -->\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n\r\n<section class=\"etk-proc\">\r\n  <div class=\"etk-proc__wrap\">\r\n\r\n    <header class=\"etk-proc__head\">\r\n      <p class=\"etk-proc__badge\"><span class=\"etk-proc__dot\"><\/span>How we work<\/p>\r\n      <h2 class=\"etk-proc__title\">The ExtreemTek <span>IoT Delivery Process<\/span><\/h2>\r\n      <p class=\"etk-proc__sub\">From initial discovery to enterprise scaling, explore our 4-stage delivery pipeline. Hover over each circle to inspect the milestone deliverables.<\/p>\r\n    <\/header>\r\n\r\n    <div class=\"etk-flow\">\r\n      <span class=\"etk-flow__line\" aria-hidden=\"true\"><\/span>\r\n\r\n      <ul class=\"etk-steps\">\r\n\r\n        <li class=\"etk-step etk-step--blue\">\r\n          <button class=\"etk-node\" type=\"button\">\r\n            <span class=\"etk-node__num\">01<\/span>\r\n            <span class=\"etk-node__body\">\r\n              <span class=\"etk-node__stage\">Stage 01<\/span>\r\n              <span class=\"etk-node__name\">Discover &amp; Hardware Architecture<\/span>\r\n              <span class=\"etk-node__pill\">\r\n                <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M8.4 12.2l2.4 2.4 4.8-4.8\"\/><\/svg>\r\n                Architecture &amp; BOM Spec\r\n              <\/span>\r\n            <\/span>\r\n          <\/button>\r\n        <\/li>\r\n\r\n        <li class=\"etk-step etk-step--blue\">\r\n          <button class=\"etk-node\" type=\"button\">\r\n            <span class=\"etk-node__num\">02<\/span>\r\n            <span class=\"etk-node__body\">\r\n              <span class=\"etk-node__stage\">Stage 02<\/span>\r\n              <span class=\"etk-node__name\">Firmware Prototyping &amp; EVT<\/span>\r\n              <span class=\"etk-node__pill\">\r\n                <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M8.4 12.2l2.4 2.4 4.8-4.8\"\/><\/svg>\r\n                Functional Hardware MVP\r\n              <\/span>\r\n            <\/span>\r\n          <\/button>\r\n        <\/li>\r\n\r\n        <li class=\"etk-step etk-step--gold\">\r\n          <button class=\"etk-node\" type=\"button\">\r\n            <span class=\"etk-node__num\">03<\/span>\r\n            <span class=\"etk-node__body\">\r\n              <span class=\"etk-node__stage\">Stage 03<\/span>\r\n              <span class=\"etk-node__name\">Stress Hardening &amp; DVT<\/span>\r\n              <span class=\"etk-node__pill\">\r\n                <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M8.4 12.2l2.4 2.4 4.8-4.8\"\/><\/svg>\r\n                EMC &amp; Battery Audit\r\n              <\/span>\r\n            <\/span>\r\n          <\/button>\r\n        <\/li>\r\n\r\n        <li class=\"etk-step etk-step--gold\">\r\n          <button class=\"etk-node\" type=\"button\">\r\n            <span class=\"etk-node__num\">04<\/span>\r\n            <span class=\"etk-node__body\">\r\n              <span class=\"etk-node__stage\">Stage 04<\/span>\r\n              <span class=\"etk-node__name\">Mass Production &amp; PVT<\/span>\r\n              <span class=\"etk-node__pill\">\r\n                <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"12\" r=\"9\"\/><path d=\"M8.4 12.2l2.4 2.4 4.8-4.8\"\/><\/svg>\r\n                Flashing &amp; Fleet Deployment\r\n              <\/span>\r\n            <\/span>\r\n          <\/button>\r\n        <\/li>\r\n\r\n      <\/ul>\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n.etk-proc{\r\n  --navy:#132B4D;\r\n  --blue:#2F86F6;\r\n  --gold:#F9A21B;\r\n  --muted:#6B7C93;\r\n  --page:#FFFFFF;\r\n\r\n  --size:90px;    \/* collapsed circle *\/\r\n  --exp:288px;    \/* expanded circle *\/\r\n  --inner:200px;  \/* content width \u2014 ~70% of --exp keeps it off the curve *\/\r\n\r\n  background:var(--page);\r\n  padding:86px 24px;\r\n  font-family:\"Poppins\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\r\n}\r\n.etk-proc *,.etk-proc *::before,.etk-proc *::after{box-sizing:border-box;}\r\n\r\n.etk-proc__wrap{max-width:1160px;margin:0 auto;}\r\n\r\n\/* header *\/\r\n.etk-proc__head{text-align:center;margin:0 0 20px;}\r\n.etk-proc__badge{\r\n  display:inline-flex;align-items:center;gap:8px;\r\n  margin:0 0 18px;padding:7px 16px;\r\n  background:#EAF2FE;border-radius:999px;\r\n  color:var(--blue);font-size:11px;font-weight:700;\r\n  letter-spacing:.13em;text-transform:uppercase;\r\n}\r\n.etk-proc__dot{width:7px;height:7px;border-radius:50%;background:var(--blue);}\r\n.etk-proc__title{\r\n  margin:0 0 14px;color:var(--navy);\r\n  font-size:clamp(28px,3.6vw,42px);font-weight:800;\r\n  line-height:1.15;letter-spacing:-.015em;\r\n}\r\n.etk-proc__title span{color:var(--blue);}\r\n.etk-proc__sub{\r\n  max-width:620px;margin:0 auto;\r\n  color:var(--muted);font-size:15px;line-height:1.65;\r\n}\r\n\r\n\/* flow *\/\r\n.etk-flow{position:relative;margin-top:56px;}\r\n\r\n.etk-flow__line{\r\n  position:absolute;top:50%;left:12.5%;right:12.5%;\r\n  height:3px;border-radius:2px;transform:translateY(-50%);\r\n  background:linear-gradient(90deg,var(--blue) 0%,#4C9BF8 34%,#9DB86E 62%,var(--gold) 100%);\r\n  z-index:0;\r\n}\r\n\r\n.etk-steps{\r\n  position:relative;z-index:1;\r\n  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));\r\n  margin:0;padding:0;list-style:none;\r\n  height:var(--exp);\r\n}\r\n.etk-step{position:relative;}\r\n.etk-step--blue{--accent:var(--blue);--tint:#EAF2FE;}\r\n.etk-step--gold{--accent:var(--gold);--tint:#FEF3E2;}\r\n\r\n\/* the circle \u2014 hard reset so theme\/Elementor button styles can't bleed in *\/\r\n.etk-proc .etk-node,\r\n.etk-proc .etk-node:hover,\r\n.etk-proc .etk-node:focus,\r\n.etk-proc .etk-node:active,\r\n.etk-proc .etk-node:visited{\r\n  -webkit-appearance:none;appearance:none;\r\n  background-image:none !important;\r\n  text-shadow:none;\r\n  text-decoration:none;\r\n  filter:none;\r\n}\r\n\r\n.etk-proc .etk-node{\r\n  position:absolute;top:50%;left:50%;\r\n  transform:translate(-50%,-50%);\r\n  width:var(--size);height:var(--size);\r\n  display:flex;flex-direction:column;align-items:center;justify-content:center;\r\n  margin:0;padding:0;\r\n  border:2px solid var(--accent);border-radius:50%;\r\n  background-color:#fff !important;\r\n  color:var(--navy);\r\n  cursor:pointer;overflow:hidden;\r\n  box-shadow:0 4px 14px rgba(19,43,77,.08);\r\n  font-family:inherit;text-align:center;\r\n  transition:width .42s cubic-bezier(.3,.8,.3,1),\r\n             height .42s cubic-bezier(.3,.8,.3,1),\r\n             box-shadow .42s ease,\r\n             background-color .42s ease;\r\n}\r\n.etk-proc .etk-node:hover,\r\n.etk-proc .etk-node:focus-visible{\r\n  width:var(--exp);height:var(--exp);\r\n  background-color:var(--tint) !important;\r\n  border-color:var(--accent);\r\n  box-shadow:0 16px 40px rgba(19,43,77,.18);\r\n  outline:none;\r\n  z-index:4;\r\n}\r\n.etk-proc .etk-node:focus-visible{border-width:3px;}\r\n\r\n\/* the number *\/\r\n.etk-node__num{\r\n  color:var(--accent);font-size:25px;font-weight:700;line-height:1;\r\n  transition:font-size .42s ease,opacity .25s ease;\r\n}\r\n.etk-node:hover .etk-node__num,\r\n.etk-node:focus-visible .etk-node__num{font-size:0;opacity:0;}\r\n\r\n\/* the revealed content *\/\r\n.etk-node__body{\r\n  display:flex;flex-direction:column;align-items:center;gap:11px;\r\n  width:var(--inner);max-width:var(--inner);\r\n  max-height:0;\r\n  opacity:0;pointer-events:none;\r\n  transition:opacity .28s ease .12s,max-height .42s ease;\r\n}\r\n.etk-node:hover .etk-node__body,\r\n.etk-node:focus-visible .etk-node__body{max-height:220px;opacity:1;}\r\n\r\n.etk-node__stage{\r\n  color:var(--accent);font-size:10px;font-weight:700;\r\n  letter-spacing:.15em;text-transform:uppercase;\r\n}\r\n.etk-node__name{\r\n  color:var(--navy);font-size:15px;font-weight:700;line-height:1.34;\r\n  text-wrap:balance;\r\n}\r\n.etk-node__pill{\r\n  display:inline-flex;align-items:center;justify-content:center;gap:7px;\r\n  max-width:100%;\r\n  margin-top:2px;padding:9px 14px;\r\n  background-color:#fff;border:1px solid rgba(19,43,77,.08);border-radius:999px;\r\n  box-shadow:0 3px 10px rgba(19,43,77,.08);\r\n  color:var(--navy);font-size:11px;font-weight:600;line-height:1.35;\r\n  text-wrap:balance;\r\n}\r\n.etk-node__pill svg{\r\n  width:14px;height:14px;flex:none;color:var(--accent);\r\n  fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;\r\n}\r\n\r\n\/* ---- tablet ---- *\/\r\n@media (max-width:1100px){\r\n  .etk-proc{--size:80px;--exp:246px;--inner:170px;}\r\n  .etk-node__name{font-size:14px;}\r\n  .etk-node__pill{font-size:10px;padding:8px 12px;}\r\n}\r\n\r\n\/* ---- no hover (touch) + small screens: open cards, no circles ---- *\/\r\n@media (max-width:860px), (hover:none){\r\n  .etk-flow__line{display:none;}\r\n  .etk-steps{grid-template-columns:1fr;gap:16px;height:auto;}\r\n  .etk-step{position:static;}\r\n\r\n  .etk-proc .etk-node{\r\n    position:static;transform:none;\r\n    width:100%;height:auto;\r\n    flex-direction:row;\r\n    align-items:flex-start;\r\n    justify-content:flex-start;\r\n    gap:18px;\r\n    padding:20px 22px;\r\n    border-radius:16px;\r\n    background-color:var(--tint) !important;\r\n    text-align:left;\r\n    box-shadow:0 4px 14px rgba(19,43,77,.07);\r\n    transition:none;cursor:default;\r\n  }\r\n  .etk-proc .etk-node:hover,\r\n  .etk-proc .etk-node:focus-visible{\r\n    width:100%;height:auto;\r\n    background-color:var(--tint) !important;\r\n    box-shadow:0 4px 14px rgba(19,43,77,.07);\r\n  }\r\n  .etk-node__num{\r\n    flex:none;width:52px;height:52px;\r\n    display:grid;place-items:center;\r\n    border:2px solid var(--accent);border-radius:50%;\r\n    background-color:#fff;font-size:19px;opacity:1;\r\n  }\r\n  .etk-node:hover .etk-node__num,\r\n  .etk-node:focus-visible .etk-node__num{font-size:19px;opacity:1;}\r\n  .etk-node__body{\r\n    flex:1;min-width:0;\r\n    width:auto;max-width:none;max-height:none;opacity:1;\r\n    align-items:flex-start;gap:7px;\r\n    padding-top:3px;\r\n  }\r\n  .etk-node:hover .etk-node__body{max-height:none;}\r\n  .etk-node__pill{align-self:flex-start;}\r\n}\r\n\r\n@media (max-width:520px){\r\n  .etk-proc{padding:58px 18px;}\r\n  .etk-proc__sub{font-size:14px;}\r\n  .etk-proc .etk-node{padding:18px;gap:14px;}\r\n  .etk-node__num{width:46px;height:46px;font-size:17px;}\r\n}\r\n\r\n@media (prefers-reduced-motion:reduce){\r\n  .etk-node,.etk-node__num,.etk-node__body{transition:none;}\r\n}\r\n<\/style>\r\n<!-- ===== \/Engineering Process ===== -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d079e52 e-con-full e-flex e-con e-parent\" data-id=\"d079e52\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a6f77e4 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"a6f77e4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ===== ExtreemTek \u2014 Connected Devices in Production \u2014 Elementor HTML widget ===== -->\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n\r\n<section class=\"etk-dev\">\r\n  <div class=\"etk-dev__wrap\">\r\n\r\n    <header class=\"etk-dev__head\">\r\n      <p class=\"etk-dev__badge\">Proven Engineering Track Record<\/p>\r\n      <h2 class=\"etk-dev__title\">Connected Devices in Production<\/h2>\r\n    <\/header>\r\n\r\n    <article class=\"etk-dev__card\">\r\n\r\n      <!-- LEFT \u2014 copy -->\r\n      <div class=\"etk-dev__copy\">\r\n        <p class=\"etk-dev__tag\">Flagship Connected Device<\/p>\r\n        <h3 class=\"etk-dev__name\">RyseUp Connected Wellness Ecosystem<\/h3>\r\n\r\n        <ul class=\"etk-dev__chips\">\r\n          <li class=\"etk-dev__chip etk-dev__chip--orange\">3 Hardware Tiers<\/li>\r\n          <li class=\"etk-dev__chip etk-dev__chip--blue\">Encrypted BLE<\/li>\r\n          <li class=\"etk-dev__chip etk-dev__chip--white\">High Tech Campus Eindhoven<\/li>\r\n        <\/ul>\r\n      <\/div>\r\n\r\n      <!-- RIGHT \u2014 product image -->\r\n      <div class=\"etk-dev__media\">\r\n        <div class=\"etk-dev__frame\">\r\n          <!-- \u25bc replace with your image URL -->\r\n          <img decoding=\"async\" class=\"etk-dev__img\"\r\n               src=\"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/09\/1d55f298b7af38671e88b07f70df50b4599d69d3.png\"\r\n               alt=\"RyseUp Home, RyseUp Pro and RyseUp Beyond devices with the RyseUp companion app\"\r\n               loading=\"lazy\">\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/article>\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<style>\r\n\/* ---- scoped to .etk-dev so the theme can't bleed in ---- *\/\r\n.etk-dev{\r\n  --bg:#0A1636;\r\n  --card:#101D40;\r\n  --frame:#01123F;\r\n  --orange:#F9A21B;\r\n  --blue:#8DB8FF;\r\n  --ink:#FFFFFF;\r\n  --chip:#17264D;\r\n\r\n  background:var(--bg);\r\n  padding:80px 24px;\r\n  font-family:\"Poppins\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;\r\n}\r\n.etk-dev *,.etk-dev *::before,.etk-dev *::after{box-sizing:border-box;}\r\n\r\n.etk-dev__wrap{max-width:1160px;margin:0 auto;}\r\n\r\n\/* header *\/\r\n.etk-dev__head{margin:0 0 38px;}\r\n.etk-dev__badge{\r\n  display:inline-block;\r\n  margin:0 0 14px;padding:6px 12px;\r\n  background:rgba(255,255,255,.06);\r\n  border:1px solid rgba(255,255,255,.06);\r\n  border-radius:999px;\r\n  color:var(--orange);font-size:10.5px;font-weight:700;line-height:1;\r\n  letter-spacing:.12em;text-transform:uppercase;\r\n}\r\n.etk-dev__title{\r\n  margin:0;color:var(--ink);\r\n  font-size:clamp(26px,3.2vw,38px);font-weight:700;\r\n  line-height:1.2;letter-spacing:-.015em;\r\n}\r\n\r\n\/* card *\/\r\n.etk-dev__card{\r\n  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);\r\n  gap:48px;align-items:center;\r\n  padding:40px 30px 40px 30px;\r\n  background:var(--card);\r\n  border:1px solid rgba(255,255,255,.04);\r\n  border-radius:20px;\r\n  box-shadow:0 20px 50px rgba(0,0,0,.25);\r\n}\r\n\r\n\/* left copy *\/\r\n.etk-dev__copy{padding-left:30px;}\r\n.etk-dev__tag{\r\n  display:inline-block;\r\n  margin:0 0 20px;padding:6px 10px;\r\n  background:rgba(249,162,27,.16);\r\n  border-radius:4px;\r\n  color:var(--orange);font-size:10.5px;font-weight:700;line-height:1;\r\n  letter-spacing:.1em;text-transform:uppercase;\r\n}\r\n.etk-dev__name{\r\n  margin:0 0 24px;color:var(--ink);\r\n  font-size:clamp(22px,2.4vw,30px);font-weight:700;\r\n  line-height:1.25;letter-spacing:-.01em;\r\n  max-width:380px;\r\n}\r\n\r\n.etk-dev__chips{\r\n  display:flex;flex-wrap:wrap;gap:10px;\r\n  margin:0;padding:0;list-style:none;\r\n  max-width:360px;\r\n}\r\n.etk-dev__chip{\r\n  margin:0;padding:8px 12px;\r\n  background:var(--chip);\r\n  border-radius:8px;\r\n  font-size:14px;font-weight:600;line-height:1.2;\r\n  white-space:nowrap;\r\n}\r\n.etk-dev__chip::before,.etk-dev__chip::marker{content:none;}\r\n.etk-dev__chip--orange{color:var(--orange);}\r\n.etk-dev__chip--blue{color:var(--blue);}\r\n.etk-dev__chip--white{color:var(--ink);}\r\n\r\n\/* right image *\/\r\n.etk-dev__media{display:flex;justify-content:flex-end;}\r\n.etk-dev__frame{\r\n  width:100%;max-width:560px;\r\n  padding:10px;\r\n  background:var(--frame);\r\n  border-radius:10px;\r\n}\r\n.etk-dev__img{\r\n  display:block;width:100%;height:auto;\r\n  aspect-ratio:3\/2;object-fit:cover;\r\n  border-radius:6px;\r\n  background:linear-gradient(135deg,#0D2F63 0%,#1B5C86 60%,#5FB8C2 100%); \/* shows until image loads *\/\r\n}\r\n\r\n\/* ---- tablet ---- *\/\r\n@media (max-width:960px){\r\n  .etk-dev__card{grid-template-columns:1fr;gap:32px;padding:32px 26px;}\r\n  .etk-dev__copy{padding-left:0;}\r\n  .etk-dev__media{justify-content:center;}\r\n  .etk-dev__frame{max-width:100%;}\r\n  .etk-dev__name,.etk-dev__chips{max-width:none;}\r\n}\r\n\r\n\/* ---- mobile ---- *\/\r\n@media (max-width:520px){\r\n  .etk-dev{padding:56px 18px;}\r\n  .etk-dev__head{margin-bottom:28px;}\r\n  .etk-dev__card{padding:24px 18px;border-radius:16px;}\r\n  .etk-dev__chip{font-size:13px;white-space:normal;}\r\n  .etk-dev__frame{padding:8px;}\r\n}\r\n<\/style>\r\n<!-- ===== \/Connected Devices in Production ===== -->\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5eba79e e-con-full e-flex e-con e-parent\" data-id=\"5eba79e\" data-element_type=\"container\" data-e-type=\"container\" id=\"faq\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6f9b500 elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"6f9b500\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n#xt-faq{--n:#0b1b3d;--b:#1a8cff;--a:#E8940C;--g:#4b5563;--l:#d8def0;background:#fff;padding:clamp(3.5rem,8vw,5.5rem) 1.25rem;font-family:\"Inter Tight\",system-ui,-apple-system,\"Segoe UI\",sans-serif;color:var(--n)}\n#xt-faq *{box-sizing:border-box}\n#xt-faq .xt-in{max-width:860px;margin:0 auto}\n#xt-faq .xt-eb{text-align:center;color:var(--a);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.85rem;margin:0 0 .6rem}\n#xt-faq h2{text-align:center;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.15;font-weight:800;margin:0 0 .8rem;color:var(--n)}\n#xt-faq h2 span{color:var(--b)}\n#xt-faq .xt-sub{text-align:center;color:var(--g);margin:0 auto 2.2rem;max-width:620px;font-size:1.05rem;line-height:1.6}\n#xt-faq details{border:1px solid var(--l);border-radius:14px;margin:0 0 .8rem;background:#f8faff;transition:box-shadow .2s}\n#xt-faq details[open]{background:#fff;box-shadow:0 8px 24px rgba(11,27,61,.08)}\n#xt-faq summary{list-style:none;cursor:pointer;padding:1.1rem 3rem 1.1rem 1.3rem;position:relative}\n#xt-faq summary::-webkit-details-marker{display:none}\n#xt-faq summary h3{margin:0;font-size:1.08rem;font-weight:700;color:var(--n);line-height:1.4}\n#xt-faq summary::after{content:\"+\";position:absolute;right:1.2rem;top:50%;transform:translateY(-50%);font-size:1.5rem;color:var(--b);font-weight:600}\n#xt-faq details[open] summary::after{content:\"\\2212\"}\n#xt-faq .xt-a{padding:0 1.3rem 1.2rem;color:var(--g);line-height:1.7;font-size:1rem}\n#xt-faq .xt-a p{margin:0}\n<\/style>\n<section id=\"xt-faq\" aria-labelledby=\"xt-faq-title\">\n<div class=\"xt-in\">\n<p class=\"xt-eb\">FAQ<\/p>\n<h2 id=\"xt-faq-title\">IoT and Connected Products <span>FAQ<\/span><\/h2>\n<p class=\"xt-sub\">Answers to common questions about ExtreemTek&#039;s IoT and connected product services.<\/p>\n<details open><summary><h3>What IoT services does ExtreemTek offer?<\/h3><\/summary><div class=\"xt-a\"><p>ExtreemTek develops IoT firmware and embedded software, smart devices and the secure ecosystem around them. We take connected products from sensors and hardware architecture to firmware, wireless connectivity, companion apps and the cloud platform.<\/p><\/div><\/details>\n<details><summary><h3>How does ExtreemTek take a connected device from idea to production?<\/h3><\/summary><div class=\"xt-a\"><p>We follow four stages. Discovery and hardware architecture produce the architecture and bill of materials (BOM). Firmware prototyping and EVT deliver a functional hardware MVP. Stress hardening and DVT cover EMC and battery testing. Mass production and PVT handle flashing and fleet deployment.<\/p><\/div><\/details>\n<details><summary><h3>What do EVT, DVT and PVT mean in hardware development?<\/h3><\/summary><div class=\"xt-a\"><p>EVT (Engineering Validation Test) checks that a working prototype meets its functional requirements. DVT (Design Validation Test) proves the final design is reliable and ready for certification. PVT (Production Validation Test) confirms that the factory process produces consistent units at scale.<\/p><\/div><\/details>\n<details><summary><h3>What connected products has ExtreemTek built?<\/h3><\/summary><div class=\"xt-a\"><p>Our flagship connected device project is the RyseUp connected wellness ecosystem for an EU client. It covers three hardware tiers with encrypted BLE connectivity, iOS and Android apps, desktop apps, cloud services and an online store.<\/p><\/div><\/details>\n<details><summary><h3>Where is ExtreemTek\u2019s IoT team based?<\/h3><\/summary><div class=\"xt-a\"><p>ExtreemTek is based on the High Tech Campus in Eindhoven, Netherlands, one of Europe\u2019s leading hubs for hardware and technology companies. We work with clients in the Netherlands and abroad.<\/p><\/div><\/details>\n<\/div>\n<\/section>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"@id\":\"https:\/\/extreemtek.com\/iot-and-connected-products\/#faq\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What IoT services does ExtreemTek offer?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"ExtreemTek develops IoT firmware and embedded software, smart devices and the secure ecosystem around them. We take connected products from sensors and hardware architecture to firmware, wireless connectivity, companion apps and the cloud platform.\"}},{\"@type\":\"Question\",\"name\":\"How does ExtreemTek take a connected device from idea to production?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"We follow four stages. Discovery and hardware architecture produce the architecture and bill of materials (BOM). Firmware prototyping and EVT deliver a functional hardware MVP. Stress hardening and DVT cover EMC and battery testing. Mass production and PVT handle flashing and fleet deployment.\"}},{\"@type\":\"Question\",\"name\":\"What do EVT, DVT and PVT mean in hardware development?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"EVT (Engineering Validation Test) checks that a working prototype meets its functional requirements. DVT (Design Validation Test) proves the final design is reliable and ready for certification. PVT (Production Validation Test) confirms that the factory process produces consistent units at scale.\"}},{\"@type\":\"Question\",\"name\":\"What connected products has ExtreemTek built?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Our flagship connected device project is the RyseUp connected wellness ecosystem for an EU client. It covers three hardware tiers with encrypted BLE connectivity, iOS and Android apps, desktop apps, cloud services and an online store.\"}},{\"@type\":\"Question\",\"name\":\"Where is ExtreemTek\u2019s IoT team based?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"ExtreemTek is based on the High Tech Campus in Eindhoven, Netherlands, one of Europe\u2019s leading hubs for hardware and technology companies. We work with clients in the Netherlands and abroad.\"}}]}<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3d395fc e-con-full e-flex e-con e-parent\" data-id=\"3d395fc\" data-element_type=\"container\" data-e-type=\"container\" id=\"faq\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2880fbe elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"2880fbe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>#xt-guides{background:#f6f8fc;padding:64px 20px;font-family:\"Inter Tight\",system-ui,-apple-system,\"Segoe UI\",sans-serif}#xt-guides .gw{max-width:1160px;margin:0 auto}#xt-guides .ge{color:#e8940c;font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px}#xt-guides h2{font-family:Poppins,system-ui,sans-serif;color:#0b1b3d;font-size:clamp(26px,3vw,36px);font-weight:700;line-height:1.2;margin:0 0 26px}#xt-guides .gg{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}#xt-guides a.gc{display:block;background:#fff;border:1px solid #e6e9f0;border-radius:14px;padding:24px;text-decoration:none;color:#3a4763;transition:box-shadow .2s,transform .2s}#xt-guides a.gc:hover{box-shadow:0 10px 26px rgba(11,27,61,.10);transform:translateY(-2px)}#xt-guides a.gc b{display:block;font-family:Poppins,system-ui,sans-serif;color:#0b1b3d;font-size:18px;line-height:1.3;margin-bottom:8px}#xt-guides a.gc span{display:block;font-size:15px;line-height:1.55}#xt-guides a.gc i{display:inline-block;margin-top:12px;font-style:normal;font-weight:600;color:#1a8cff;font-size:15px}<\/style><section id=\"xt-guides\"><div class=\"gw\"><p class=\"ge\">Practical guides<\/p><h2>Planning an IoT product: cost, partners and process<\/h2><div class=\"gg\"><a class=\"gc\" href=\"https:\/\/extreemtek.com\/iot-development-partner-checklist\/\"><b>How to choose an IoT development partner<\/b><span>A 12-point checklist, including RED and Cyber Resilience Act questions.<\/span><i>Read the guide \u2192<\/i><\/a><a class=\"gc\" href=\"https:\/\/extreemtek.com\/iot-product-development-cost\/\"><b>IoT product development cost: 9 cost drivers<\/b><span>What moves the budget of a connected product, phase by phase.<\/span><i>Read the guide \u2192<\/i><\/a><a class=\"gc\" href=\"https:\/\/extreemtek.com\/hardware-firmware-app-cloud-one-team\/\"><b>Hardware, firmware, app and cloud from one team<\/b><span>How end-to-end product engineering works, step by step.<\/span><i>Read the guide \u2192<\/i><\/a><\/div><\/div><\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-75e2524 e-con-full e-flex e-con e-parent\" data-id=\"75e2524\" data-element_type=\"container\" data-e-type=\"container\" id=\"iot-cta\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a87586d elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"a87586d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ============================================================\r\n     \"START A CONVERSATION\" SECTION + PROJECT DETAILS MODAL\r\n     Paste the whole thing into one Elementor HTML widget.\r\n     Form submissions are emailed to you via Web3Forms.\r\n     ============================================================ -->\r\n\r\n<style>\r\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter+Tight:wght@400;500;600;700;800&display=swap');\r\n\r\n#sk-talk,#sk-modal{\r\n  --sk-navy:#0b1b3d;\r\n  --sk-blue:#1a8cff;\r\n  --sk-amber-lite:#F5B01A;\r\n  --sk-amber-deep:#D86605;\r\n  --sk-grey:#6b7280;\r\n  --sk-line:#e6e9f0;\r\n\r\n  --sk-avatar:url(\"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/09\/ChatGPT-Image-Sep-9-2026-11_35_51-AM.png\");\r\n  --sk-modal-bg:url(\"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/09\/modal-bg.jpg\");\r\n}\r\n\r\n#sk-talk{\r\n  position:relative;\r\n  background:#fff;\r\n  padding:clamp(3.5rem,8vw,5.5rem) 1.25rem;\r\n  font-family:\"Inter Tight\",system-ui,-apple-system,\"Segoe UI\",sans-serif;\r\n  color:var(--sk-navy);\r\n  text-align:center;\r\n  -webkit-font-smoothing:antialiased;\r\n\r\n  \/* --- OPTIONAL full-bleed, uncomment if the theme still boxes it in ---\r\n  width:100vw;\r\n  margin-left:calc(50% - 50vw);\r\n  *\/\r\n}\r\n#sk-talk *,#sk-talk *::before,#sk-talk *::after{box-sizing:border-box}\r\n#sk-talk .sk-t-inner{max-width:1120px;margin:0 auto}\r\n\r\n\/* header *\/\r\n#sk-talk .sk-t-eyebrow{\r\n  display:inline-block;\r\n  margin:0;\r\n  padding:.36rem .85rem;\r\n  border-radius:6px;\r\n  background:#dceafd;\r\n  color:var(--sk-blue);\r\n  font-size:.72rem;\r\n  font-weight:700;\r\n  letter-spacing:.06em;\r\n  text-transform:uppercase;\r\n  line-height:1.25;\r\n}\r\n#sk-talk h2{\r\n  margin:1rem 0 0;\r\n  padding:0;\r\n  font-family:inherit;\r\n  font-size:clamp(1.7rem,4.2vw,2.65rem);\r\n  font-weight:800;\r\n  line-height:1.16;\r\n  letter-spacing:-.03em;\r\n  color:var(--sk-navy);\r\n}\r\n#sk-talk h2 .sk-t-accent{color:var(--sk-blue)}\r\n#sk-talk .sk-t-sub{\r\n  max-width:58ch;\r\n  margin:.9rem auto 0;\r\n  font-size:clamp(1.2rem,2vw,1.12rem);\r\n  font-weight: 500;\r\n  line-height:1.6;\r\n  color:var(--sk-grey);\r\n}\r\n\r\n\/* panel *\/\r\n#sk-talk .sk-t-panel{\r\n  display:grid;\r\n  grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);\r\n  align-items:center;\r\n  gap:clamp(1.5rem,4vw,3rem);\r\n  margin-top:clamp(2rem,4.5vw,3rem);\r\n  padding:clamp(1.6rem,4vw,2.6rem);\r\n  border:1px solid var(--sk-line);\r\n  border-radius:12px;\r\n  background:#f7f9fc;\r\n  text-align:left;\r\n}\r\n\r\n\/* founder *\/\r\n#sk-talk .sk-t-person{text-align:center}\r\n#sk-talk .sk-t-avatar{\r\n  width:min(200px,60%);\r\n  margin:0 auto;\r\n  aspect-ratio:1\/1;\r\n  border:2px solid var(--sk-blue);\r\n  border-radius:50%;\r\n  background:var(--sk-avatar,none) center\/cover no-repeat,#e6eef8;\r\n}\r\n#sk-talk .sk-t-person b{\r\n  display:block;\r\n  margin-top:1.1rem;\r\n  font-size:1.22rem;\r\n  font-weight:700;\r\n  letter-spacing:-.02em;\r\n  color:#111827;\r\n}\r\n#sk-talk .sk-t-role{\r\n  display:block;\r\n  margin-top:.25rem;\r\n  font-size:.95rem;\r\n  font-weight:700;\r\n  color:var(--sk-amber-lite);\r\n}\r\n#sk-talk .sk-t-place{\r\n  display:block;\r\n  margin-top:.2rem;\r\n  font-size:.92rem;\r\n  color:var(--sk-grey);\r\n}\r\n\r\n\/* quote + actions *\/\r\n#sk-talk blockquote{\r\n  margin:0;\r\n  padding:.1rem 0 .1rem 1.1rem;\r\n  border:0;\r\n  border-left:3px solid var(--sk-blue);\r\n  quotes:none;\r\n  font-size:clamp(.98rem,2vw,1.06rem);\r\n  line-height:1.62;\r\n  color:#1c2b45;\r\n}\r\n#sk-talk .sk-t-label{\r\n  margin:1.7rem 0 .8rem;\r\n  font-size:.82rem;\r\n  font-weight:700;\r\n  letter-spacing:.02em;\r\n  text-transform:uppercase;\r\n  color:#111827;\r\n}\r\n#sk-talk .sk-t-actions{display:flex;flex-wrap:wrap;gap:.85rem}\r\n#sk-talk .sk-t-btn{\r\n  display:inline-flex;\r\n  align-items:center;\r\n  gap:.55rem;\r\n  padding:.9rem 1.5rem;\r\n  border:0;\r\n  border-radius:8px;\r\n  font-family:inherit;\r\n  font-size:.98rem;\r\n  font-weight:700;\r\n  letter-spacing:-.01em;\r\n  text-decoration:none;\r\n  cursor:pointer;\r\n  transition:transform .18s ease,box-shadow .18s ease;\r\n}\r\n#sk-talk .sk-t-btn:hover{transform:translateY(-1px);text-decoration:none}\r\n#sk-talk .sk-t-btn svg{transition:transform .18s ease}\r\n#sk-talk .sk-t-btn:hover svg{transform:translateX(3px)}\r\n#sk-talk .sk-t-btn--amber,#sk-talk .sk-t-btn--amber:visited{\r\n  background:linear-gradient(90deg,var(--sk-amber-lite) 0%,var(--sk-amber-deep) 100%);\r\n  color:#fff;\r\n  box-shadow:0 8px 22px rgba(216,102,5,.32);\r\n}\r\n#sk-talk .sk-t-btn--amber:hover{color:#fff;box-shadow:0 13px 30px rgba(216,102,5,.42)}\r\n#sk-talk .sk-t-btn--blue{\r\n  background:linear-gradient(90deg,#2b8fff 0%,#0a63d8 100%);\r\n  color:#fff;\r\n  box-shadow:0 8px 22px rgba(10,99,216,.3);\r\n}\r\n#sk-talk .sk-t-btn--blue:hover{color:#fff;box-shadow:0 13px 30px rgba(10,99,216,.4)}\r\n#sk-talk .sk-t-btn:focus-visible{outline:3px solid var(--sk-blue);outline-offset:3px}\r\n\r\n@media (max-width:820px){\r\n  #sk-talk .sk-t-panel{grid-template-columns:1fr}\r\n  #sk-talk .sk-t-avatar{width:min(160px,50%)}\r\n}\r\n@media (max-width:520px){\r\n  #sk-talk .sk-t-btn{width:100%;justify-content:center}\r\n}\r\n\r\n\/* ============ MODAL ============ *\/\r\n#sk-modal{\r\n  position:fixed;\r\n  inset:0;\r\n  z-index:99999;\r\n  display:none;\r\n  align-items:center;\r\n  justify-content:center;\r\n  padding:1.25rem;\r\n  font-family:\"Inter Tight\",system-ui,-apple-system,\"Segoe UI\",sans-serif;\r\n  text-align:left;\r\n  -webkit-font-smoothing:antialiased;\r\n}\r\n#sk-modal.is-open{display:flex}\r\n#sk-modal *,#sk-modal *::before,#sk-modal *::after{box-sizing:border-box}\r\n#sk-modal .sk-m-veil{\r\n  position:absolute;\r\n  inset:0;\r\n  background:rgba(4,10,22,.72);\r\n  -webkit-backdrop-filter:blur(3px);\r\n  backdrop-filter:blur(3px);\r\n}\r\n#sk-modal .sk-m-box{\r\n  position:relative;\r\n  isolation:isolate;\r\n  overflow:hidden auto;\r\n  width:min(550px,100%);\r\n  max-height:min(92vh,780px);\r\n  padding:clamp(1.4rem,4vw,2rem);\r\n  border:1px solid #2a7fd4;\r\n  border-radius:12px;\r\n  background:#111b2c;\r\n  color:#fff;\r\n  box-shadow:0 30px 70px rgba(0,0,0,.55);\r\n\r\n  \/* hide the scrollbar chrome \u2014 it still scrolls if it truly must *\/\r\n  scrollbar-width:none;\r\n  -ms-overflow-style:none;\r\n}\r\n#sk-modal .sk-m-box::-webkit-scrollbar{width:0;height:0;display:none}\r\n#sk-modal .sk-m-box::before{\r\n  content:\"\";\r\n  position:absolute;\r\n  inset:0;\r\n  z-index:-1;\r\n  background:var(--sk-modal-bg,none) center\/cover no-repeat;\r\n  opacity:.22;\r\n}\r\n#sk-modal .sk-m-close{\r\n  position:absolute;\r\n  top:.7rem;\r\n  right:.7rem;\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n  width:32px;\r\n  height:32px;\r\n  min-width:0;\r\n  min-height:0;\r\n  padding:0 !important;\r\n  margin:0;\r\n  border:0;\r\n  border-radius:50%;\r\n  line-height:0;\r\n  font-size:0;\r\n  background:rgba(255,255,255,.12);\r\n  color:#fff;\r\n  cursor:pointer;\r\n  -webkit-appearance:none;\r\n  appearance:none;\r\n  transition:background .18s ease;\r\n}\r\n#sk-modal .sk-m-close:hover{background:rgba(255,255,255,.24)}\r\n#sk-modal .sk-m-close:focus-visible{outline:3px solid var(--sk-amber-lite);outline-offset:2px}\r\n#sk-modal .sk-m-close svg{display:block}\r\n\r\n#sk-modal .sk-m-icon{\r\n  display:grid;\r\n  place-items:center;\r\n  width:58px;\r\n  height:58px;\r\n  border-radius:10px;\r\n  background:#2b3648;\r\n  color:var(--sk-amber-lite);\r\n}\r\n#sk-modal h2{\r\n  margin:1.3rem 0 0;\r\n  padding:0;\r\n  font-family:inherit;\r\n  font-size:clamp(1.6rem,5vw,2.1rem);\r\n  font-weight:800;\r\n  line-height:1.14;\r\n  letter-spacing:-.03em;\r\n  color:#fff;\r\n}\r\n#sk-modal h2 .sk-m-accent{color:var(--sk-amber-lite)}\r\n#sk-modal .sk-m-sub{\r\n  margin:.7rem 0 0;\r\n  font-size:.98rem;\r\n  line-height:1.5;\r\n  color:#c4d2e4;\r\n}\r\n\r\n#sk-modal .sk-m-field{position:relative;margin-top:.85rem}\r\n#sk-modal .sk-m-field:first-of-type{margin-top:1.5rem}\r\n#sk-modal .sk-m-field svg{\r\n  position:absolute;\r\n  top:50%;\r\n  left:1rem;\r\n  transform:translateY(-50%);\r\n  color:#6b7a90;\r\n  pointer-events:none;\r\n}\r\n#sk-modal .sk-m-field .sk-m-chev{left:auto;right:1rem}\r\n\/* textarea icon pins to the first line, not the middle *\/\r\n#sk-modal .sk-m-field--area svg{top:1.15rem;transform:none}\r\n#sk-modal input,#sk-modal select,#sk-modal textarea{\r\n  width:100%;\r\n  height:56px;\r\n  margin:0;\r\n  padding:0 1rem 0 3rem;\r\n  border:1px solid #dbe2ec;\r\n  border-radius:9px;\r\n  background:#fff;\r\n  font-family:inherit;\r\n  font-size:1rem;\r\n  color:#111827;\r\n  appearance:none;\r\n  -webkit-appearance:none;\r\n}\r\n#sk-modal textarea{\r\n  height:auto;\r\n  min-height:108px;\r\n  padding:1rem 1rem 1rem 3rem;\r\n  line-height:1.5;\r\n  resize:vertical;\r\n}\r\n#sk-modal select{padding-right:2.8rem;color:#111827}\r\n#sk-modal select:invalid{color:#8a94a4}\r\n#sk-modal input::placeholder,#sk-modal textarea::placeholder{color:#8a94a4}\r\n#sk-modal input:focus,#sk-modal select:focus,#sk-modal textarea:focus{\r\n  outline:0;\r\n  border-color:var(--sk-blue);\r\n  box-shadow:0 0 0 3px rgba(26,140,255,.25);\r\n}\r\n#sk-modal .sk-m-hint{\r\n  display:block;\r\n  margin:.4rem 0 0 .15rem;\r\n  font-size:.8rem;\r\n  color:#9fb1c8;\r\n}\r\n\/* hidden spam trap \u2014 people never see it, bots fill it in *\/\r\n#sk-modal .sk-m-trap{\r\n  position:absolute !important;\r\n  left:-9999px !important;\r\n  width:1px;\r\n  height:1px;\r\n  overflow:hidden;\r\n}\r\n\r\n#sk-modal .sk-m-submit{\r\n  display:flex;\r\n  align-items:center;\r\n  justify-content:center;\r\n  gap:.7rem;\r\n  width:100%;\r\n  margin-top:1.5rem;\r\n  padding:1.05rem 1.5rem;\r\n  border:0;\r\n  border-radius:9px;\r\n  background:linear-gradient(90deg,var(--sk-amber-lite) 0%,var(--sk-amber-deep) 100%);\r\n  color:#fff;\r\n  font-family:inherit;\r\n  font-size:1.22rem;\r\n  font-weight:700;\r\n  letter-spacing:-.02em;\r\n  cursor:pointer;\r\n  box-shadow:0 10px 26px rgba(216,102,5,.35);\r\n  transition:transform .18s ease,box-shadow .18s ease;\r\n}\r\n#sk-modal .sk-m-submit:hover{transform:translateY(-1px);box-shadow:0 15px 34px rgba(216,102,5,.45)}\r\n#sk-modal .sk-m-submit:focus-visible{outline:3px solid #fff;outline-offset:3px}\r\n#sk-modal .sk-m-submit[disabled]{opacity:.65;cursor:default;transform:none}\r\n#sk-modal .sk-m-submit svg{transition:transform .18s ease}\r\n#sk-modal .sk-m-submit:hover svg{transform:translateX(3px)}\r\n\r\n#sk-modal .sk-m-note{\r\n  display:flex;\r\n  align-items:center;\r\n  gap:.55rem;\r\n  margin:1.1rem 0 0;\r\n  font-size:.9rem;\r\n  color:#c4d2e4;\r\n}\r\n#sk-modal .sk-m-note svg{flex:none;color:#c4d2e4}\r\n#sk-modal .sk-m-status{\r\n  margin:1.1rem 0 0;\r\n  font-size:.95rem;\r\n  line-height:1.5;\r\n  color:#8ee7a8;\r\n}\r\n#sk-modal .sk-m-status:empty{display:none}\r\n#sk-modal .sk-m-status[data-state=\"error\"]{color:#ffb4b4}\r\n\r\n\/* once a status message shows, the note has done its job \u2014\r\n   swapping one for the other keeps the panel height constant *\/\r\n#sk-modal .sk-m-form--sent .sk-m-note{display:none}\r\n\r\n@media (prefers-reduced-motion:reduce){\r\n  #sk-talk *,#sk-modal *{transition:none !important;animation:none !important}\r\n}\r\n<\/style>\r\n\r\n<section id=\"sk-talk\">\r\n  <div class=\"sk-t-inner\">\r\n\r\n    <p class=\"sk-t-eyebrow\">Start a conversation<\/p>\r\n\r\n    <h2><span class=\"sk-t-accent\">Let's Discuss<\/span> What You Are Building<\/h2>\r\n\r\n    <p class=\"sk-t-sub\">\r\n      Tell us where you are in your product journey and what is preventing you from\r\n      moving forward. We will help you identify a practical next step.\r\n    <\/p>\r\n\r\n    <div class=\"sk-t-panel\">\r\n\r\n      <div class=\"sk-t-person\">\r\n        <div class=\"sk-t-avatar\" role=\"img\" aria-label=\"Aqeel Wahlah\"><\/div>\r\n        <b>Aqeel Wahlah<\/b>\r\n        <span class=\"sk-t-role\">Founder and CEO<\/span>\r\n        <span class=\"sk-t-place\">ExtreemTek, Eindhoven, Netherlands<\/span>\r\n      <\/div>\r\n\r\n      <div>\r\n        <blockquote>\r\n          I personally join the initial conversation to understand your product goals\r\n          and ensure we bring the right technical expertise to the discussion.\r\n        <\/blockquote>\r\n\r\n        <p class=\"sk-t-label\">Select how you want to reach out:<\/p>\r\n\r\n        <div class=\"sk-t-actions\">\r\n          <a class=\"sk-t-btn sk-t-btn--amber\" href=\"https:\/\/calendly.com\/aqeel-extreemtek\/30min\">\r\n            Schedule a Discovery Call\r\n            <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\r\n          <\/a>\r\n          <button class=\"sk-t-btn sk-t-btn--blue\" type=\"button\" data-sk-open-modal>\r\n            Send Project Details\r\n            <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\r\n          <\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n<\/section>\r\n\r\n<!-- ===== modal ===== -->\r\n<div id=\"sk-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"sk-m-title\" hidden>\r\n  <div class=\"sk-m-veil\" data-sk-close><\/div>\r\n\r\n  <div class=\"sk-m-box\">\r\n    <button class=\"sk-m-close\" type=\"button\" data-sk-close aria-label=\"Close\">\r\n      <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" aria-hidden=\"true\"><path d=\"M6 6l12 12M18 6L6 18\"\/><\/svg>\r\n    <\/button>\r\n\r\n    <div class=\"sk-m-icon\" aria-hidden=\"true\">\r\n      <svg width=\"30\" height=\"30\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M21.5 2.5 2.5 9.8l7.2 2.9 2.6 8 9.2-18.2Z\"\/><path d=\"M9.7 12.7 21.5 2.5\"\/><\/svg>\r\n    <\/div>\r\n\r\n    <h2 id=\"sk-m-title\">Let's Explore <span class=\"sk-m-accent\">Your Product Idea!<\/span><\/h2>\r\n\r\n    <p class=\"sk-m-sub\">Tell us what you're building. Our engineering team will help you define the next step.<\/p>\r\n\r\n    <form id=\"sk-m-form\" novalidate>\r\n      <div class=\"sk-m-field\">\r\n        <svg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"12\" cy=\"8\" r=\"3.5\"\/><path d=\"M4.5 20a7.5 7.5 0 0 1 15 0\"\/><\/svg>\r\n        <input id=\"sk-name\" name=\"name\" type=\"text\" placeholder=\"Your Name*\" aria-label=\"Your name\" required autocomplete=\"name\">\r\n      <\/div>\r\n\r\n      <div class=\"sk-m-field\">\r\n        <svg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"2.5\" y=\"5\" width=\"19\" height=\"14\" rx=\"2.5\"\/><path d=\"M3 7l9 6 9-6\"\/><\/svg>\r\n        <input id=\"sk-email\" name=\"email\" type=\"email\" placeholder=\"Work Email*\" aria-label=\"Work email\" required autocomplete=\"email\">\r\n      <\/div>\r\n\r\n      <!-- phone: digits and phone punctuation only -->\r\n      <div class=\"sk-m-field\">\r\n        <svg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M6.3 3.5h3.1l1.6 4-2 1.2a10.5 10.5 0 0 0 4.8 4.8l1.2-2 4 1.6v3.1a1.8 1.8 0 0 1-2 1.8A15.6 15.6 0 0 1 4.5 5.5a1.8 1.8 0 0 1 1.8-2Z\"\/><\/svg>\r\n        <input id=\"sk-phone\" name=\"phone\" type=\"tel\"\r\n               placeholder=\"Phone Number*\"\r\n               aria-label=\"Phone number\"\r\n               required\r\n               inputmode=\"tel\"\r\n               autocomplete=\"tel\"\r\n               maxlength=\"20\"\r\n               pattern=\"[0-9+()\\-\\s]{7,20}\"\r\n               title=\"Digits only \u2014 you may also use + ( ) - and spaces\">\r\n        <small class=\"sk-m-hint\">Digits only. You may use +, (), - and spaces.<\/small>\r\n      <\/div>\r\n\r\n      <div class=\"sk-m-field\">\r\n        <svg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m12 2.8 8 4.3v9.8l-8 4.3-8-4.3V7.1Z\"\/><path d=\"m4 7.1 8 4.3 8-4.3M12 11.4V21\"\/><\/svg>\r\n        <svg class=\"sk-m-chev\" width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"m6 9 6 6 6-6\"\/><\/svg>\r\n        <select id=\"sk-type\" name=\"project_type\" aria-label=\"What do you want to build?\" required>\r\n          <option value=\"\" selected disabled>What do you want to build?*<\/option>\r\n          <option>Mobile app (iOS \/ Android)<\/option>\r\n          <option>Web platform or SaaS<\/option>\r\n          <option>IoT or connected device<\/option>\r\n          <option>AI-powered feature<\/option>\r\n          <option>Back end, cloud or integrations<\/option>\r\n          <option>Not sure yet<\/option>\r\n        <\/select>\r\n      <\/div>\r\n\r\n      <!-- optional short summary -->\r\n      <div class=\"sk-m-field sk-m-field--area\">\r\n        <svg width=\"19\" height=\"19\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M4.5 5.5h15M4.5 10h15M4.5 14.5h10\"\/><\/svg>\r\n        <textarea id=\"sk-brief\" name=\"project_brief\"\r\n                  placeholder=\"Briefly, what are you building? (optional)\"\r\n                  aria-label=\"Short summary of your project or idea\"\r\n                  maxlength=\"600\" rows=\"3\"><\/textarea>\r\n        <small class=\"sk-m-hint\">A sentence or two is plenty \u2014 we'll ask the rest on the call.<\/small>\r\n      <\/div>\r\n\r\n      <!-- spam trap: leave empty -->\r\n      <div class=\"sk-m-trap\" aria-hidden=\"true\">\r\n        <input type=\"checkbox\" name=\"botcheck\" tabindex=\"-1\" autocomplete=\"off\">\r\n      <\/div>\r\n\r\n      <button class=\"sk-m-submit\" type=\"submit\">\r\n        Let's Discuss Your Idea\r\n        <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><path d=\"M5 12h14M13 6l6 6-6 6\"\/><\/svg>\r\n      <\/button>\r\n\r\n      <p class=\"sk-m-note\">\r\n        <svg width=\"15\" height=\"15\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.9\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"4.5\" y=\"10.5\" width=\"15\" height=\"10\" rx=\"2\"\/><path d=\"M8 10.5V7.8a4 4 0 0 1 8 0v2.7\"\/><\/svg>\r\n        No obligation. We'll get back to you within 1-2 business days.\r\n      <\/p>\r\n\r\n      <p class=\"sk-m-status\" role=\"status\" aria-live=\"polite\"><\/p>\r\n    <\/form>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\n\/* Popup form \u2014 sends submissions to your email via Web3Forms *\/\r\n(function(){\r\n  var FORM_ENDPOINT = \"https:\/\/api.web3forms.com\/submit\";\r\n  var ACCESS_KEY    = \"d16be941-4049-42a1-aac1-c0025927fe85\";\r\n\r\n  var modal  = document.getElementById('sk-modal');\r\n  var form   = document.getElementById('sk-m-form');\r\n  if(!modal || !form) return;\r\n\r\n  \/* move the popup to <body> so no Elementor wrapper can clip or offset it *\/\r\n  document.body.appendChild(modal);\r\n\r\n  var status = modal.querySelector('.sk-m-status');\r\n  var phone  = document.getElementById('sk-phone');\r\n  var opener = null;\r\n\r\n  \/* ---- phone field: allow only digits and phone punctuation ---- *\/\r\n  if(phone){\r\n    var ALLOWED = \/[^0-9+()\\-\\s]\/g;\r\n\r\n    \/* block disallowed characters as they are typed *\/\r\n    phone.addEventListener('keypress', function(e){\r\n      if(e.ctrlKey || e.metaKey || e.altKey) return;\r\n      if(e.key && e.key.length === 1 && ALLOWED.test(e.key)){\r\n        e.preventDefault();\r\n      }\r\n    });\r\n\r\n    \/* strip anything that slips through (paste, autofill, mobile keyboards) *\/\r\n    function clean(){\r\n      var start = phone.selectionStart;\r\n      var before = phone.value;\r\n      var after = before.replace(ALLOWED, '');\r\n      if(after !== before){\r\n        phone.value = after;\r\n        var drop = before.length - after.length;\r\n        try{ phone.setSelectionRange(Math.max(0, start - drop), Math.max(0, start - drop)); }catch(err){}\r\n      }\r\n    }\r\n    phone.addEventListener('input', clean);\r\n    phone.addEventListener('paste', function(){ setTimeout(clean, 0); });\r\n  }\r\n\r\n  function open(trigger){\r\n    opener = trigger || null;\r\n    modal.hidden = false;\r\n    modal.classList.add('is-open');\r\n    document.body.style.overflow = 'hidden';\r\n    var first = modal.querySelector('input:not([name=\"botcheck\"]),select,textarea');\r\n    if(first) first.focus();\r\n  }\r\n\r\n  function close(){\r\n    modal.classList.remove('is-open');\r\n    modal.hidden = true;\r\n    document.body.style.overflow = '';\r\n\r\n    \/* clear every field so reopening starts fresh *\/\r\n    form.reset();\r\n    if(phone) phone.setCustomValidity('');\r\n\r\n    say('', 'ok');\r\n    if(opener) opener.focus();\r\n  }\r\n\r\n  document.addEventListener('click', function(e){\r\n    var btn = e.target.closest('[data-sk-open-modal]');\r\n    if(btn){ e.preventDefault(); open(btn); }\r\n  });\r\n\r\n  modal.querySelectorAll('[data-sk-close]').forEach(function(el){\r\n    el.addEventListener('click', close);\r\n  });\r\n\r\n  document.addEventListener('keydown', function(e){\r\n    if(e.key === 'Escape' && modal.classList.contains('is-open')) close();\r\n  });\r\n\r\n  \/* keep tab focus inside the popup while it is open *\/\r\n  modal.addEventListener('keydown', function(e){\r\n    if(e.key !== 'Tab') return;\r\n    var f = modal.querySelectorAll('button,input:not([name=\"botcheck\"]),select,textarea,a[href]');\r\n    if(!f.length) return;\r\n    var first = f[0], last = f[f.length - 1];\r\n    if(e.shiftKey && document.activeElement === first){ e.preventDefault(); last.focus(); }\r\n    else if(!e.shiftKey && document.activeElement === last){ e.preventDefault(); first.focus(); }\r\n  });\r\n\r\n  function say(msg, state){\r\n    status.textContent = msg;\r\n    status.setAttribute('data-state', state || 'ok');\r\n    form.classList.toggle('sk-m-form--sent', !!msg);\r\n  }\r\n\r\n  form.addEventListener('submit', function(e){\r\n    e.preventDefault();\r\n    say('', 'ok');\r\n\r\n    \/* phone must hold at least 7 digits once punctuation is ignored *\/\r\n    if(phone){\r\n      var digits = phone.value.replace(\/\\D\/g, '');\r\n      if(digits.length < 7){\r\n        phone.setCustomValidity('Please enter a valid phone number (at least 7 digits).');\r\n      } else {\r\n        phone.setCustomValidity('');\r\n      }\r\n    }\r\n\r\n    if(!form.checkValidity()){\r\n      form.reportValidity();\r\n      return;\r\n    }\r\n\r\n    var btn = form.querySelector('.sk-m-submit');\r\n    var payload = new FormData(form);\r\n    payload.append('access_key', ACCESS_KEY);\r\n    payload.append('subject', 'New project inquiry from extreemtek.com (contact section)');\r\n    payload.append('from_name', 'ExtreemTek Website');\r\n\r\n    btn.disabled = true;\r\n    say('Sending\u2026', 'ok');\r\n\r\n    fetch(FORM_ENDPOINT, {\r\n      method:'POST',\r\n      headers:{ 'Accept':'application\/json' },\r\n      body:payload\r\n    })\r\n      .then(function(r){ return r.json(); })\r\n      .then(function(res){\r\n        if(!res.success) throw new Error(res.message || 'failed');\r\n        form.reset();\r\n        say('Thanks. We will get back to you within 1-2 business days.', 'ok');\r\n      })\r\n      .catch(function(){\r\n        say('Something went wrong. Please try again or email us directly.', 'error');\r\n      })\r\n      .finally(function(){ btn.disabled = false; });\r\n  });\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4075677 e-con-full e-flex e-con e-parent\" data-id=\"4075677\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a71d4b elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"3a71d4b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Inter+Tight:wght@400;500;600;700;800&display=swap');\n\nhtml{scroll-behavior:smooth}\n\n#sk-foot{\n  --sk-amber:#F5B01A;\n  --sk-ink:#101c30;\n\n  position:relative;\n  font-family:\"Inter Tight\",system-ui,-apple-system,\"Segoe UI\",sans-serif;\n  -webkit-font-smoothing:antialiased;\n}\n#sk-foot *,#sk-foot *::before,#sk-foot *::after{box-sizing:border-box}\n#sk-foot .sk-f-inner{max-width:1120px;margin:0 auto;padding:0 1.5rem}\n\n\/* ---------- orange band ---------- *\/\n#sk-foot .sk-f-top{\n  position:relative;\n  padding:clamp(4.5rem,11vw,8rem) 0 clamp(2rem,5vw,3rem);\n  background:url(\"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/09\/waves-transparent-1920x464-1.png\") center top\/cover no-repeat;\n  color:#fff;\n}\n#sk-foot .sk-f-grid{\n  display:grid;\n  grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);\n  gap:clamp(1.6rem,4vw,3rem);\n  padding-top:clamp(1rem,2vw,1.5rem);\n}\n#sk-foot .sk-f-logo{\n  display:block;\n  width:auto;\n  max-width:230px;\n  height:auto;\n}\n#sk-foot .sk-f-blurb{\n  margin:1.4rem 0 0;\n  max-width:42ch;\n  font-size:.95rem;\n  font-weight:500;\n  line-height:1.55;\n  color:#fff;\n}\n#sk-foot .sk-f-addr{\n  margin:1.2rem 0 0;\n  max-width:44ch;\n  font-size:.88rem;\n  font-style:normal;\n  line-height:1.5;\n  color:rgba(255,255,255,.92);\n}\n#sk-foot .sk-f-contact{\n  margin:0;\n  padding:0;\n  list-style:none;\n  align-self:center;\n}\n#sk-foot .sk-f-contact li{\n  display:flex;\n  align-items:center;\n  gap:.7rem;\n  margin:0 0 .95rem;\n  padding:0;\n  list-style:none;\n  font-size:.95rem;\n}\n#sk-foot .sk-f-contact li:last-child{margin-bottom:0}\n#sk-foot .sk-f-contact li::marker{content:none}\n#sk-foot .sk-f-contact svg{flex:none;color:rgba(255,255,255,.9)}\n#sk-foot .sk-f-contact a{\n  color:#fff;\n  text-decoration:none;\n  border-bottom:1px solid transparent;\n  transition:border-color .18s ease;\n}\n#sk-foot .sk-f-contact a:hover{color:#fff;border-bottom-color:rgba(255,255,255,.7)}\n#sk-foot .sk-f-contact a:focus-visible{outline:3px solid #fff;outline-offset:3px}\n\n\/* ---------- dark band ---------- *\/\n#sk-foot .sk-f-bottom{\n  background:var(--sk-ink);\n  color:#dbe3ee;\n  padding:clamp(2.4rem,5vw,3.4rem) 0 0;\n}\n#sk-foot .sk-f-nav{\n  display:grid;\n  grid-template-columns:repeat(3,minmax(0,1fr));\n  gap:1.5rem;\n  max-width:820px;\n  margin:0 auto;\n}\n#sk-foot .sk-f-nav h3{\n  margin:0 0 1.3rem;\n  padding:0;\n  font-family:inherit;\n  font-size:.82rem;\n  font-weight:700;\n  letter-spacing:.05em;\n  text-transform:uppercase;\n  color:var(--sk-amber);\n}\n#sk-foot .sk-f-nav ul{margin:0;padding:0;list-style:none}\n#sk-foot .sk-f-nav li{margin:0 0 .9rem;padding:0;list-style:none}\n#sk-foot .sk-f-nav li::marker{content:none}\n#sk-foot .sk-f-nav a{\n  color:#dbe3ee;\n  font-size:.95rem;\n  line-height:1.45;\n  text-decoration:none;\n  transition:color .18s ease;\n}\n#sk-foot .sk-f-nav a:hover{color:var(--sk-amber);text-decoration:none}\n#sk-foot .sk-f-nav a:focus-visible{outline:3px solid var(--sk-amber);outline-offset:3px;border-radius:3px}\n\n#sk-foot .sk-f-legal{\n  display:flex;\n  flex-wrap:wrap;\n  align-items:center;\n  justify-content:space-between;\n  gap:1rem;\n  margin-top:clamp(2rem,4vw,3rem);\n  padding:1.3rem 0;\n  border-top:1px solid rgba(255,255,255,.08);\n  font-size:.88rem;\n  color:#9aa8bd;\n}\n#sk-foot .sk-f-legal b{font-weight:600;color:var(--sk-amber)}\n#sk-foot .sk-f-legal ul{display:flex;gap:1.6rem;margin:0;padding:0;list-style:none}\n#sk-foot .sk-f-legal li{margin:0;padding:0;list-style:none}\n#sk-foot .sk-f-legal li::marker{content:none}\n#sk-foot .sk-f-legal a{color:#9aa8bd;text-decoration:none;transition:color .18s ease}\n#sk-foot .sk-f-legal a:hover{color:#fff;text-decoration:none}\n#sk-foot .sk-f-legal a:focus-visible{outline:3px solid var(--sk-amber);outline-offset:3px;border-radius:3px}\n\n\/* ---------- back to top ---------- *\/\n#sk-top-btn{\n  position:fixed;\n  right:24px;bottom:24px;\n  z-index:9999;\n\n  width:48px;height:48px;\n  display:flex;align-items:center;justify-content:center;\n  border:0;border-radius:12px;\n  background:#F5B01A;\n  color:#101c30;\n  cursor:pointer;\n\n  opacity:0;\n  visibility:hidden;\n  transform:translateY(12px);\n  transition:opacity .25s ease, transform .25s ease, visibility .25s, background-color .2s ease, color .2s ease;\n}\n#sk-top-btn.is-visible{\n  opacity:1;\n  visibility:visible;\n  transform:translateY(0);\n}\n#sk-top-btn svg{\n  width:20px;height:20px;\n  fill:none;stroke:currentColor;stroke-width:2.4;\n  stroke-linecap:round;stroke-linejoin:round;\n}\n@media (hover:hover){\n  #sk-top-btn:hover,\n  #sk-top-btn:focus,\n  #sk-top-btn:active{\n    background:#007CF9 !important;\n    color:#fff !important;\n  }\n}\n#sk-top-btn:focus-visible{outline:3px solid #007CF9;outline-offset:3px}\n\n@media (max-width:760px){\n  #sk-foot .sk-f-grid{grid-template-columns:1fr;gap:1.8rem}\n  #sk-foot .sk-f-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8rem}\n  #sk-foot .sk-f-legal{justify-content:flex-start}\n}\n@media (max-width:600px){\n  #sk-top-btn{right:16px;bottom:16px;width:44px;height:44px;border-radius:11px}\n  #sk-top-btn svg{width:18px;height:18px}\n}\n@media (max-width:460px){\n  #sk-foot .sk-f-nav{grid-template-columns:1fr}\n}\n@media (prefers-reduced-motion:reduce){\n  html{scroll-behavior:auto}\n  #sk-foot *{transition:none !important;animation:none !important}\n  #sk-top-btn{transition:opacity .01s}\n}\n<\/style>\n\n<footer id=\"sk-foot\">\n\n  <div class=\"sk-f-top\">\n    <div class=\"sk-f-inner\">\n      <div class=\"sk-f-grid\">\n\n        <div>\n          <img class=\"sk-f-logo\" src=\"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/09\/Group-2.png\" alt=\"ExtreemTek \u2014 Engineering Ideas into Intelligent Reality\" loading=\"lazy\" decoding=\"async\">\n\n          <p class=\"sk-f-blurb\">\n            High-quality product engineering bringing AI, IoT, web,\n            mobile and cloud together for scalability.\n          <\/p>\n\n          <address class=\"sk-f-addr\">\n            AI Innovation Center,  High Tech Campus, 5656 AE,<br>\n            Eindhoven, the Netherlands.\n          <\/address>\n        <\/div>\n\n        <ul class=\"sk-f-contact\">\n          <li>\n            <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M4.98 3.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5ZM3 9.75h4v10.75H3ZM9.5 9.75h3.83v1.47h.05a4.2 4.2 0 0 1 3.78-2.08c4.04 0 4.79 2.66 4.79 6.12v4.24h-4v-3.76c0-.9-.02-2.05-1.25-2.05-1.25 0-1.44.98-1.44 1.99v3.82h-4Z\"><\/path><\/svg>\n            <a href=\"https:\/\/www.linkedin.com\/company\/extreemtek\" target=\"_blank\" rel=\"noopener\">@extreemtek<\/a>\n          <\/li>\n          <li>\n            <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"7\" y=\"2.5\" width=\"10\" height=\"19\" rx=\"2.5\"><\/rect><path d=\"M11 18.5h2\"><\/path><\/svg>\n            <a href=\"tel:+31641166735\">+31641166735<\/a>\n          <\/li>\n          <li>\n            <svg width=\"17\" height=\"17\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><rect x=\"2.5\" y=\"5\" width=\"19\" height=\"14\" rx=\"2.5\"><\/rect><path d=\"M3 7l9 6 9-6\"><\/path><\/svg>\n            <a href=\"mailto:hello@extreemtek.nl\">hello@extreemtek.nl<\/a>\n          <\/li>\n        <\/ul>\n\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <div class=\"sk-f-bottom\">\n    <div class=\"sk-f-inner\">\n\n      <nav class=\"sk-f-nav\" aria-label=\"Footer\">\n        <div>\n          <h3>Case Studies<\/h3>\n          <ul>\n            <li><a href=\"https:\/\/extreemtek.com\/case-studies\/#clawleaf\">Clawleaf<\/a><\/li>\n            <li><a href=\"https:\/\/extreemtek.com\/fileshift_fast_file_transfer\/\">Fileshift<\/a><\/li>\n          <li><a href=\"https:\/\/extreemtek.com\/plantcare\/\">Plantcare<\/a><\/li>\n            <!--<li><a href=\"#path-modernize\">Deepfake<\/a><\/li> -->\n          <\/ul>\n        <\/div>\n\n        <div>\n          <h3 href=\"#services\">Services<\/h3>\n          <ul>\n            <li><a href=\"https:\/\/extreemtek.com\/ai-solution\/\">AI Solutions<\/a><\/li>\n            <li><a href=\"https:\/\/extreemtek.com\/iot-and-connected-products\/\">IoT Firmware<\/a><\/li>\n            <li><a href=\"https:\/\/extreemtek.com\/website-and-mobile-app-development\/\">Web &amp; App Development<\/a><\/li>\n            <li><a href=\"https:\/\/extreemtek.com\/cloud-operations\/\">Cloud Operations<\/a><\/li><li><a href=\"https:\/\/extreemtek.com\/ble-connected-device-app-development\/\">BLE &amp; Device Apps<\/a><\/li><li><a href=\"https:\/\/extreemtek.com\/mvp-development\/\">MVP Development<\/a><\/li>\n          <\/ul>\n        <\/div>\n\n        <div>\n          <h3>Company<\/h3>\n          <ul>\n            <li><a href=\"https:\/\/extreemtek.com\/\">Home<\/a><\/li><li><a href=\"https:\/\/extreemtek.com\/#case-studies\">Case Studies<\/a><\/li>\n            <li><a href=\"https:\/\/extreemtek.com\/#how-we-work\">How We Work<\/a><\/li>\n            <li><a href=\"https:\/\/extreemtek.com\/contact-us\/\">Contact Us<\/a><\/li>\n          <\/ul>\n        <\/div>\n      <\/nav>\n\n      <div class=\"sk-f-legal\">\n        <p style=\"margin:0\">\u00a9 2026 <b>ExtreemTek<\/b>. All rights reserved. Registered in Eindhoven, the Netherlands.<\/p>\n        <ul>\n          <li><a href=\"https:\/\/extreemtek.com\/privacy-policy\/\">Privacy Policy<\/a><\/li>\n          \n        <\/ul>\n      <\/div>\n\n    <\/div>\n  <\/div>\n\n<\/footer>\n\n<button id=\"sk-top-btn\" type=\"button\" aria-label=\"Back to top\">\n  <svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"M6 15l6-6 6 6\"><\/path><\/svg>\n<\/button>\n\n<script>\n(function () {\n  function init() {\n    var btn = document.getElementById('sk-top-btn');\n    if (!btn) return;\n\n    var SHOW_AFTER = 400;\n\n    function scrolled() {\n      return window.pageYOffset\n          || document.documentElement.scrollTop\n          || document.body.scrollTop\n          || 0;\n    }\n\n    function check() {\n      btn.classList.toggle('is-visible', scrolled() > SHOW_AFTER);\n    }\n\n    \/\/ scroll, resize, and the tail of any smooth-scroll from an anchor click\n    window.addEventListener('scroll', check, { passive: true });\n    window.addEventListener('resize', check, { passive: true });\n    window.addEventListener('hashchange', function () {\n      setTimeout(check, 100);\n      setTimeout(check, 700);\n    });\n    document.addEventListener('click', function (e) {\n      var a = e.target.closest && e.target.closest('a[href*=\"#\"]');\n      if (!a) return;\n      setTimeout(check, 100);\n      setTimeout(check, 700);\n    }, true);\n\n    \/\/ safety net for page builders that animate scroll without firing events\n    setInterval(check, 800);\n\n    check();\n\n    btn.addEventListener('click', function () {\n      var reduce = window.matchMedia('(prefers-reduced-motion:reduce)').matches;\n      if (window.scrollTo && !reduce) {\n        window.scrollTo({ top: 0, behavior: 'smooth' });\n      } else {\n        window.scrollTo(0, 0);\n      }\n    });\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Home What We Do Case Studies How We Work About Contact Us Discuss Your Product Services &bull; IoT Firmware &amp; Smart Devices From Sensors to Products Built to Scale Schedule a Discovery Call Send Project Details IOT &amp; Firmware Smart Devices Secure Ecosystem Let&#8217;s Explore Your Product Idea! Tell us what you&#8217;re building. Our engineering [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_canvas","meta":{"_yoast_wpseo_focuskw":"iot development company","_yoast_wpseo_title":"IoT Development Company Netherlands | ExtreemTek Eindhoven","_yoast_wpseo_metadesc":"End-to-end IoT development from one Eindhoven team: hardware, firmware, apps and cloud. Custom IoT solutions from prototype to production.","footnotes":""},"class_list":["post-7053","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>IoT Development Company Netherlands | ExtreemTek Eindhoven<\/title>\n<meta name=\"description\" content=\"End-to-end IoT development from one Eindhoven team: hardware, firmware, apps and cloud. Custom IoT solutions from prototype to production.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/extreemtek.com\/nl\/iot-and-connected-products\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IoT Development Company Netherlands | ExtreemTek Eindhoven\" \/>\n<meta property=\"og:description\" content=\"End-to-end IoT development from one Eindhoven team: hardware, firmware, apps and cloud. Custom IoT solutions from prototype to production.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/extreemtek.com\/nl\/iot-and-connected-products\/\" \/>\n<meta property=\"og:site_name\" content=\"ExtreemTek\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/extreemtek\/\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-23T05:51:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/10\/extreemtek-og-image.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/10\/extreemtek-og-image.jpg\" \/>\n<meta name=\"twitter:label1\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/extreemtek.com\\\/iot-and-connected-products\\\/\",\"url\":\"https:\\\/\\\/extreemtek.com\\\/iot-and-connected-products\\\/\",\"name\":\"IoT Development Company Netherlands | ExtreemTek Eindhoven\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/extreemtek.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/extreemtek.com\\\/iot-and-connected-products\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/extreemtek.com\\\/iot-and-connected-products\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/extreemtek.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/Frame.png\",\"datePublished\":\"2026-09-24T13:17:01+00:00\",\"dateModified\":\"2026-10-23T05:51:27+00:00\",\"description\":\"End-to-end IoT development from one Eindhoven team: hardware, firmware, apps and cloud. Custom IoT solutions from prototype to production.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/extreemtek.com\\\/iot-and-connected-products\\\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/extreemtek.com\\\/iot-and-connected-products\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/extreemtek.com\\\/iot-and-connected-products\\\/#primaryimage\",\"url\":\"https:\\\/\\\/extreemtek.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/Frame.png\",\"contentUrl\":\"https:\\\/\\\/extreemtek.com\\\/wp-content\\\/uploads\\\/2026\\\/09\\\/Frame.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/extreemtek.com\\\/iot-and-connected-products\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/extreemtek.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IoT and Connected Products\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/extreemtek.com\\\/#website\",\"url\":\"https:\\\/\\\/extreemtek.com\\\/\",\"name\":\"ExtreemTek\",\"description\":\"Engineering Ideas into Intelligent Reality\",\"publisher\":{\"@id\":\"https:\\\/\\\/extreemtek.com\\\/#organization\"},\"alternateName\":\"Extreemtek\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/extreemtek.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/extreemtek.com\\\/#organization\",\"name\":\"ExtreemTek\",\"alternateName\":\"Extreemtek\",\"url\":\"https:\\\/\\\/extreemtek.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\\\/\\\/extreemtek.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/extreemtek.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/extreemtek-new-logol-horizontal-white.svg\",\"contentUrl\":\"https:\\\/\\\/extreemtek.com\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/extreemtek-new-logol-horizontal-white.svg\",\"width\":634,\"height\":106,\"caption\":\"ExtreemTek\"},\"image\":{\"@id\":\"https:\\\/\\\/extreemtek.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/extreemtek\\\/\",\"https:\\\/\\\/www.instagram.com\\\/extreemtek\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/extreemtek\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"IoT Development Company Netherlands | ExtreemTek Eindhoven","description":"End-to-end IoT development from one Eindhoven team: hardware, firmware, apps and cloud. Custom IoT solutions from prototype to production.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/extreemtek.com\/nl\/iot-and-connected-products\/","og_locale":"nl_NL","og_type":"article","og_title":"IoT Development Company Netherlands | ExtreemTek Eindhoven","og_description":"End-to-end IoT development from one Eindhoven team: hardware, firmware, apps and cloud. Custom IoT solutions from prototype to production.","og_url":"https:\/\/extreemtek.com\/nl\/iot-and-connected-products\/","og_site_name":"ExtreemTek","article_publisher":"https:\/\/www.facebook.com\/extreemtek\/","article_modified_time":"2026-10-23T05:51:27+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/10\/extreemtek-og-image.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_image":"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/10\/extreemtek-og-image.jpg","twitter_misc":{"Geschatte leestijd":"4 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/extreemtek.com\/iot-and-connected-products\/","url":"https:\/\/extreemtek.com\/iot-and-connected-products\/","name":"IoT Development Company Netherlands | ExtreemTek Eindhoven","isPartOf":{"@id":"https:\/\/extreemtek.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/extreemtek.com\/iot-and-connected-products\/#primaryimage"},"image":{"@id":"https:\/\/extreemtek.com\/iot-and-connected-products\/#primaryimage"},"thumbnailUrl":"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/09\/Frame.png","datePublished":"2026-09-24T13:17:01+00:00","dateModified":"2026-10-23T05:51:27+00:00","description":"End-to-end IoT development from one Eindhoven team: hardware, firmware, apps and cloud. Custom IoT solutions from prototype to production.","breadcrumb":{"@id":"https:\/\/extreemtek.com\/iot-and-connected-products\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/extreemtek.com\/iot-and-connected-products\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/extreemtek.com\/iot-and-connected-products\/#primaryimage","url":"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/09\/Frame.png","contentUrl":"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/09\/Frame.png"},{"@type":"BreadcrumbList","@id":"https:\/\/extreemtek.com\/iot-and-connected-products\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/extreemtek.com\/"},{"@type":"ListItem","position":2,"name":"IoT and Connected Products"}]},{"@type":"WebSite","@id":"https:\/\/extreemtek.com\/#website","url":"https:\/\/extreemtek.com\/","name":"ExtreemTek","description":"Engineering Ideas into Intelligent Reality","publisher":{"@id":"https:\/\/extreemtek.com\/#organization"},"alternateName":"Extreemtek","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/extreemtek.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/extreemtek.com\/#organization","name":"ExtreemTek","alternateName":"Extreemtek","url":"https:\/\/extreemtek.com\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/extreemtek.com\/#\/schema\/logo\/image\/","url":"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/07\/extreemtek-new-logol-horizontal-white.svg","contentUrl":"https:\/\/extreemtek.com\/wp-content\/uploads\/2026\/07\/extreemtek-new-logol-horizontal-white.svg","width":634,"height":106,"caption":"ExtreemTek"},"image":{"@id":"https:\/\/extreemtek.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/extreemtek\/","https:\/\/www.instagram.com\/extreemtek\/","https:\/\/www.linkedin.com\/company\/extreemtek"]}]}},"amp_enabled":false,"_links":{"self":[{"href":"https:\/\/extreemtek.com\/nl\/wp-json\/wp\/v2\/pages\/7053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/extreemtek.com\/nl\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/extreemtek.com\/nl\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/extreemtek.com\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/extreemtek.com\/nl\/wp-json\/wp\/v2\/comments?post=7053"}],"version-history":[{"count":23,"href":"https:\/\/extreemtek.com\/nl\/wp-json\/wp\/v2\/pages\/7053\/revisions"}],"predecessor-version":[{"id":7353,"href":"https:\/\/extreemtek.com\/nl\/wp-json\/wp\/v2\/pages\/7053\/revisions\/7353"}],"wp:attachment":[{"href":"https:\/\/extreemtek.com\/nl\/wp-json\/wp\/v2\/media?parent=7053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}