{"id":2509,"date":"2025-09-17T13:30:46","date_gmt":"2025-09-17T13:30:46","guid":{"rendered":"https:\/\/webontwerpers.be\/google-ads-service\/"},"modified":"2026-01-23T18:06:02","modified_gmt":"2026-01-23T18:06:02","slug":"google-ads-service","status":"publish","type":"page","link":"https:\/\/webontwerpers.be\/fr\/google-ads-service\/","title":{"rendered":"Google Ads-service"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2509\" class=\"elementor elementor-2509 elementor-1008\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-83a7a06 e-con-full e-flex e-con e-parent\" data-id=\"83a7a06\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d0b1d65 elementor-widget elementor-widget-html\" data-id=\"d0b1d65\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- WEBONTWERPERS \u2013 GOOGLE ADS PAKKETTEN SECTION (FULL UPDATED: WIDER + MOBILE + SCROLL TO #offerte)\n     Paste EVERYTHING into one Elementor HTML widget.\n-->\n<section class=\"wo-packs\" id=\"wo-packs\">\n  <style>\n    :root{\n      --wo-blue:#015af2;\n      --wo-purple:#a154d0;\n\n      --wo-bgA:#070A12;\n      --wo-bgB:#0a0f1f;\n\n      --wo-shadow: 0 22px 70px rgba(0,0,0,.30);\n      --wo-shadow2: 0 28px 95px rgba(0,0,0,.40);\n\n      --wo-radius:28px;\n      --wo-font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;\n    }\n\n    \/* FULL WIDTH \u2013 DARK *\/\n    .wo-packs{\n      width:100vw;\n      position:relative;\n      left:50%;\n      margin-left:-50vw;\n      padding: 96px 0;\n      background:\n        radial-gradient(1100px 520px at 14% 18%, rgba(1,90,242,.22), transparent 60%),\n        radial-gradient(1100px 520px at 86% 22%, rgba(161,84,208,.22), transparent 60%),\n        radial-gradient(900px 560px at 50% 110%, rgba(34,197,94,.10), transparent 60%),\n        linear-gradient(180deg, var(--wo-bgA), var(--wo-bgB));\n      font-family: var(--wo-font);\n      color: rgba(255,255,255,.92);\n      overflow:hidden;\n      isolation:isolate;\n    }\n\n    \/* subtle grid *\/\n    .wo-packs::before{\n      content:\"\";\n      position:absolute; inset:-2px;\n      background:\n        linear-gradient(to right, rgba(255,255,255,.06) 1px, transparent 1px),\n        linear-gradient(to bottom, rgba(255,255,255,.06) 1px, transparent 1px);\n      background-size: 72px 72px;\n      opacity:.10;\n      pointer-events:none;\n      mix-blend-mode:soft-light;\n      z-index:0;\n    }\n    \/* aura *\/\n    .wo-packs::after{\n      content:\"\";\n      position:absolute; inset:-35%;\n      background: conic-gradient(from 0deg,\n        rgba(1,90,242,.22),\n        rgba(161,84,208,.22),\n        rgba(1,90,242,.22)\n      );\n      opacity:.10;\n      filter: blur(20px);\n      animation: woPacksSpin 22s linear infinite;\n      pointer-events:none;\n      z-index:0;\n    }\n    @keyframes woPacksSpin{ from{transform:rotate(0deg);} to{transform:rotate(360deg);} }\n\n    .wo-packs__wrap{\n      max-width: 1570px; \/* widened *\/\n      margin: 0 auto;\n      padding: 0 18px;\n      position:relative;\n      z-index:1;\n    }\n\n    \/* HEADER *\/\n    .wo-packs__kicker{\n      display:inline-flex;\n      align-items:center;\n      gap:10px;\n      font-weight: 900;\n      font-size: 12px;\n      letter-spacing:.42px;\n      text-transform:uppercase;\n      color: rgba(255,255,255,.86);\n      margin-bottom: 10px;\n    }\n    .wo-packs__dot{\n      width:10px;height:10px;border-radius:999px;\n      background: linear-gradient(135deg, var(--wo-blue), var(--wo-purple));\n      box-shadow: 0 0 0 6px rgba(1,90,242,.16);\n    }\n    .wo-packs__title{\n      margin:0 0 8px;\n      font-size: clamp(30px, 3.4vw, 48px);\n      line-height:1.04;\n      letter-spacing:-0.9px;\n    }\n    .wo-packs__title span{\n      background: linear-gradient(90deg, rgba(1,90,242,1), rgba(161,84,208,1));\n      -webkit-background-clip:text;\n      background-clip:text;\n      color: transparent;\n    }\n    .wo-packs__sub{\n      margin:0 0 22px;\n      color: rgba(255,255,255,.70);\n      font-size: 15.6px;\n      line-height: 1.75;\n      max-width: 70ch;\n    }\n\n    \/* GRID: FORCE 4 SIDE-BY-SIDE ON DESKTOP *\/\n    .wo-packs__grid{\n      display:grid;\n      grid-template-columns: repeat(4, minmax(0, 1fr));\n      gap: 16px; \/* slightly wider spacing *\/\n      align-items: stretch;\n    }\n\n    .wo-pack{\n      position:relative;\n      border-radius: var(--wo-radius);\n      padding: 18px;\n      background: rgba(255,255,255,.06);\n      border: 1px solid rgba(255,255,255,.14);\n      box-shadow: var(--wo-shadow);\n      overflow:hidden;\n      transform: translateZ(0);\n      transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease, background .22s ease, filter .22s ease;\n      display:flex;\n      flex-direction:column;\n      min-height: 100%;\n    }\n\n    \/* gradient ring *\/\n    .wo-pack::before{\n      content:\"\";\n      position:absolute;\n      inset:-2px;\n      border-radius: calc(var(--wo-radius) + 2px);\n      padding: 2px;\n      background: linear-gradient(135deg, rgba(1,90,242,.55), rgba(161,84,208,.55), rgba(1,90,242,.22));\n      -webkit-mask:\n        linear-gradient(#000 0 0) content-box,\n        linear-gradient(#000 0 0);\n      -webkit-mask-composite: xor;\n      mask-composite: exclude;\n      opacity:.18;\n      pointer-events:none;\n    }\n\n    \/* shimmer *\/\n    .wo-pack::after{\n      content:\"\";\n      position:absolute;\n      top:-40%;\n      left:-60%;\n      width: 60%;\n      height: 180%;\n      background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.55), rgba(255,255,255,0));\n      transform: rotate(18deg);\n      opacity: 0;\n      pointer-events:none;\n    }\n\n    .wo-pack:hover{\n      transform: translateY(-4px);\n      box-shadow: var(--wo-shadow2);\n      border-color: rgba(255,255,255,.22);\n      background: rgba(255,255,255,.075);\n      filter: saturate(1.05);\n    }\n    .wo-pack:hover::after{\n      opacity:.85;\n      animation: woPackShimmer 1.15s ease;\n    }\n    @keyframes woPackShimmer{ 0%{ left:-60%; } 100%{ left:140%; } }\n\n    .wo-packTop{\n      display:flex;\n      align-items:flex-start;\n      justify-content:space-between;\n      gap: 12px;\n      margin-bottom: 10px;\n    }\n\n    .wo-cap{\n      display:inline-flex;\n      align-items:center;\n      gap:8px;\n      padding: 8px 10px;\n      border-radius: 999px;\n      background: rgba(255,255,255,.08);\n      border: 1px solid rgba(255,255,255,.14);\n      color: rgba(255,255,255,.86);\n      font-weight: 900;\n      font-size: 12px;\n      letter-spacing:.2px;\n      white-space:nowrap;\n    }\n    .wo-cap i{\n      width:8px;height:8px;border-radius:999px;\n      background: linear-gradient(135deg, var(--wo-blue), var(--wo-purple));\n      display:inline-block;\n      box-shadow: 0 0 0 6px rgba(1,90,242,.14);\n    }\n\n    .wo-badge{\n      padding: 8px 10px;\n      border-radius: 999px;\n      background: linear-gradient(135deg, rgba(1,90,242,.18), rgba(161,84,208,.16));\n      border: 1px solid rgba(1,90,242,.28);\n      color: rgba(255,255,255,.92);\n      font-weight: 950;\n      font-size: 12px;\n      letter-spacing:.2px;\n      white-space:nowrap;\n    }\n\n    .wo-packName{\n      margin: 2px 0 6px;\n      font-size: 18px;\n      font-weight: 980;\n      letter-spacing: -0.35px;\n      color: rgba(255,255,255,.95);\n    }\n\n    .wo-priceRow{\n      display:flex;\n      align-items:baseline;\n      gap: 10px;\n      margin: 8px 0 12px;\n      flex-wrap:wrap;\n    }\n    .wo-price{\n      font-size: 34px;\n      font-weight: 1000;\n      letter-spacing: -0.8px;\n      line-height:1;\n      background: linear-gradient(90deg, rgba(255,255,255,.95), rgba(255,255,255,.82));\n      -webkit-background-clip:text;\n      background-clip:text;\n      color: transparent;\n    }\n    .wo-vat{\n      color: rgba(255,255,255,.68);\n      font-weight: 900;\n      font-size: 13px;\n    }\n\n    .wo-listTitle{\n      margin: 10px 0 8px;\n      font-size: 13px;\n      letter-spacing:.2px;\n      color: rgba(255,255,255,.78);\n      font-weight: 900;\n    }\n\n    .wo-list{\n      margin:0;\n      padding:0;\n      list-style:none;\n      display:grid;\n      gap: 8px;\n    }\n    .wo-li{\n      display:flex;\n      gap: 10px;\n      align-items:flex-start;\n      color: rgba(255,255,255,.74);\n      font-size: 13.5px;\n      line-height: 1.55;\n      overflow-wrap:anywhere;\n      word-break: break-word;\n    }\n    .wo-li svg{ flex:0 0 auto; margin-top:2px; opacity:.95; }\n\n    .wo-packFooter{\n      margin-top: auto;\n      padding-top: 14px;\n      display:flex;\n      align-items:center;\n      justify-content:space-between;\n      gap: 12px;\n      flex-wrap:wrap;\n    }\n\n    \/* glass button *\/\n    .wo-btnGlass{\n      position: relative;\n      background: rgba(255, 255, 255, 0.15);\n      border: 1px solid rgba(255, 255, 255, 0.30);\n      border-radius: 16px;\n      color: #fff;\n      font-size: 14.5px;\n      font-weight: 900;\n      padding: 12px 14px;\n      cursor: pointer;\n      backdrop-filter: blur(10px) saturate(180%);\n      -webkit-backdrop-filter: blur(10px) saturate(180%);\n      box-shadow: 0 10px 26px rgba(0, 0, 0, 0.25);\n      overflow: hidden;\n      transition: all 0.35s ease;\n      display:inline-flex;\n      align-items:center;\n      justify-content:space-between;\n      gap:10px;\n      text-decoration:none !important;\n      user-select:none;\n      white-space:nowrap;\n    }\n    .wo-btnGlass:hover{\n      background: rgba(255, 255, 255, 0.25);\n      box-shadow: 0 14px 34px rgba(0, 0, 0, 0.35);\n      transform: translateY(-1px) scale(1.02);\n      color:#fff;\n    }\n    .wo-btnGlass::before{\n      content:\"\";\n      position:absolute;\n      top:-50%;\n      left:-50%;\n      width:200%;\n      height:200%;\n      background: radial-gradient(circle, rgba(255,255,255,0.30) 0%, rgba(255,255,255,0) 60%);\n      transform: rotate(45deg);\n      pointer-events:none;\n      animation: woBtnShine 3s infinite linear;\n      border-radius: inherit;\n    }\n    @keyframes woBtnShine{\n      0%{ transform: translate(-100%, -100%) rotate(45deg); opacity: .30; }\n      50%{ transform: translate(100%, 100%) rotate(45deg); opacity: .60; }\n      100%{ transform: translate(-100%, -100%) rotate(45deg); opacity: .30; }\n    }\n\n    .wo-arrow{\n      width: 26px; height: 26px;\n      border-radius: 999px;\n      display:grid; place-items:center;\n      background: rgba(255,255,255,.08);\n      border: 1px solid rgba(255,255,255,.14);\n      transition: transform .22s ease;\n      flex: 0 0 auto;\n    }\n    .wo-btnGlass:hover .wo-arrow{ transform: translateX(3px); }\n    .wo-arrow svg{ width: 16px; height:16px; }\n\n    \/* RESPONSIVE *\/\n    @media(max-width: 1100px){\n      .wo-packs{ padding: 86px 0; }\n      .wo-packs__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }\n      .wo-pack{ padding: 18px; }\n    }\n    @media(max-width: 740px){\n      .wo-packs{ padding: 72px 0; }\n      .wo-packs__sub{ font-size: 15px; }\n      .wo-packs__grid{ grid-template-columns: 1fr; gap: 14px; }\n      .wo-pack{ padding: 16px; border-radius: 22px; }\n      .wo-price{ font-size: 32px; }\n      .wo-packTop{ gap: 10px; }\n      .wo-cap, .wo-badge{ font-size: 11.5px; padding: 7px 10px; }\n      .wo-li{ font-size: 13.2px; }\n      .wo-packFooter{ padding-top: 12px; }\n      .wo-btnGlass{ width: 100%; justify-content:space-between; }\n    }\n\n    @media (prefers-reduced-motion: reduce){\n      .wo-packs::after, .wo-pack::after, .wo-btnGlass::before{ animation:none !important; }\n      .wo-pack, .wo-btnGlass{ transition:none !important; }\n    }\n  <\/style>\n<div class=\"wo-packs__wrap\">\n  <div class=\"wo-packs__kicker\"><span class=\"wo-packs__dot\"><\/span> Packs Google Ads<\/div>\n  <h2 class=\"wo-packs__title\">Service <span>Google Ads<\/span><\/h2>\n  <p class=\"wo-packs__sub\">Gestion professionnelle des campagnes, rapports clairs et optimisation continue \u2014 sans mauvaises surprises.<\/p>\n\n  <div class=\"wo-packs__grid\">\n\n    <!-- D\u00e9but -->\n    <article class=\"wo-pack\" aria-label=\"Pack D\u00e9but\">\n      <div class=\"wo-packTop\">\n        <span class=\"wo-cap\"><i><\/i> Gestion d\u20191 campagne<\/span>\n        <span class=\"wo-badge\">D\u00e9but<\/span>\n      <\/div>\n      <h3 class=\"wo-packName\">D\u00e9but<\/h3>\n      <div class=\"wo-priceRow\"><div class=\"wo-price\">\u20ac249<\/div><div class=\"wo-vat\">\/ mois \/ +TVA<\/div><\/div>\n      <div class=\"wo-listTitle\">Pour les d\u00e9butants et les petites entreprises.<\/div>\n      <ul class=\"wo-list\">\n        <li class=\"wo-li\">Adapt\u00e9 aux entreprises avec un budget publicitaire de 100 \u20ac \u00e0 250 \u20ac.<\/li>\n        <li class=\"wo-li\">Gestion mensuelle d\u20191 campagne<\/li>\n        <li class=\"wo-li\">Analyse des mots-cl\u00e9s<\/li>\n        <li class=\"wo-li\">R\u00e9daction des annonces<\/li>\n        <li class=\"wo-li\">Installation du suivi de conversion de base<\/li>\n        <li class=\"wo-li\">Rapport de performance mensuel<\/li>\n      <\/ul>\n      <div class=\"wo-packFooter\">\n        <a class=\"wo-btnGlass wo-scrollToOfferte\" href=\"https:\/\/webontwerpers.be\/google-ads-service\/#offerte\" data-target=\"#offerte\">\n          Acheter le pack\n          <span class=\"wo-arrow\" aria-hidden=\"true\"><\/span>\n        <\/a>\n      <\/div>\n    <\/article>\n\n    <!-- Croissance -->\n    <article class=\"wo-pack\" aria-label=\"Pack Croissance\">\n      <div class=\"wo-packTop\">\n        <span class=\"wo-cap\"><i><\/i> Gestion de 3 campagnes<\/span>\n        <span class=\"wo-badge\">Croissance<\/span>\n      <\/div>\n      <h3 class=\"wo-packName\">Croissance<\/h3>\n      <div class=\"wo-priceRow\"><div class=\"wo-price\">\u20ac349<\/div><div class=\"wo-vat\">\/ mois \/ +TVA<\/div><\/div>\n      <div class=\"wo-listTitle\">PME qui font activement de la publicit\u00e9 sur Google.<\/div>\n      <ul class=\"wo-list\">\n        <li class=\"wo-li\">Adapt\u00e9 aux entreprises avec un budget publicitaire de 300 \u20ac \u00e0 500 \u20ac.<\/li>\n        <li class=\"wo-li\">Gestion mensuelle de 3 campagnes<\/li>\n        <li class=\"wo-li\">Strat\u00e9gies de remarketing<\/li>\n        <li class=\"wo-li\">Optimisation avanc\u00e9e des mots-cl\u00e9s et mots-cl\u00e9s n\u00e9gatifs<\/li>\n        <li class=\"wo-li\">Optimisation des conversions<\/li>\n        <li class=\"wo-li\">Tests A\/B des annonces<\/li>\n      <\/ul>\n      <div class=\"wo-packFooter\">\n        <a class=\"wo-btnGlass wo-scrollToOfferte\" href=\"https:\/\/webontwerpers.be\/google-ads-service\/#offerte\" data-target=\"#offerte\">\n          Acheter le pack\n          <span class=\"wo-arrow\" aria-hidden=\"true\"><\/span>\n        <\/a>\n      <\/div>\n    <\/article>\n\n    <!-- Performance -->\n    <article class=\"wo-pack\" aria-label=\"Pack Performance\">\n      <div class=\"wo-packTop\">\n        <span class=\"wo-cap\"><i><\/i> Gestion illimit\u00e9e des campagnes<\/span>\n        <span class=\"wo-badge\">Performance<\/span>\n      <\/div>\n      <h3 class=\"wo-packName\">Performance<\/h3>\n      <div class=\"wo-priceRow\"><div class=\"wo-price\">\u20ac499<\/div><div class=\"wo-vat\">\/ mois \/ +TVA<\/div><\/div>\n      <div class=\"wo-listTitle\">Entreprises actives dans des secteurs \u00e0 forte concurrence.<\/div>\n      <ul class=\"wo-list\">\n        <li class=\"wo-li\">Adapt\u00e9 aux entreprises avec un budget publicitaire de 500 \u20ac \u00e0 800 \u20ac.<\/li>\n        <li class=\"wo-li\">Gestion de campagnes internationales<\/li>\n        <li class=\"wo-li\">Int\u00e9gration de Google Tag Manager et Analytics<\/li>\n        <li class=\"wo-li\">Suivi avanc\u00e9 des conversions et micro-ciblage<\/li>\n        <li class=\"wo-li\">Optimisation et reporting hebdomadaires<\/li>\n        <li class=\"wo-li\">Gestion compl\u00e8te des extensions d\u2019annonces<\/li>\n      <\/ul>\n      <div class=\"wo-packFooter\">\n        <a class=\"wo-btnGlass wo-scrollToOfferte\" href=\"https:\/\/webontwerpers.be\/google-ads-service\/#offerte\" data-target=\"#offerte\">\n          Acheter le pack\n          <span class=\"wo-arrow\" aria-hidden=\"true\"><\/span>\n        <\/a>\n      <\/div>\n    <\/article>\n\n    <!-- Avanc\u00e9 -->\n    <article class=\"wo-pack\" aria-label=\"Pack Avanc\u00e9\">\n      <div class=\"wo-packTop\">\n        <span class=\"wo-cap\"><i><\/i> Gestion illimit\u00e9e des campagnes<\/span>\n        <span class=\"wo-badge\">Avanc\u00e9<\/span>\n      <\/div>\n      <h3 class=\"wo-packName\">Avanc\u00e9<\/h3>\n      <div class=\"wo-priceRow\"><div class=\"wo-price\">\u20ac999<\/div><div class=\"wo-vat\">\/ mois \/ +TVA<\/div><\/div>\n      <div class=\"wo-listTitle\">Entreprises souhaitant un budget \u00e9lev\u00e9 et une gestion professionnelle des campagnes.<\/div>\n      <ul class=\"wo-list\">\n        <li class=\"wo-li\">Tous les r\u00e9seaux Google Ads : Search, Display, Vid\u00e9o, Shopping<\/li>\n        <li class=\"wo-li\">Analyse concurrentielle et strat\u00e9gie sectorielle<\/li>\n        <li class=\"wo-li\">R\u00e9unions et rapports hebdomadaires<\/li>\n        <li class=\"wo-li\">Gestion de campagnes internationales<\/li>\n        <li class=\"wo-li\">Support e-mail 24\/7<\/li>\n      <\/ul>\n      <div class=\"wo-packFooter\">\n        <a class=\"wo-btnGlass wo-scrollToOfferte\" href=\"https:\/\/webontwerpers.be\/google-ads-service\/#offerte\" data-target=\"#offerte\">\n          Acheter le pack\n          <span class=\"wo-arrow\" aria-hidden=\"true\"><\/span>\n        <\/a>\n      <\/div>\n    <\/article>\n\n  <\/div>\n<\/div>\n\n  <script>\n    (function(){\n      var targetId = \"offerte\";\n      var selector = '.wo-scrollToOfferte';\n\n      function findHeaderOffset(){\n        var candidates = [\n          document.querySelector('header.elementor-sticky--effects'),\n          document.querySelector('.elementor-location-header'),\n          document.querySelector('header'),\n          document.querySelector('.sticky, .is-sticky')\n        ].filter(Boolean);\n\n        var maxH = 0;\n        candidates.forEach(function(el){\n          var rect = el.getBoundingClientRect();\n          var h = rect.height || el.offsetHeight || 0;\n          if(h > maxH && h < 260) maxH = h;\n        });\n        return (maxH || 0) + 18;\n      }\n\n      function smoothScrollToId(id){\n        var el = document.getElementById(id) || document.querySelector('#' + CSS.escape(id));\n        if(!el) {\n          window.location.href = \"https:\/\/webontwerpers.be\/google-ads-service\/#\" + id;\n          return;\n        }\n\n        var offset = findHeaderOffset();\n        var y = el.getBoundingClientRect().top + window.pageYOffset - offset;\n\n        window.scrollTo({ top: Math.max(0, y), behavior: \"smooth\" });\n\n        if(history && history.replaceState){\n          history.replaceState(null, \"\", \"#\" + id);\n        }\n      }\n\n      document.addEventListener('click', function(e){\n        var a = e.target.closest(selector);\n        if(!a) return;\n\n        e.preventDefault();\n        smoothScrollToId(targetId);\n      });\n\n      window.addEventListener('load', function(){\n        var hash = (location.hash || \"\").replace(\"#\",\"\");\n        if(hash && (hash === targetId)){\n          setTimeout(function(){ smoothScrollToId(targetId); }, 80);\n        }\n      });\n    })();\n  <\/script>\n<\/section>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4a72ffa e-con-full e-flex e-con e-parent\" data-id=\"4a72ffa\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;,&quot;shape_divider_top&quot;:&quot;triangle&quot;}\">\n\t\t\t\t<div class=\"elementor-shape elementor-shape-top\" aria-hidden=\"true\" data-negative=\"false\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 1000 100\" preserveAspectRatio=\"none\">\n\t<path class=\"elementor-shape-fill\" d=\"M500,98.9L0,6.1V0h1000v6.1L500,98.9z\"\/>\n<\/svg>\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fe4f02a elementor-widget elementor-widget-html\" data-id=\"fe4f02a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- Webontwerpers AI (DARK) - Google Ads Service Recommender (same system) -->\n<div id=\"woAiRecommenderAds\" class=\"woai woai--dark\">\n  <button class=\"woai-cta\" type=\"button\" aria-haspopup=\"dialog\" aria-controls=\"woaiModalAds\">\n    <span class=\"woai-cta__glow\" aria-hidden=\"true\"><\/span>\n    <span class=\"woai-cta__icon\" aria-hidden=\"true\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\">\n        <path d=\"M12 2l2.2 4.7L19 8l-3.5 3.4.9 5-4.4-2.4-4.4 2.4.9-5L5 8l4.8-1.3L12 2z\" stroke=\"currentColor\" stroke-width=\"1.5\"\/>\n        <path d=\"M7.5 21.5c2.8-1.5 6.2-1.5 9 0\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\"\/>\n      <\/svg>\n    <\/span>\n    <span class=\"woai-cta__text\">\n      <span class=\"woai-cta__title\">AI-assistent analyseert jouw Google Ads<\/span>\n      <span class=\"woai-cta__sub\">en adviseert het beste beheer-pakket<\/span>\n    <\/span>\n    <span class=\"woai-cta__chip\" aria-hidden=\"true\">Start analyse<\/span>\n  <\/button>\n\n  <div class=\"woai-modal\" id=\"woaiModalAds\" role=\"dialog\" aria-modal=\"true\" aria-hidden=\"true\">\n    <div class=\"woai-backdrop\" data-woai-close><\/div>\n\n    <div class=\"woai-panel\" role=\"document\" aria-label=\"AI Google Ads analyse\">\n      <canvas class=\"woai-particles\" aria-hidden=\"true\"><\/canvas>\n\n      <div class=\"woai-head\">\n        <div class=\"woai-brand\">\n          <div class=\"woai-orb\" aria-hidden=\"true\"><\/div>\n          <div class=\"woai-brand__txt\">\n            <div class=\"woai-brand__title\">Webontwerpers AI<\/div>\n            <div class=\"woai-brand__sub\">Google Ads \u2022 Slimme analyse<\/div>\n          <\/div>\n        <\/div>\n        <button class=\"woai-x\" type=\"button\" aria-label=\"Sluiten\" data-woai-close>\u2715<\/button>\n      <\/div>\n\n      <div class=\"woai-progress\">\n        <div class=\"woai-progress__bar\"><span class=\"woai-progress__fill\"><\/span><\/div>\n        <div class=\"woai-progress__meta\">\n          <span class=\"woai-stepLabel\">Stap 1\/?<\/span>\n          <span class=\"woai-status\" aria-live=\"polite\">Analyse klaar om te starten<\/span>\n        <\/div>\n      <\/div>\n\n      <div class=\"woai-body\">\n        <div class=\"woai-wizard\">\n          <div class=\"woai-scanline\" aria-hidden=\"true\"><\/div>\n\n          <div class=\"woai-qwrap\">\n            <div class=\"woai-qtop\">\n              <div class=\"woai-qbadge\">\n                <span class=\"woai-qbadge__dot\" aria-hidden=\"true\"><\/span>\n                <span class=\"woai-qbadge__txt\">AI VRAAG<\/span>\n              <\/div>\n              <button class=\"woai-manualToggle\" type=\"button\" aria-expanded=\"false\" title=\"Manueel invullen\">\n                <span aria-hidden=\"true\">\u270e<\/span> Manueel\n              <\/button>\n            <\/div>\n\n            <h3 class=\"woai-question\">\u2014<\/h3>\n            <p class=\"woai-help\">\u2014<\/p>\n\n            <div class=\"woai-options\" role=\"list\"><\/div>\n\n            <div class=\"woai-manual\" hidden>\n              <label class=\"woai-label\" for=\"woaiManual\">Manuele toelichting (optioneel)<\/label>\n              <textarea id=\"woaiManual\" class=\"woai-textarea\" rows=\"3\" placeholder=\"Bijv. \u2018We willen remarketing + GTM tracking + meer leads in Antwerpen\u2026\u2019\"><\/textarea>\n            <\/div>\n\n            <div class=\"woai-nav\">\n              <button class=\"woai-btn woai-btn--ghost\" type=\"button\" data-woai-prev disabled>\u2190 Vorige<\/button>\n              <div class=\"woai-nav__right\">\n                <button class=\"woai-btn woai-btn--ghost\" type=\"button\" data-woai-reset>Reset<\/button>\n                <button class=\"woai-btn woai-btn--primary\" type=\"button\" data-woai-next disabled>Volgende \u2192<\/button>\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"woai-result\" hidden>\n            <div class=\"woai-result__hero\">\n              <div class=\"woai-result__aiMark\" aria-hidden=\"true\">\n                <div class=\"woai-ring\"><\/div>\n                <div class=\"woai-core\"><\/div>\n                <div class=\"woai-ring woai-ring--2\"><\/div>\n              <\/div>\n              <div class=\"woai-result__txt\">\n                <div class=\"woai-result__kicker\">AI ADVIES<\/div>\n                <h3 class=\"woai-result__title\">Jouw beste match: <span class=\"woai-result__pack\">\u2014<\/span><\/h3>\n                <p class=\"woai-result__why\">\u2014<\/p>\n              <\/div>\n              <div class=\"woai-result__badge\" aria-hidden=\"true\">\n                <div class=\"woai-result__badgeTop\">MATCH<\/div>\n                <div class=\"woai-result__badgeVal\"><span class=\"woai-badgePct\">\u2014<\/span>%<\/div>\n              <\/div>\n            <\/div>\n\n            <div class=\"woai-packCard woai-packCard--main\">\n              <div class=\"woai-packGlow\" aria-hidden=\"true\"><\/div>\n              <div class=\"woai-packCard__top\">\n                <div class=\"woai-packCard__name\">\u2014<\/div>\n                <div class=\"woai-packCard__price\">\u2014<\/div>\n              <\/div>\n              <div class=\"woai-packCard__meta\">\u2014<\/div>\n              <ul class=\"woai-packCard__list\"><\/ul>\n\n              <div class=\"woai-packCard__actions\">\n                <a class=\"woai-btn woai-btn--primary woai-packLink\" href=\"#\" target=\"_self\" rel=\"noopener\" data-woai-scroll=\"1\">Bekijk pakket<\/a>\n                <a class=\"woai-btn woai-btn--ghost woai-offerteLink\" href=\"#\" target=\"_self\" rel=\"noopener\">Offerte aanvragen<\/a>\n              <\/div>\n            <\/div>\n\n            <div class=\"woai-alts\">\n              <div class=\"woai-alts__title\">Alternatieven<\/div>\n              <div class=\"woai-alts__grid\" id=\"woaiAltGrid\"><\/div>\n            <\/div>\n\n            <div class=\"woai-result__footer\">\n              <button class=\"woai-btn woai-btn--ghost\" type=\"button\" data-woai-back>\u2190 Terug naar vragen<\/button>\n              <button class=\"woai-btn woai-btn--ghost\" type=\"button\" data-woai-close>Sluiten<\/button>\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"woai-console\" aria-hidden=\"true\">\n          <div class=\"woai-console__card\">\n            <div class=\"woai-console__title\">Realtime analyse<\/div>\n            <div class=\"woai-console__lines\" id=\"woaiConsoleLines\"><\/div>\n            <div class=\"woai-console__footer\"><span class=\"woai-pulseDot\"><\/span> Neural scoring actief<\/div>\n          <\/div>\n          <div class=\"woai-console__mini\">\n            <div class=\"woai-mini__label\">Confidence<\/div>\n            <div class=\"woai-mini__bar\"><span class=\"woai-mini__fill\"><\/span><\/div>\n            <div class=\"woai-mini__val\">\u2014<\/div>\n          <\/div>\n          <div class=\"woai-console__hint\">Tip: \u201cManueel\u201d kan altijd extra nuance toevoegen.<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n<style>\n\/* =========================\n   MOBILE POPUP OVERFLOW FIX\n   (Google Ads AI widget)\n   ========================= *\/\n@media (max-width: 860px){\n\n  \/* 1) Popup i\u00e7inde YATAY ta\u015fmay\u0131 tamamen kapat *\/\n  .woai-panel,\n  .woai-body,\n  .woai-wizard,\n  .woai-qwrap,\n  .woai-result,\n  .woai-options,\n  .woai-packCard,\n  .woai-alts,\n  .woai-alts__grid{\n    overflow-x: hidden !important;\n  }\n\n  \/* 2) Flex\/grid elemanlar\u0131nda klasik ta\u015fma sebebi: min-width:auto\n        -> min-width:0 yap\u0131yoruz (en kritik fix) *\/\n  .woai-cta__text,\n  .woai-brand__txt,\n  .woai-result__txt,\n  .woai-packCard__top,\n  .woai-result__hero,\n  .woai-nav,\n  .woai-nav__right{\n    min-width: 0 !important;\n  }\n\n  \/* 3) Uzun metinleri g\u00fcvenli k\u0131r (ba\u015fl\u0131klar\/alt metinler\/rozetler) *\/\n  .woai-cta__title,\n  .woai-cta__sub,\n  .woai-brand__title,\n  .woai-brand__sub,\n  .woai-question,\n  .woai-help,\n  .woai-opt__t,\n  .woai-opt__d,\n  .woai-result__title,\n  .woai-result__why,\n  .woai-packCard__name,\n  .woai-packCard__meta,\n  .woai-alt__t,\n  .woai-alt__m{\n    overflow-wrap: anywhere !important;\n    word-break: break-word !important;\n  }\n\n  \/* 4) Buton\/aksiyonlar mobilde ta\u015fmas\u0131n *\/\n  .woai-packCard__actions{\n    display: grid !important;\n    grid-template-columns: 1fr !important;\n    gap: 10px !important;\n  }\n  .woai-packCard__actions .woai-btn{\n    width: 100% !important;\n  }\n\n  \/* 5) Sonu\u00e7 hero badge mobilde sa\u011fa ta\u015fmas\u0131n *\/\n  .woai-result__hero{\n    flex-wrap: wrap !important;\n  }\n  .woai-result__badge{\n    margin-left: 0 !important;\n    width: 100% !important;\n    text-align: left !important;\n    min-width: 0 !important;\n  }\n\n  \/* 6) Modal panel geni\u015fli\u011fi\/marginleri mobilde daha g\u00fcvenli *\/\n  .woai-panel{\n    width: calc(100% - 12px) !important;\n    margin: 6px auto !important;\n  }\n}\n\n  .woai{\n    --accent1:#00E5FF; --accent2:#B700FF; --accent3:#00FF85;\n    --txt:#EEF3FF; --muted:rgba(238,243,255,.70); --line:rgba(238,243,255,.14);\n    --panelBg: linear-gradient(180deg, rgba(10,14,30,.92), rgba(7,9,20,.92));\n    --shadow: 0 30px 90px rgba(0,0,0,.60);\n    font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;\n    color:var(--txt);\n  }\n  .woai, .woai *{ box-sizing:border-box; }\n  .woai a{ text-decoration:none; color:inherit; }\n\n  \/* CTA (dark) *\/\n  .woai-cta{\n    width:100%;\n    display:flex; align-items:center; gap:14px;\n    padding:14px 16px;\n    border-radius:16px;\n    border:1px solid var(--line);\n    position:relative; overflow:hidden;\n    cursor:pointer;\n    box-shadow: 0 18px 60px rgba(0,0,0,.35);\n    background: rgba(12,16,34,.70);\n    backdrop-filter: blur(12px);\n  }\n  .woai-cta:before{\n    content:\"\"; position:absolute; inset:-2px;\n    background: conic-gradient(from 0deg, var(--accent1), var(--accent2), var(--accent3), var(--accent1));\n    filter: blur(12px); opacity:.55;\n    animation: woaiSpin 3.6s linear infinite;\n  }\n  .woai-cta:after{\n    content:\"\"; position:absolute; inset:2px;\n    background:\n      radial-gradient(120% 120% at 20% 0%, rgba(0,229,255,.18), transparent 60%),\n      radial-gradient(120% 120% at 90% 60%, rgba(183,0,255,.16), transparent 55%),\n      linear-gradient(180deg, rgba(12,16,34,.92), rgba(8,10,22,.92));\n    border-radius:14px;\n    border:1px solid rgba(255,255,255,.10);\n  }\n  .woai-cta > *{ position:relative; z-index:1; }\n  .woai-cta__glow{ position:absolute; inset:0; z-index:0; opacity:.95;\n    background:\n      radial-gradient(60% 70% at 20% 0%, rgba(0,229,255,.22), transparent 60%),\n      radial-gradient(70% 70% at 85% 30%, rgba(183,0,255,.18), transparent 60%);\n  }\n  .woai-cta__icon{\n    width:42px; height:42px; flex:0 0 42px;\n    border-radius:14px;\n    display:grid; place-items:center;\n    background: rgba(255,255,255,.06);\n    border:1px solid rgba(255,255,255,.12);\n    box-shadow: 0 12px 30px rgba(0,0,0,.35);\n    color: var(--txt);\n  }\n  .woai-cta__icon svg{ width:22px; height:22px; color: rgba(238,243,255,.92); }\n  .woai-cta__text{ flex:1; min-width:0; }\n  .woai-cta__title{ display:block; font-weight:950; letter-spacing:.2px; color: var(--txt); }\n  .woai-cta__sub{ display:block; margin-top:2px; color:var(--muted); font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }\n  .woai-cta__chip{\n    padding:8px 10px; border-radius:999px;\n    border:1px solid rgba(255,255,255,.14);\n    background: linear-gradient(90deg, rgba(0,229,255,.12), rgba(183,0,255,.12));\n    font-weight:950; font-size:12px; color: var(--txt);\n  }\n  .woai-cta:hover{ transform: translateY(-1px); transition: transform .15s ease; }\n  .woai-cta:active{ transform: translateY(0px) scale(.99); }\n\n  \/* MOBILE CTA *\/\n  @media (max-width: 520px){\n    .woai-cta{ padding:10px 12px; gap:10px; border-radius:14px; }\n    .woai-cta__icon{ width:36px; height:36px; flex:0 0 36px; border-radius:12px; }\n    .woai-cta__title{ font-size:14px; }\n    .woai-cta__sub{ font-size:12px; }\n    .woai-cta__chip{ display:none; }\n  }\n  @media (max-width: 380px){\n    .woai-cta__sub{ display:none; }\n  }\n\n  \/* Modal *\/\n  .woai-modal{ position:fixed; inset:0; z-index:999999; display:none; }\n  .woai-modal[aria-hidden=\"false\"]{ display:block; }\n  .woai-backdrop{\n    position:absolute; inset:0;\n    background:\n      radial-gradient(120% 120% at 30% 10%, rgba(0,229,255,.16), transparent 52%),\n      radial-gradient(120% 120% at 80% 30%, rgba(183,0,255,.14), transparent 58%),\n      rgba(0,0,0,.66);\n    backdrop-filter: blur(10px);\n  }\n  .woai-panel{\n    position:relative;\n    width:min(980px, calc(100% - 24px));\n    margin: 12px auto;\n    border-radius: 18px;\n    overflow:hidden;\n    background: var(--panelBg);\n    border:1px solid rgba(255,255,255,.14);\n    box-shadow: 0 30px 90px rgba(0,0,0,.60);\n    max-height: calc(100dvh - 24px);\n    transform-origin: 50% 18%;\n  }\n  .woai-modal[aria-hidden=\"false\"] .woai-panel{\n    animation: woaiPopIn .50s cubic-bezier(.2,.9,.25,1) both;\n  }\n  @keyframes woaiPopIn{\n    0%{ opacity:0; transform: translateY(18px) scale(.94); filter: blur(10px); }\n    55%{ opacity:1; transform: translateY(0) scale(1.02); filter: blur(0); }\n    100%{ opacity:1; transform: translateY(0) scale(1); filter: blur(0); }\n  }\n\n  .woai-particles{ position:absolute; inset:0; width:100%; height:100%; opacity:.45; pointer-events:none; }\n\n  .woai-head{\n    display:flex; align-items:center; justify-content:space-between;\n    padding:14px 14px 10px 14px;\n    border-bottom:1px solid rgba(255,255,255,.10);\n    background: linear-gradient(90deg, rgba(0,229,255,.08), rgba(183,0,255,.08));\n  }\n  .woai-brand{ display:flex; align-items:center; gap:12px; }\n  .woai-orb{\n    width:36px; height:36px; border-radius:50%;\n    background:\n      radial-gradient(circle at 30% 30%, rgba(255,255,255,.18), transparent 55%),\n      conic-gradient(from 0deg, var(--accent1), var(--accent2), var(--accent3), var(--accent1));\n    box-shadow: 0 0 0 1px rgba(255,255,255,.12), 0 20px 50px rgba(0,0,0,.45);\n    animation: woaiSpin 4.8s linear infinite;\n  }\n  .woai-brand__title{ font-weight:990; letter-spacing:.3px; color:var(--txt); }\n  .woai-brand__sub{ font-size:12px; margin-top:1px; color:var(--muted); }\n  .woai-x{\n    width:40px; height:40px; border-radius:12px;\n    border:1px solid rgba(255,255,255,.14);\n    background: rgba(255,255,255,.06);\n    color: var(--txt);\n    cursor:pointer;\n  }\n  .woai-x:hover{ background: rgba(255,255,255,.10); }\n\n  .woai-progress{ padding:10px 14px 12px; border-bottom:1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.03); }\n  .woai-progress__bar{ height:10px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); overflow:hidden; }\n  .woai-progress__fill{ display:block; height:100%; width:0%;\n    background: linear-gradient(90deg, var(--accent1), var(--accent2), var(--accent3));\n    box-shadow: 0 0 30px rgba(0,229,255,.22);\n    transition: width .35s ease;\n  }\n  .woai-progress__meta{ display:flex; justify-content:space-between; gap:10px; margin-top:8px; font-size:12px; color:var(--muted); }\n\n  .woai-body{\n    display:grid;\n    grid-template-columns: 1.25fr .75fr;\n    gap:14px;\n    padding:14px;\n    overflow:auto;\n    max-height: calc(100dvh - 140px);\n  }\n\n  .woai-wizard{\n    border-radius:16px;\n    border:1px solid rgba(255,255,255,.12);\n    background: rgba(255,255,255,.04);\n    overflow:hidden;\n    position:relative;\n    backdrop-filter: blur(12px);\n  }\n  .woai-scanline{\n    position:absolute; left:-30%; top:0; width:60%; height:100%;\n    background: linear-gradient(90deg, transparent, rgba(0,229,255,.16), transparent);\n    transform: skewX(-15deg);\n    animation: woaiScan 3.8s ease-in-out infinite;\n    pointer-events:none;\n  }\n  @keyframes woaiScan{\n    0%{ transform: translateX(-40%) skewX(-15deg); opacity:0; }\n    15%{ opacity:.9; }\n    50%{ opacity:.25; }\n    100%{ transform: translateX(220%) skewX(-15deg); opacity:0; }\n  }\n\n  .woai-qwrap{ padding:16px; }\n  .woai-qwrap.woai-transition{ animation: woaiQSwap .36s cubic-bezier(.2,.9,.25,1) both; }\n  @keyframes woaiQSwap{\n    0%{ opacity:0; transform: translateY(10px); filter: blur(8px); }\n    60%{ opacity:1; transform: translateY(0); filter: blur(0); }\n    100%{ opacity:1; transform: translateY(0); }\n  }\n\n  .woai-qtop{ display:flex; align-items:center; justify-content:space-between; gap:10px; }\n  .woai-qbadge{ display:flex; align-items:center; gap:8px; padding:7px 10px; border-radius:999px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); font-size:12px; font-weight:950; letter-spacing:.5px; color:var(--txt); }\n  .woai-qbadge__dot{ width:8px; height:8px; border-radius:50%; background: linear-gradient(90deg, var(--accent1), var(--accent2)); box-shadow: 0 0 12px rgba(0,229,255,.25); animation: woaiPulse 1.5s ease-in-out infinite; }\n  @keyframes woaiPulse{ 0%,100%{ transform:scale(1); opacity:1 } 50%{ transform:scale(1.25); opacity:.65 } }\n\n  .woai-manualToggle{ display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:12px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); cursor:pointer; font-weight:900; font-size:12px; color:var(--txt); }\n  .woai-manualToggle:hover{ background: rgba(255,255,255,.10); }\n\n  .woai-question{ margin:12px 0 6px; font-size:18px; font-weight:990; letter-spacing:.2px; color:var(--txt); }\n  .woai-help{ margin:0 0 12px; font-size:13px; color:var(--muted); }\n\n  .woai-options{ display:grid; gap:10px; }\n  .woai-opt{\n    display:flex; gap:10px; align-items:flex-start;\n    padding:12px;\n    border-radius:14px;\n    border:1px solid rgba(255,255,255,.12);\n    background: rgba(255,255,255,.06);\n    cursor:pointer;\n    transition: transform .12s ease, background .12s ease, border-color .12s ease;\n    color: var(--txt);\n  }\n  .woai-opt:hover{ transform: translateY(-1px); border-color: rgba(0,229,255,.35); background: rgba(0,229,255,.08); }\n  .woai-opt[aria-selected=\"true\"]{ border-color: rgba(183,0,255,.35); background: linear-gradient(90deg, rgba(0,229,255,.10), rgba(183,0,255,.10)); box-shadow: 0 0 0 1px rgba(183,0,255,.10) inset; }\n  .woai-opt__ic{ width:34px; height:34px; border-radius:12px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); flex:0 0 34px; }\n  .woai-opt__t{ font-weight:950; color:var(--txt); }\n  .woai-opt__d{ margin-top:2px; font-size:12px; color:var(--muted); }\n\n  .woai-manual{ margin-top:10px; }\n  .woai-label{ display:block; margin:10px 0 6px; font-weight:900; font-size:12px; color:var(--txt); }\n  .woai-textarea{ width:100%; border-radius:14px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: var(--txt); padding:10px 12px; outline:none; }\n  .woai-textarea:focus{ border-color: rgba(0,229,255,.45); box-shadow: 0 0 0 3px rgba(0,229,255,.12); }\n\n  .woai-nav{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:14px; padding-top:12px; border-top:1px solid rgba(255,255,255,.10); }\n  .woai-nav__right{ display:flex; gap:10px; align-items:center; }\n  .woai-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:14px; padding:10px 12px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); color: var(--txt); cursor:pointer; font-weight:950; font-size:13px; user-select:none; }\n  .woai-btn:disabled{ opacity:.45; cursor:not-allowed; }\n  .woai-btn--ghost:hover{ background: rgba(255,255,255,.10); }\n  .woai-btn--primary{ border:1px solid rgba(255,255,255,.14); background: linear-gradient(90deg, rgba(0,229,255,.14), rgba(183,0,255,.14), rgba(0,255,133,.10)); position:relative; overflow:hidden; }\n  .woai-btn--primary:before{ content:\"\"; position:absolute; inset:-2px; background: conic-gradient(from 0deg, var(--accent1), var(--accent2), var(--accent3), var(--accent1)); filter: blur(12px); opacity:.45; animation: woaiSpin 2.9s linear infinite; }\n  .woai-btn--primary > *{ position:relative; z-index:1; }\n\n  .woai-result{ padding:16px; }\n  .woai-result__hero{ display:flex; gap:14px; align-items:center; padding:14px; border-radius:16px; border:1px solid rgba(255,255,255,.12); background: linear-gradient(90deg, rgba(0,229,255,.10), rgba(183,0,255,.10)); }\n  .woai-result__aiMark{ width:76px; height:76px; position:relative; flex:0 0 76px; }\n  .woai-ring{ position:absolute; inset:0; border-radius:50%; border:1px solid rgba(255,255,255,.12); background: conic-gradient(from 0deg, rgba(0,229,255,0), rgba(0,229,255,.35), rgba(183,0,255,.35), rgba(0,255,133,.30), rgba(0,229,255,0)); animation: woaiSpin 2.6s linear infinite; }\n  .woai-ring--2{ inset:10px; opacity:.75; animation-duration:3.6s; }\n  .woai-core{ position:absolute; inset:22px; border-radius:50%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.18), rgba(0,229,255,.14), rgba(183,0,255,.12), transparent 65%); box-shadow: 0 0 30px rgba(0,229,255,.20); }\n\n  .woai-result__kicker{ font-weight:950; font-size:12px; letter-spacing:.9px; color: rgba(238,243,255,.85); }\n  .woai-result__title{ margin:4px 0 6px; font-size:18px; font-weight:990; color:var(--txt); }\n  .woai-result__why{ margin:0; font-size:13px; color:var(--muted); }\n\n  .woai-result__badge{ margin-left:auto; padding:10px 12px; border-radius:16px; border:1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.06); text-align:right; min-width:110px; }\n  .woai-result__badgeTop{ font-weight:990; letter-spacing:.8px; font-size:11px; color: rgba(238,243,255,.72); }\n  .woai-result__badgeVal{ font-weight:990; font-size:22px; line-height:1.1; background: linear-gradient(90deg, var(--accent1), var(--accent2), var(--accent3)); -webkit-background-clip:text; background-clip:text; color: transparent; }\n\n  .woai-packCard{ margin-top:12px; padding:16px; border-radius:18px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.05); position:relative; overflow:hidden; backdrop-filter: blur(12px); }\n  .woai-packGlow{ position:absolute; inset:-60px; background:\n      radial-gradient(60% 45% at 15% 0%, rgba(0,229,255,.16), transparent 60%),\n      radial-gradient(55% 40% at 90% 55%, rgba(183,0,255,.14), transparent 60%),\n      radial-gradient(45% 35% at 50% 90%, rgba(0,255,133,.10), transparent 60%);\n    filter: blur(10px); opacity:.95; pointer-events:none; animation: woaiGlow 3.2s ease-in-out infinite;\n  }\n  @keyframes woaiGlow{ 0%,100%{ transform: scale(1) translateY(0); opacity:.85 } 50%{ transform: scale(1.04) translateY(-6px); opacity:1 } }\n\n  .woai-packCard__top{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap; }\n  .woai-packCard__name{ font-weight:990; font-size:18px; color:var(--txt); }\n  .woai-packCard__price{ font-weight:990; font-size:16px; color:var(--txt); }\n  .woai-packCard__meta{ margin-top:6px; font-size:13px; color:var(--muted); }\n  .woai-packCard__list{ margin:12px 0 0; padding:0; list-style:none; display:grid; gap:9px; }\n  .woai-packCard__list li{ display:flex; gap:10px; align-items:flex-start; font-size:13px; color: rgba(238,243,255,.86); }\n  .woai-packCard__list li:before{ content:\"\"; width:10px; height:10px; border-radius:50%; margin-top:4px; flex:0 0 10px; background: linear-gradient(90deg, var(--accent1), var(--accent2)); box-shadow: 0 0 14px rgba(0,229,255,.22); }\n\n  .woai-packCard__actions{ margin-top:14px; display:flex; gap:10px; flex-wrap:wrap; }\n\n  .woai-alts{ margin-top:12px; padding:14px; border-radius:18px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); }\n  .woai-alts__title{ font-weight:950; font-size:12px; letter-spacing:.6px; margin-bottom:10px; color: rgba(238,243,255,.85); }\n  .woai-alts__grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }\n  .woai-alt{ border-radius:16px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); padding:12px; }\n  .woai-alt__t{ font-weight:950; font-size:13px; color:var(--txt); }\n  .woai-alt__m{ margin-top:4px; font-size:12px; color:var(--muted); }\n  .woai-alt__s{ margin-top:8px; font-weight:990; background: linear-gradient(90deg, var(--accent1), var(--accent2)); -webkit-background-clip:text; background-clip:text; color: transparent; }\n\n  .woai-result__footer{ margin-top:12px; display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; }\n\n  .woai-console{ display:flex; flex-direction:column; gap:12px; }\n  .woai-console__card{ border-radius:16px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); padding:14px; }\n  .woai-console__title{ font-weight:990; margin-bottom:10px; color:var(--txt); }\n  .woai-console__lines{ display:grid; gap:8px; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\"; font-size:12px; color: rgba(238,243,255,.86); }\n  .woai-line{ display:flex; gap:8px; align-items:center; }\n  .woai-line b{ color: rgba(0,229,255,.95); }\n  .woai-console__footer{ margin-top:10px; display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); }\n  .woai-pulseDot{ width:8px; height:8px; border-radius:50%; background: rgba(0,255,133,.9); box-shadow: 0 0 12px rgba(0,255,133,.22); animation: woaiPulse 1.2s ease-in-out infinite; }\n\n  .woai-console__mini{ border-radius:16px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.04); padding:12px 14px; }\n  .woai-mini__label{ font-size:12px; font-weight:950; letter-spacing:.4px; color:var(--txt); }\n  .woai-mini__bar{ margin-top:8px; height:10px; border-radius:999px; border:1px solid rgba(255,255,255,.12); background: rgba(255,255,255,.06); overflow:hidden; }\n  .woai-mini__fill{ display:block; height:100%; width:0%; background: linear-gradient(90deg, var(--accent1), var(--accent2), var(--accent3)); transition: width .45s ease; }\n  .woai-mini__val{ margin-top:8px; font-weight:990; color:var(--txt); }\n\n  .woai-console__hint{ font-size:12px; padding:10px 12px; border-radius:16px; border:1px dashed rgba(255,255,255,.18); background: rgba(255,255,255,.03); color:var(--muted); }\n\n  @media (max-width: 860px){\n    .woai-body{ grid-template-columns:1fr; }\n    .woai-console{ display:none; }\n    .woai-alts__grid{ grid-template-columns:1fr; }\n  }\n\n  @media (prefers-reduced-motion: reduce){\n    .woai-cta:before,.woai-orb,.woai-scanline,.woai-ring,.woai-packGlow{ animation:none !important; }\n    .woai-modal[aria-hidden=\"false\"] .woai-panel,\n    .woai-qwrap.woai-transition{ animation:none !important; }\n  }\n\n  @keyframes woaiSpin{ to{ transform: rotate(360deg); } }\n\n  \/* Keep the z-index forcing we fixed before *\/\n  @media (max-width: 860px){\n    .woai-modal{\n      position: fixed !important;\n      inset: 0 !important;\n      z-index: 2147483647 !important;\n      isolation: isolate !important;\n      transform: translateZ(0) !important;\n    }\n    .woai-backdrop{\n      position: fixed !important;\n      inset: 0 !important;\n      z-index: 0 !important;\n    }\n    .woai-panel{\n      position: relative !important;\n      z-index: 1 !important;\n      transform: translateZ(0) !important;\n    }\n  }\n<\/style>\n\n<script>\n(function(){\n  const root = document.getElementById('woAiRecommenderAds');\n  if(!root) return;\n\n  const modal = root.querySelector('#woaiModalAds');\n  const panel = root.querySelector('.woai-panel');\n  const openBtn = root.querySelector('.woai-cta');\n  const closeEls = root.querySelectorAll('[data-woai-close]');\n  const prevBtn = root.querySelector('[data-woai-prev]');\n  const nextBtn = root.querySelector('[data-woai-next]');\n  const resetBtn = root.querySelector('[data-woai-reset]');\n  const backBtn = root.querySelector('[data-woai-back]');\n  const manualToggle = root.querySelector('.woai-manualToggle');\n  const manualWrap = root.querySelector('.woai-manual');\n  const manualText = root.querySelector('#woaiManual');\n\n  const qWrap = root.querySelector('.woai-qwrap');\n  const resultWrap = root.querySelector('.woai-result');\n\n  const qEl = root.querySelector('.woai-question');\n  const helpEl = root.querySelector('.woai-help');\n  const optionsEl = root.querySelector('.woai-options');\n\n  const stepLabel = root.querySelector('.woai-stepLabel');\n  const statusEl = root.querySelector('.woai-status');\n  const fillEl = root.querySelector('.woai-progress__fill');\n\n  const consoleLines = root.querySelector('#woaiConsoleLines');\n  const confFill = root.querySelector('.woai-mini__fill');\n  const confVal = root.querySelector('.woai-mini__val');\n  const badgePct = root.querySelector('.woai-badgePct');\n\n  const resultPack = root.querySelector('.woai-result__pack');\n  const resultWhy = root.querySelector('.woai-result__why');\n  const packName = root.querySelector('.woai-packCard__name');\n  const packPrice = root.querySelector('.woai-packCard__price');\n  const packMeta = root.querySelector('.woai-packCard__meta');\n  const packList = root.querySelector('.woai-packCard__list');\n  const packLink = root.querySelector('.woai-packLink');\n  const offerteLink = root.querySelector('.woai-offerteLink');\n  const altGrid = root.querySelector('#woaiAltGrid');\n\n  const LINKS = {\n    pakketAnchor: \"https:\/\/webontwerpers.be\/google-ads-service\/#offerte\",\n    offertePage: \"https:\/\/webontwerpers.be\/offerte\/\"\n  };\n\n  \/\/ Google Ads packages\n  const PACKAGES = {\n    begin: {\n      key:\"begin\",\n      title:\"Begin\",\n      badge:\"Beheer van 1 campagne\",\n      price:\"\u20ac250 \/ maand \/ +BTW\",\n      bullets:[\n        \"Voor beginners en kleine ondernemingen\",\n        \"Geschikt voor advertentiebudget \u20ac100 \u2013 \u20ac250\",\n        \"Maandelijks beheer van 1 campagne\",\n        \"Zoekwoordanalyse\",\n        \"Opstellen van advertentieteksten\",\n        \"Installatie van basisconversietracking\",\n        \"Maandelijks prestatierapport\"\n      ]\n    },\n    groei: {\n      key:\"groei\",\n      title:\"Groei\",\n      badge:\"Beheer van 3 campagnes\",\n      price:\"\u20ac350 \/ maand \/ +BTW\",\n      bullets:[\n        \"Actief adverterende kmo\u2019s op Google\",\n        \"Geschikt voor advertentiebudget \u20ac300 \u2013 \u20ac500\",\n        \"Maandelijks beheer van 3 campagnes\",\n        \"Remarketingstrategie\u00ebn\",\n        \"Geavanceerde zoekwoorden- en negatieve zoekwoordenoptimalisatie\",\n        \"Conversieoptimalisatie\",\n        \"A\/B-advertentietest\"\n      ]\n    },\n    prestatie: {\n      key:\"prestatie\",\n      title:\"Prestatie\",\n      badge:\"Onbeperkt campagnebeheer\",\n      price:\"\u20ac500 \/ maand \/ +BTW\",\n      bullets:[\n        \"Voor sectoren met hoge concurrentie\",\n        \"Geschikt voor advertentiebudget \u20ac500 \u2013 \u20ac800\",\n        \"Internationaal campagnebeheer\",\n        \"Integratie van Google Tag Manager en Analytics\",\n        \"Geavanceerde conversietracking en micro-targeting\",\n        \"Wekelijkse optimalisatie en rapportage\",\n        \"Volledig beheer van advertentie-extensies\"\n      ]\n    },\n    geavanceerd: {\n      key:\"geavanceerd\",\n      title:\"Geavanceerd\",\n      badge:\"Onbeperkt campagnebeheer\",\n      price:\"\u20ac1000 \/ maand \/ +BTW\",\n      bullets:[\n        \"Voor hoog budget en professioneel campagnebeheer\",\n        \"Alle netwerken: Zoek, Display, Video, Shopping\",\n        \"Concurrentieanalyse en sectorgerichte strategie\",\n        \"Wekelijkse vergaderingen en rapportage\",\n        \"Internationaal campagnebeheer\",\n        \"24\/7 e-mailondersteuning\"\n      ]\n    }\n  };\n\n  \/\/ Question bank (same system, only content adapted to Google Ads)\n  const QB = {\n    goal: {\n      id:\"goal\",\n      title:\"Wat is je belangrijkste doel met Google Ads?\",\n      help:\"Dit bepaalt je strategie en benodigde optimalisatie.\",\n      options:[\n        { t:\"Meer leads \/ aanvragen\", d:\"Formulieren, calls, WhatsApp, contact.\", ic:\"\ud83e\uddf2\", score:{ begin:3, groei:6, prestatie:7, geavanceerd:6 }, flags:{ path:\"leads\" } },\n        { t:\"Meer online verkopen\", d:\"Shopping \/ conversion tracking \/ ROAS.\", ic:\"\ud83d\uded2\", score:{ begin:1, groei:5, prestatie:7, geavanceerd:10 }, flags:{ path:\"ecom\" } },\n        { t:\"Brand awareness\", d:\"Display\/Video + bereik.\", ic:\"\ud83d\udce3\", score:{ begin:1, groei:4, prestatie:6, geavanceerd:10 }, flags:{ path:\"brand\" } },\n        { t:\"B2B in hoge concurrentie\", d:\"Hoge CPC, kwaliteit + intensief beheer.\", ic:\"\u2694\ufe0f\", score:{ begin:-2, groei:2, prestatie:8, geavanceerd:12 }, flags:{ path:\"competition\" } }\n      ]\n    },\n\n    budget: {\n      id:\"budget\",\n      title:\"Wat is je maandelijkse advertentiebudget (ongeveer)?\",\n      help:\"Pakketadvies is afgestemd op budgetrange.\",\n      options:[\n        { t:\"\u20ac100 \u2013 \u20ac250\", d:\"Startbudget\", ic:\"\ud83d\udcb6\", score:{ begin:10, groei:1, prestatie:-2, geavanceerd:-6 } },\n        { t:\"\u20ac300 \u2013 \u20ac500\", d:\"Groeiend budget\", ic:\"\ud83d\udcc8\", score:{ begin:0, groei:12, prestatie:4, geavanceerd:0 } },\n        { t:\"\u20ac500 \u2013 \u20ac800\", d:\"Sterk budget\", ic:\"\ud83d\ude80\", score:{ begin:-3, groei:4, prestatie:12, geavanceerd:6 } },\n        { t:\"\u20ac800+\", d:\"Hoog budget\", ic:\"\ud83d\udc51\", score:{ begin:-6, groei:2, prestatie:8, geavanceerd:14 } }\n      ]\n    },\n\n    campaigns: {\n      id:\"campaigns\",\n      title:\"Hoeveel campagnes wil je actief beheren?\",\n      help:\"Meer campagnes = meer optimalisatiewerk.\",\n      options:[\n        { t:\"1 campagne\", d:\"E\u00e9n focus-campagne\", ic:\"1\ufe0f\u20e3\", score:{ begin:10, groei:2, prestatie:0, geavanceerd:-2 } },\n        { t:\"2\u20133 campagnes\", d:\"Meerdere doelgroepen\/producten\", ic:\"3\ufe0f\u20e3\", score:{ begin:2, groei:12, prestatie:4, geavanceerd:2 } },\n        { t:\"4+ campagnes\", d:\"Veel segmenten \/ schaal\", ic:\"\u267e\ufe0f\", score:{ begin:-3, groei:4, prestatie:10, geavanceerd:12 } }\n      ]\n    },\n\n    tracking: {\n      id:\"tracking\",\n      title:\"Hoe belangrijk is conversietracking & meting?\",\n      help:\"Zonder meting geen echte optimalisatie.\",\n      options:[\n        { t:\"Basis tracking is genoeg\", d:\"Formulier\/call tracking (basis).\", ic:\"\u2705\", score:{ begin:10, groei:4, prestatie:2, geavanceerd:1 } },\n        { t:\"Geavanceerde tracking (GTM\/Analytics)\", d:\"Micro-conversies & attributie.\", ic:\"\ud83e\udde0\", score:{ begin:0, groei:6, prestatie:12, geavanceerd:12 }, flags:{ advancedTracking:true } }\n      ]\n    },\n\n    remarketing: {\n      id:\"remarketing\",\n      title:\"Wil je remarketing inzetten?\",\n      help:\"Remarketing vraagt extra strategie & optimalisatie.\",\n      options:[\n        { t:\"Nee, voorlopig niet\", d:\"Focus op Search\", ic:\"\ud83d\udd0e\", score:{ begin:6, groei:6, prestatie:4, geavanceerd:2 } },\n        { t:\"Ja, remarketing is belangrijk\", d:\"RLSA\/Display remarketing\", ic:\"\ud83c\udfaf\", score:{ begin:1, groei:12, prestatie:10, geavanceerd:10 }, flags:{ remarketing:true } }\n      ]\n    },\n\n    networks: {\n      id:\"networks\",\n      title:\"Welke Google Ads netwerken wil je gebruiken?\",\n      help:\"Meer netwerken = complexer beheer.\",\n      options:[\n        { t:\"Alleen Search\", d:\"Focus op zoekadvertenties\", ic:\"\ud83d\udd0d\", score:{ begin:10, groei:8, prestatie:6, geavanceerd:3 } },\n        { t:\"Search + Display\", d:\"Bereik + remarketing\", ic:\"\ud83d\udda5\ufe0f\", score:{ begin:2, groei:10, prestatie:10, geavanceerd:10 } },\n        { t:\"Search + Shopping\", d:\"E-commerce focus\", ic:\"\ud83d\udecd\ufe0f\", score:{ begin:0, groei:8, prestatie:10, geavanceerd:12 }, flags:{ shopping:true } },\n        { t:\"Zoek + Display + Video\/Shopping\", d:\"Volledige mix\", ic:\"\ud83c\udf10\", score:{ begin:-4, groei:2, prestatie:8, geavanceerd:14 }, flags:{ fullStack:true } }\n      ]\n    },\n\n    geo: {\n      id:\"geo\",\n      title:\"Target je lokaal of internationaal?\",\n      help:\"Internationaal beheer vereist meer setup & optimalisatie.\",\n      options:[\n        { t:\"Lokaal (1 regio)\", d:\"Bijv. Antwerpen\", ic:\"\ud83d\udccd\", score:{ begin:8, groei:10, prestatie:6, geavanceerd:4 } },\n        { t:\"Meerdere regio\u2019s\", d:\"Meerdere steden\/provincies\", ic:\"\ud83d\uddfa\ufe0f\", score:{ begin:2, groei:8, prestatie:10, geavanceerd:10 } },\n        { t:\"Internationaal\", d:\"Meerdere landen\/talen\", ic:\"\ud83c\udf0d\", score:{ begin:-4, groei:2, prestatie:12, geavanceerd:14 }, flags:{ international:true } }\n      ]\n    },\n\n    meeting: {\n      id:\"meeting\",\n      title:\"Wil je wekelijkse meetings en diepgaande rapportage?\",\n      help:\"Dit past bij intensief beheer.\",\n      options:[\n        { t:\"Maandelijkse rapportage is genoeg\", d:\"Standaard ritme\", ic:\"\ud83d\udcca\", score:{ begin:10, groei:8, prestatie:4, geavanceerd:2 } },\n        { t:\"Wekelijks + strategisch overleg\", d:\"Intensieve begeleiding\", ic:\"\ud83e\uddd1\u200d\ud83d\udcbc\", score:{ begin:-2, groei:2, prestatie:10, geavanceerd:14 }, flags:{ weeklyMeetings:true } }\n      ]\n    }\n  };\n\n  \/\/ Branched flows (same idea, just Ads-specific)\n  const FLOWS = {\n    leads:        [\"goal\",\"budget\",\"campaigns\",\"tracking\",\"remarketing\",\"networks\",\"geo\",\"meeting\"],\n    ecom:         [\"goal\",\"budget\",\"networks\",\"tracking\",\"remarketing\",\"campaigns\",\"geo\",\"meeting\"],\n    brand:        [\"goal\",\"budget\",\"networks\",\"campaigns\",\"tracking\",\"geo\",\"meeting\"],\n    competition:  [\"goal\",\"budget\",\"campaigns\",\"tracking\",\"networks\",\"geo\",\"meeting\"]\n  };\n\n  let flow = FLOWS.leads.slice();\n  let step = 0;\n  const answers = {};\n\n  openBtn.addEventListener('click', openModal);\n  closeEls.forEach(el => el.addEventListener('click', closeModal));\n  window.addEventListener('keydown', (e)=>{ if(modal.getAttribute('aria-hidden')==='false' && e.key==='Escape') closeModal(); });\n\n  manualToggle.addEventListener('click', ()=>{\n    const isOpen = manualToggle.getAttribute('aria-expanded') === 'true';\n    manualToggle.setAttribute('aria-expanded', String(!isOpen));\n    manualWrap.hidden = isOpen ? true : false;\n  });\n\n  prevBtn.addEventListener('click', ()=>{ if(step>0){ step--; renderStep(); } });\n  nextBtn.addEventListener('click', ()=>{\n    const qid = flow[step];\n    if(!answers[qid]) return;\n    if(step < flow.length-1){ step++; renderStep(); } else { showResult(); }\n  });\n  root.querySelector('[data-woai-reset]').addEventListener('click', ()=>{\n    step=0; flow=FLOWS.leads.slice();\n    for(const k in answers) delete answers[k];\n    manualText.value=\"\"; manualWrap.hidden=true; manualToggle.setAttribute('aria-expanded','false');\n    pushConsole(\"Reset uitgevoerd\", \"OK\");\n    renderStep(true);\n  });\n  backBtn.addEventListener('click', ()=>{\n    resultWrap.hidden = true;\n    qWrap.hidden = false;\n    renderStep(true);\n  });\n\n  \/\/ \u201cBekijk pakket\u201d smooth scroll (if same page) + close modal\n  root.addEventListener(\"click\", (e)=>{\n    const a = e.target.closest('a[data-woai-scroll=\"1\"]');\n    if(!a) return;\n\n    closeModal();\n\n    const href = a.getAttribute(\"href\") || \"\";\n    try{\n      const u = new URL(href, window.location.href);\n      if(u.origin === window.location.origin){\n        const hash = u.hash || \"\";\n        if(hash && u.pathname === window.location.pathname){\n          e.preventDefault();\n          history.pushState(null, \"\", hash);\n          setTimeout(()=>{\n            const target = document.querySelector(hash);\n            if(target) target.scrollIntoView({behavior:\"smooth\", block:\"start\"});\n            else window.location.href = href;\n          }, 60);\n        }\n      }\n    }catch(err){}\n  });\n\n  \/\/ Offerte aanvragen -> always go to detailed offerte page, close modal\n  offerteLink.addEventListener(\"click\", ()=>{\n    closeModal();\n    window.location.href = LINKS.offertePage;\n  });\n\n  function openModal(){\n    modal.setAttribute('aria-hidden','false');\n    document.body.style.overflow = 'hidden';\n    qWrap.hidden = false; resultWrap.hidden = true;\n\n    step=0; flow=FLOWS.leads.slice();\n    for(const k in answers) delete answers[k];\n    manualText.value=\"\"; manualWrap.hidden=true; manualToggle.setAttribute('aria-expanded','false');\n\n    renderStep(true);\n    startParticles();\n    pushConsole(\"Systeem gestart\u2026\", \"OK\");\n    setTimeout(()=>pushConsole(\"Neural scoring: actief\", \"RUN\"), 180);\n  }\n  function closeModal(){\n    modal.setAttribute('aria-hidden','true');\n    document.body.style.overflow = '';\n    stopParticles();\n  }\n\n  function renderStep(){\n    qWrap.classList.remove(\"woai-transition\");\n    void qWrap.offsetWidth;\n    qWrap.classList.add(\"woai-transition\");\n\n    const qid = flow[step];\n    const q = QB[qid];\n\n    const total = flow.length;\n    stepLabel.textContent = `Stap ${step+1}\/${total}`;\n    fillEl.style.width = `${Math.round((step\/Math.max(1,total))*100)}%`;\n\n    prevBtn.disabled = step === 0;\n    nextBtn.disabled = !answers[qid];\n\n    qEl.textContent = q.title;\n    helpEl.textContent = q.help;\n\n    manualText.value = (answers[qid]?.manual || \"\");\n    manualWrap.hidden = !(manualToggle.getAttribute('aria-expanded') === 'true');\n\n    optionsEl.innerHTML = \"\";\n    q.options.forEach((opt, idx)=>{\n      const btn = document.createElement('button');\n      btn.type=\"button\";\n      btn.className=\"woai-opt\";\n      btn.setAttribute('role','listitem');\n      btn.setAttribute('aria-selected', answers[qid]?.idx === idx ? \"true\" : \"false\");\n      btn.innerHTML = `\n        <div class=\"woai-opt__ic\"><span>${opt.ic}<\/span><\/div>\n        <div class=\"woai-opt__txt\">\n          <div class=\"woai-opt__t\">${escapeHtml(opt.t)}<\/div>\n          <div class=\"woai-opt__d\">${escapeHtml(opt.d)}<\/div>\n        <\/div>\n      `;\n      btn.addEventListener('click', ()=>{\n        answers[qid] = { idx, manual: manualText.value || \"\", flags: (opt.flags || {}) };\n\n        if(qid === \"goal\"){\n          const path = opt.flags?.path || \"leads\";\n          flow = (FLOWS[path] || FLOWS.leads).slice();\n          for(const key of Object.keys(answers)){\n            if(!flow.includes(key)) delete answers[key];\n          }\n          step = 0;\n          pushConsole(`Path selected: ${path}`, \"OK\");\n        }\n\n        [...optionsEl.querySelectorAll('.woai-opt')].forEach(n=>n.setAttribute('aria-selected','false'));\n        btn.setAttribute('aria-selected','true');\n        nextBtn.disabled = false;\n\n        pushConsole(`${qid}: ${opt.t}`, \"OK\");\n        statusEl.textContent = \"Keuze geregistreerd\";\n        updateConfidence();\n        nextBtn.animate([{transform:\"scale(1)\"},{transform:\"scale(1.03)\"},{transform:\"scale(1)\"}], {duration:260, easing:\"cubic-bezier(.2,.9,.25,1)\"});\n      });\n      optionsEl.appendChild(btn);\n    });\n\n    manualText.oninput = ()=>{\n      if(answers[qid]){\n        answers[qid].manual = manualText.value;\n        pushConsole(`manual(${qid}): bijgewerkt`, \"NOTE\");\n      }\n    };\n\n    statusEl.textContent = \"Wacht op keuze\u2026\";\n    updateConfidence();\n  }\n\n  function computeScores(){\n    const scores = { begin:0, groei:0, prestatie:0, geavanceerd:0 };\n\n    for(const qid of flow){\n      const a = answers[qid];\n      if(!a) continue;\n      const q = QB[qid];\n      const opt = q.options[a.idx];\n      if(!opt || !opt.score) continue;\n      for(const k of Object.keys(scores)){\n        scores[k] += (opt.score[k] || 0);\n      }\n    }\n\n    \/\/ manual keyword nudges (light touch)\n    const manualAll = Object.values(answers).map(x=>x.manual||\"\").join(\" \").toLowerCase();\n    const has = (w)=> manualAll.includes(w);\n\n    if(has(\"gtm\") || has(\"tag manager\") || has(\"analytics\")) { scores.prestatie += 3; scores.geavanceerd += 3; }\n    if(has(\"remarketing\")) { scores.groei += 3; scores.prestatie += 2; scores.geavanceerd += 2; }\n    if(has(\"shopping\")) { scores.geavanceerd += 4; scores.prestatie += 2; }\n    if(has(\"internationaal\") || has(\"international\")) { scores.prestatie += 3; scores.geavanceerd += 4; }\n    if(has(\"wekelijks\") || has(\"weekly\")) { scores.geavanceerd += 4; scores.prestatie += 2; }\n\n    \/\/ If user chose full network stack -> strongly lean to Geavanceerd\n    const netFlags = answers.networks ? (QB.networks.options[answers.networks.idx]?.flags || {}) : {};\n    if(netFlags.fullStack){ scores.geavanceerd += 8; }\n\n    return scores;\n  }\n\n  function pickWinner(scores){\n    const entries = Object.entries(scores).sort((a,b)=> b[1]-a[1]);\n    const bestKey = entries[0][0];\n    const ranking = entries;\n\n    const bestVal = ranking[0][1];\n    const secondVal = ranking[1] ? ranking[1][1] : bestVal-1;\n    const diff = bestVal - secondVal;\n    const confidence = Math.max(60, Math.min(96, 70 + diff*4));\n    return { bestKey, confidence, ranking };\n  }\n\n  function buildWhy(bestKey){\n    const bits = [];\n    const gOpt = answers.goal ? QB.goal.options[answers.goal.idx]?.t : null; if(gOpt) bits.push(`Doel: ${gOpt}`);\n    const bOpt = answers.budget ? QB.budget.options[answers.budget.idx]?.t : null; if(bOpt) bits.push(`Budget: ${bOpt}`);\n    const cOpt = answers.campaigns ? QB.campaigns.options[answers.campaigns.idx]?.t : null; if(cOpt) bits.push(`Campagnes: ${cOpt}`);\n    const tOpt = answers.tracking ? QB.tracking.options[answers.tracking.idx]?.t : null; if(tOpt) bits.push(`Tracking: ${tOpt}`);\n    const nOpt = answers.networks ? QB.networks.options[answers.networks.idx]?.t : null; if(nOpt) bits.push(`Netwerken: ${nOpt}`);\n    const base = bits.slice(0,3).join(\" \u2022 \");\n\n    if(bestKey===\"begin\") return `${base}. Ideaal om veilig te starten met 1 campagne en basis tracking.`;\n    if(bestKey===\"groei\") return `${base}. Sterk voor KMO\u2019s met meerdere campagnes + remarketing en A\/B tests.`;\n    if(bestKey===\"prestatie\") return `${base}. Past bij hogere concurrentie: geavanceerde tracking + wekelijkse optimalisatie.`;\n    return `${base}. Full-stack aanpak met alle netwerken + strategie, meetings en internationale groei.`;\n  }\n\n  function renderAlternatives(ranking){\n    altGrid.innerHTML = \"\";\n    ranking.slice(1,3).forEach(([key, score])=>{\n      const pkg = PACKAGES[key];\n      const el = document.createElement(\"div\");\n      el.className = \"woai-alt\";\n      el.innerHTML = `\n        <div class=\"woai-alt__t\">${escapeHtml(pkg.title)}<\/div>\n        <div class=\"woai-alt__m\">${escapeHtml(pkg.badge)} \u2022 ${escapeHtml(pkg.price)}<\/div>\n        <div class=\"woai-alt__s\">AI-score: ${Math.round(score)}<\/div>\n      `;\n      altGrid.appendChild(el);\n    });\n  }\n\n  function showResult(){\n    fillEl.style.width = \"100%\";\n    statusEl.textContent = \"Analyse afronden\u2026\";\n\n    pushConsole(\"Analyse: gestart\", \"RUN\");\n    setTimeout(()=>pushConsole(\"Feature extraction\u2026\", \"RUN\"), 200);\n    setTimeout(()=>pushConsole(\"Scoring modellen\u2026\", \"RUN\"), 430);\n    setTimeout(()=>pushConsole(\"Best match: berekenen\u2026\", \"RUN\"), 680);\n\n    const scores = computeScores();\n    const res = pickWinner(scores);\n    const pkg = PACKAGES[res.bestKey];\n\n    setTimeout(()=>{\n      qWrap.hidden = true;\n      resultWrap.hidden = false;\n\n      const why = buildWhy(res.bestKey);\n\n      resultPack.textContent = pkg.title;\n      resultWhy.textContent = why;\n\n      packName.textContent = pkg.title;\n      packPrice.textContent = pkg.price;\n      packMeta.textContent = `${pkg.badge} \u2022 Aanbevolen door AI-score`;\n      packList.innerHTML = pkg.bullets.map(x=>`<li>${escapeHtml(x)}<\/li>`).join(\"\");\n\n      \/\/ Links\n      packLink.href = LINKS.pakketAnchor;   \/\/ smooth scroll if same page\n      offerteLink.href = LINKS.offertePage; \/\/ detailed offerte page\n\n      confFill.style.width = `${res.confidence}%`;\n      confVal.textContent = `${res.confidence}%`;\n      badgePct.textContent = `${res.confidence}`;\n\n      renderAlternatives(res.ranking);\n\n      pushConsole(`Resultaat: ${pkg.title}`, \"OK\");\n      pushConsole(`Confidence: ${res.confidence}%`, \"OK\");\n      statusEl.textContent = \"Advies klaar \u2705\";\n    }, 880);\n  }\n\n  function updateConfidence(){\n    const answered = flow.filter(id=>answers[id]).length;\n    const total = flow.length;\n    const scores = computeScores();\n    const res = pickWinner(scores);\n\n    const base = 40 + Math.round((answered\/Math.max(1,total))*40);\n    const conf = Math.max(base, Math.min(95, res.confidence - (total-answered)*2));\n\n    confFill.style.width = `${conf}%`;\n    confVal.textContent = answered ? `${conf}%` : \"\u2014\";\n  }\n\n  function pushConsole(text, tag){\n    if(!consoleLines) return;\n    const row = document.createElement(\"div\");\n    row.className = \"woai-line\";\n    row.innerHTML = `<b>[${tag||\"OK\"}]<\/b> <span>${escapeHtml(text)}<\/span>`;\n    consoleLines.prepend(row);\n    while(consoleLines.children.length>10) consoleLines.removeChild(consoleLines.lastChild);\n  }\n  function escapeHtml(s){\n    return String(s).replace(\/[&<>\"']\/g, m=>({ \"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#039;\" }[m]));\n  }\n\n  \/\/ Particles (dark)\n  const canvas = root.querySelector(\".woai-particles\");\n  const ctx = canvas.getContext(\"2d\");\n  let raf=null, particles=[], lastT=0;\n\n  function resizeCanvas(){\n    const rect = panel.getBoundingClientRect();\n    canvas.width = Math.max(300, Math.floor(rect.width));\n    canvas.height = Math.max(300, Math.floor(rect.height));\n  }\n  function initParticles(){\n    resizeCanvas();\n    const count = Math.min(95, Math.round((canvas.width*canvas.height)\/17000));\n    particles = [];\n    for(let i=0;i<count;i++){\n      particles.push({\n        x:Math.random()*canvas.width,\n        y:Math.random()*canvas.height,\n        vx:(Math.random()-.5)*0.45,\n        vy:(Math.random()-.5)*0.45,\n        r:1+Math.random()*1.8,\n        a:0.12+Math.random()*0.24\n      });\n    }\n  }\n  function draw(t){\n    const dt = Math.min(32, t-lastT); lastT=t;\n    ctx.clearRect(0,0,canvas.width,canvas.height);\n\n    const g = ctx.createRadialGradient(canvas.width*0.25, canvas.height*0.15, 0, canvas.width*0.25, canvas.height*0.15, canvas.width*0.9);\n    g.addColorStop(0, \"rgba(0,229,255,0.12)\");\n    g.addColorStop(0.45, \"rgba(183,0,255,0.10)\");\n    g.addColorStop(1, \"rgba(0,0,0,0)\");\n    ctx.fillStyle = g;\n    ctx.fillRect(0,0,canvas.width,canvas.height);\n\n    for(const p of particles){\n      p.x += p.vx*dt; p.y += p.vy*dt;\n      if(p.x<-20) p.x=canvas.width+20;\n      if(p.x>canvas.width+20) p.x=-20;\n      if(p.y<-20) p.y=canvas.height+20;\n      if(p.y>canvas.height+20) p.y=-20;\n\n      ctx.beginPath();\n      ctx.arc(p.x,p.y,p.r,0,Math.PI*2);\n      ctx.fillStyle = `rgba(240,245,255,${p.a})`;\n      ctx.fill();\n    }\n\n    for(let i=0;i<particles.length;i++){\n      for(let j=i+1;j<particles.length;j++){\n        const a=particles[i], b=particles[j];\n        const dx=a.x-b.x, dy=a.y-b.y;\n        const d=Math.sqrt(dx*dx+dy*dy);\n        if(d<120){\n          const alpha=(1-d\/120)*0.18;\n          ctx.strokeStyle = `rgba(0,229,255,${alpha})`;\n          ctx.lineWidth=1;\n          ctx.beginPath();\n          ctx.moveTo(a.x,a.y); ctx.lineTo(b.x,b.y);\n          ctx.stroke();\n        }\n      }\n    }\n    raf=requestAnimationFrame(draw);\n  }\n  function startParticles(){\n    initParticles();\n    window.addEventListener(\"resize\", onResize, {passive:true});\n    raf=requestAnimationFrame((t)=>{ lastT=t; draw(t); });\n  }\n  function stopParticles(){\n    window.removeEventListener(\"resize\", onResize);\n    if(raf) cancelAnimationFrame(raf);\n    raf=null;\n  }\n  function onResize(){ resizeCanvas(); initParticles(); }\n\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-468ed2b0 e-flex e-con-boxed e-con e-parent\" data-id=\"468ed2b0\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-501c6c58 e-con-full e-flex e-con e-child\" data-id=\"501c6c58\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-25f4689 elementor-align-center elementor-widget elementor-widget-lottie\" data-id=\"25f4689\" data-element_type=\"widget\" data-settings=\"{&quot;source_json&quot;:{&quot;url&quot;:&quot;https:\\\/\\\/webontwerpers.be\\\/wp-content\\\/uploads\\\/2025\\\/12\\\/Google-Ads-with-Leo-Voruta.json&quot;,&quot;id&quot;:2023,&quot;size&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;source&quot;:&quot;library&quot;},&quot;loop&quot;:&quot;yes&quot;,&quot;source&quot;:&quot;media_file&quot;,&quot;caption_source&quot;:&quot;none&quot;,&quot;link_to&quot;:&quot;none&quot;,&quot;trigger&quot;:&quot;arriving_to_viewport&quot;,&quot;viewport&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:{&quot;start&quot;:0,&quot;end&quot;:100}},&quot;play_speed&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:1,&quot;sizes&quot;:[]},&quot;start_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:0,&quot;sizes&quot;:[]},&quot;end_point&quot;:{&quot;unit&quot;:&quot;%&quot;,&quot;size&quot;:100,&quot;sizes&quot;:[]},&quot;renderer&quot;:&quot;svg&quot;}\" data-widget_type=\"lottie.default\">\n\t\t\t\t\t<div class=\"e-lottie__container\"><div class=\"e-lottie__animation\"><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1d368e82 elementor-widget__width-inherit elementor-widget elementor-widget-image\" data-id=\"1d368e82\" data-element_type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"992\" height=\"496\" src=\"https:\/\/webontwerpers.be\/wp-content\/uploads\/2025\/09\/google-partner-certifiactions.webp\" class=\"attachment-full size-full wp-image-1010\" alt=\"\" srcset=\"https:\/\/webontwerpers.be\/wp-content\/uploads\/2025\/09\/google-partner-certifiactions.webp 992w, https:\/\/webontwerpers.be\/wp-content\/uploads\/2025\/09\/google-partner-certifiactions-300x150.webp 300w, https:\/\/webontwerpers.be\/wp-content\/uploads\/2025\/09\/google-partner-certifiactions-768x384.webp 768w, https:\/\/webontwerpers.be\/wp-content\/uploads\/2025\/09\/google-partner-certifiactions-500x250.webp 500w, https:\/\/webontwerpers.be\/wp-content\/uploads\/2025\/09\/google-partner-certifiactions-800x400.webp 800w\" sizes=\"(max-width: 992px) 100vw, 992px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-21fef9c4 e-con-full e-flex e-con e-child\" data-id=\"21fef9c4\" data-element_type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-48c7850b elementor-align-start elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"48c7850b\" data-element_type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Certifications<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-54b259cb elementor-widget__width-initial elementor-widget-tablet__width-inherit elementor-widget elementor-widget-heading\" data-id=\"54b259cb\" data-element_type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Notre expertise a \u00e9t\u00e9 officiellement confirm\u00e9e !\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a386461 elementor-widget-mobile__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"1a386461\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\tNous nous appuyons non seulement sur notre exp\u00e9rience, mais aussi sur notre expertise.\n\nNos certifications Google attestent que nous travaillons dans le respect des r\u00e8gles et non au hasard.\n\nCes certifications prouvent notre parfaite ma\u00eetrise des algorithmes, notre connaissance approfondie des dynamiques publicitaires en constante \u00e9volution et notre capacit\u00e9 \u00e0 g\u00e9rer chaque campagne de mani\u00e8re optimale.\n\nPour nous, cependant, le v\u00e9ritable succ\u00e8s ne r\u00e9side pas dans les certifications obtenues, mais dans les projets que nous menons \u00e0 bien ensemble.\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-279fea6 e-con-full e-flex e-con e-parent\" data-id=\"279fea6\" data-element_type=\"container\" id=\"offerte\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d010899 elementor-widget elementor-widget-html\" data-id=\"d010899\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<section class=\"agency-quote-section\" id=\"agency-quote\">\n  <style>\n    :root{\n      --brand-blue:#015af2;\n      --brand-purple:#a154d0;\n\n      --bg-main:#0b0f1a;\n      --bg-soft:#11172a;\n\n      --text-main:#ffffff;\n      --text-muted:rgba(255,255,255,.7);\n      --border-soft:rgba(255,255,255,.14);\n\n      --radius-xl:24px;\n      --radius-lg:18px;\n\n      --shadow-xl:0 30px 80px rgba(0,0,0,.55);\n\n      --max-width:1100px;\n      --font-main:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;\n    }\n\n    \/* FULL WIDTH *\/\n    .agency-quote-section{\n      width:100vw;\n      position:relative;\n      left:50%;\n      margin-left:-50vw;\n      background:\n        radial-gradient(900px 600px at 15% 15%, rgba(1,90,242,.35), transparent 60%),\n        radial-gradient(900px 600px at 85% 20%, rgba(161,84,208,.35), transparent 60%),\n        var(--bg-main);\n      color:var(--text-main);\n      font-family:var(--font-main);\n      overflow:hidden;\n    }\n\n    .agency-quote-wrapper{\n      max-width:var(--max-width);\n      margin:0 auto;\n      padding:100px 20px;\n    }\n\n    \/* HEADER *\/\n    .agency-quote-header{\n      max-width:700px;\n      margin-bottom:50px;\n    }\n\n    .agency-eyebrow{\n      font-size:12px;\n      font-weight:800;\n      letter-spacing:.35px;\n      text-transform:uppercase;\n      color:var(--brand-blue);\n      margin-bottom:14px;\n    }\n\n    .agency-quote-title{\n      font-size:clamp(28px,3.4vw,44px);\n      line-height:1.1;\n      letter-spacing:-0.6px;\n      margin:0 0 14px;\n    }\n\n    .agency-quote-title span{\n      background:linear-gradient(90deg,var(--brand-blue),var(--brand-purple));\n      -webkit-background-clip:text;\n      background-clip:text;\n      color:transparent;\n    }\n\n    .agency-quote-lead{\n      font-size:15.6px;\n      line-height:1.75;\n      color:var(--text-muted);\n      margin:0;\n    }\n\n    \/* FORM CARD *\/\n    .agency-quote-card{\n      background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03));\n      border:1px solid var(--border-soft);\n      border-radius:var(--radius-xl);\n      padding:40px;\n      box-shadow:var(--shadow-xl);\n      overflow:hidden;\n      position:relative;\n    }\n\n    \/* GRID *\/\n    .agency-form-grid{\n      display:grid;\n      grid-template-columns:1fr 1fr;\n      gap:20px;\n    }\n\n    .agency-field{\n      display:flex;\n      flex-direction:column;\n      gap:6px;\n    }\n\n    .agency-field.full{ grid-column:1 \/ -1; }\n\n    .agency-field label{\n      font-size:13px;\n      font-weight:700;\n      color:var(--text-muted);\n    }\n\n    .agency-field input,\n    .agency-field select,\n    .agency-field textarea{\n      background:rgba(0,0,0,.35);\n      border:1px solid var(--border-soft);\n      border-radius:14px;\n      padding:14px 14px;\n      color:#fff;\n      font-size:14px;\n      font-family:var(--font-main);\n      outline:none;\n      transition:border .25s ease, box-shadow .25s ease, transform .2s ease;\n    }\n    .agency-field input::placeholder,\n    .agency-field textarea::placeholder{\n      color: rgba(255,255,255,.55);\n    }\n\n    .agency-field input:focus,\n    .agency-field select:focus,\n    .agency-field textarea:focus{\n      border-color:var(--brand-blue);\n      box-shadow:0 0 0 2px rgba(1,90,242,.25);\n      transform: translateY(-1px);\n    }\n\n    .agency-field textarea{\n      resize:vertical;\n      min-height:120px;\n      line-height:1.65;\n    }\n\n    \/* PACKAGE SELECT *\/\n    .agency-package-grid{\n      display:grid;\n      grid-template-columns:repeat(4,1fr);\n      gap:14px;\n      margin-bottom:20px;\n    }\n\n    .agency-package{\n      background:rgba(0,0,0,.35);\n      border:1px solid var(--border-soft);\n      border-radius:16px;\n      padding:16px 12px;\n      text-align:center;\n      cursor:pointer;\n      transition:all .25s ease;\n      font-size:13px;\n      font-weight:700;\n      user-select:none;\n    }\n    .agency-package:hover{\n      border-color: rgba(255,255,255,.24);\n      transform: translateY(-1px);\n    }\n\n    .agency-package.active{\n      background:linear-gradient(135deg,rgba(1,90,242,.25),rgba(161,84,208,.25));\n      border-color:var(--brand-blue);\n    }\n\n    \/* CTA *\/\n    .agency-submit{\n      margin-top:30px;\n      display:flex;\n      justify-content:space-between;\n      align-items:center;\n      gap:20px;\n      flex-wrap:wrap;\n    }\n\n    .agency-submit-note{\n      font-size:13px;\n      color:var(--text-muted);\n    }\n\n    .agency-submit button{\n      background:linear-gradient(135deg,var(--brand-blue),var(--brand-purple));\n      border:none;\n      border-radius:16px;\n      padding:14px 26px;\n      font-size:14px;\n      font-weight:800;\n      color:#fff;\n      cursor:pointer;\n      box-shadow:0 18px 45px rgba(1,90,242,.35);\n      transition: transform .18s ease, box-shadow .18s ease, opacity .18s ease;\n    }\n    .agency-submit button:hover{\n      transform: translateY(-1px);\n      box-shadow:0 24px 60px rgba(1,90,242,.42);\n    }\n    .agency-submit button:disabled{\n      opacity:.65;\n      cursor:not-allowed;\n      transform:none;\n      box-shadow:none;\n    }\n\n    \/* Alerts *\/\n    .agency-alert{\n      display:none;\n      margin-top: 16px;\n      padding: 14px 14px;\n      border-radius: 16px;\n      border: 1px solid rgba(255,255,255,.14);\n      background: rgba(0,0,0,.25);\n      color: rgba(255,255,255,.88);\n      font-size: 13.6px;\n      line-height:1.6;\n    }\n    .agency-alert.success{ border-color: rgba(34,197,94,.30); }\n    .agency-alert.error{ border-color: rgba(239,68,68,.30); }\n\n    \/* honeypot hidden *\/\n    .agency-hp{ position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; }\n\n    \/* RESPONSIVE *\/\n    @media(max-width:900px){\n      .agency-form-grid{ grid-template-columns:1fr; }\n      .agency-package-grid{ grid-template-columns:1fr 1fr; }\n    }\n    @media(max-width:520px){\n      .agency-quote-wrapper{ padding:80px 16px; }\n      .agency-package-grid{ grid-template-columns:1fr; }\n    }\n  <\/style>\n  <div class=\"agency-quote-wrapper\">\n    <div class=\"agency-quote-header\">\n      <div class=\"agency-eyebrow\">Indication de prix & prise de contact<\/div>\n      <h2 class=\"agency-quote-title\">\n        Demander un <span>devis<\/span>\n      <\/h2>\n      <p class=\"agency-quote-lead\">\n        S\u00e9lectionnez le pack qui correspond le mieux \u00e0 votre situation.\n        Nous vous contactons sous un jour ouvrable.\n      <\/p>\n    <\/div>\n\n    <div class=\"agency-quote-card\">\n      <form id=\"agencyQuoteForm\" novalidate>\n        <!-- PACKAGES (Google Ads) -->\n        <div class=\"agency-package-grid\" aria-label=\"Choisir un pack Google Ads\">\n          <div class=\"agency-package\" role=\"button\" tabindex=\"0\" data-package=\"Begin\">D\u00e9but<\/div>\n          <div class=\"agency-package\" role=\"button\" tabindex=\"0\" data-package=\"Groei\">Croissance<\/div>\n          <div class=\"agency-package\" role=\"button\" tabindex=\"0\" data-package=\"Prestatie\">Performance<\/div>\n          <div class=\"agency-package\" role=\"button\" tabindex=\"0\" data-package=\"Geavanceerd\">Avanc\u00e9<\/div>\n        <\/div>\n\n        <input type=\"hidden\" name=\"selected_package\" id=\"selectedPackage\" required>\n        <input type=\"hidden\" name=\"service\" value=\"Google Ads\">\n        <input type=\"hidden\" name=\"page_url\" id=\"agencyPageUrl\" value=\"\">\n        <input type=\"hidden\" name=\"ua\" id=\"agencyUA\" value=\"\">\n\n        <!-- honeypot -->\n        <div class=\"agency-hp\" aria-hidden=\"true\">\n          <label>Laissez ceci vide<\/label>\n          <input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\">\n        <\/div>\n\n        <!-- FIELDS -->\n        <div class=\"agency-form-grid\">\n          <div class=\"agency-field\">\n            <label for=\"agencyName\">Nom*<\/label>\n            <input id=\"agencyName\" name=\"name\" type=\"text\" placeholder=\"Votre nom\" required>\n          <\/div>\n\n          <div class=\"agency-field\">\n            <label for=\"agencyEmail\">Adresse e-mail*<\/label>\n            <input id=\"agencyEmail\" name=\"email\" type=\"email\" placeholder=\"nom@entreprise.be\" required>\n          <\/div>\n\n          <div class=\"agency-field\">\n            <label for=\"agencyPhone\">T\u00e9l\u00e9phone<\/label>\n            <input id=\"agencyPhone\" name=\"phone\" type=\"tel\" placeholder=\"+32 ...\">\n          <\/div>\n\n          <div class=\"agency-field\">\n            <label for=\"agencyCompany\">Nom de l\u2019entreprise<\/label>\n            <input id=\"agencyCompany\" name=\"company\" type=\"text\" placeholder=\"Nom de l\u2019entreprise (optionnel)\">\n          <\/div>\n\n          <!-- keep field (hidden) for future use, but never shown -->\n          <div class=\"agency-field full\" id=\"specialProjectField\" style=\"display:none;\">\n            <label for=\"agencyProject\">D\u00e9crivez votre projet<\/label>\n            <textarea id=\"agencyProject\" name=\"project\" placeholder=\"Dites-nous ce dont vous avez besoin...\"><\/textarea>\n          <\/div>\n        <\/div>\n\n        <!-- CTA -->\n        <div class=\"agency-submit\">\n          <div class=\"agency-submit-note\">\n            Sans engagement \u2022 Conseil personnalis\u00e9 \u2022 R\u00e9ponse sous 24 heures\n          <\/div>\n          <button id=\"agencySubmitBtn\" type=\"submit\">Demander un devis<\/button>\n        <\/div>\n\n        <div class=\"agency-alert success\" id=\"agencySuccess\">\n          \u2705 Merci ! Votre demande a \u00e9t\u00e9 envoy\u00e9e. Nous vous contacterons d\u00e8s que possible.\n        <\/div>\n        <div class=\"agency-alert error\" id=\"agencyError\">\n          \u26a0\ufe0f V\u00e9rifiez les champs obligatoires et r\u00e9essayez.\n        <\/div>\n      <\/form>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function(){\n      const root = document.getElementById('agency-quote');\n      if(!root) return;\n\n      const packages = root.querySelectorAll('.agency-package');\n      const hiddenInput = root.querySelector('#selectedPackage');\n\n      const form = root.querySelector('#agencyQuoteForm');\n      const btn = root.querySelector('#agencySubmitBtn');\n      const success = root.querySelector('#agencySuccess');\n      const error = root.querySelector('#agencyError');\n\n      const urlEl = root.querySelector('#agencyPageUrl');\n      const uaEl = root.querySelector('#agencyUA');\n      if(urlEl) urlEl.value = window.location.href;\n      if(uaEl) uaEl.value = navigator.userAgent || '';\n\n      function clickOrEnter(el, fn){\n        el.addEventListener('click', fn);\n        el.addEventListener('keydown', (e)=>{ if(e.key === 'Enter' || e.key === ' ') { e.preventDefault(); fn(); } });\n      }\n\n      packages.forEach(pkg=>{\n        clickOrEnter(pkg, ()=>{\n          packages.forEach(p=>p.classList.remove('active'));\n          pkg.classList.add('active');\n          hiddenInput.value = pkg.dataset.package;\n        });\n      });\n\n      function isValidEmail(v){\n        return \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(String(v||'').trim());\n      }\n      function show(el){ if(el) el.style.display = 'block'; }\n      function hide(el){ if(el) el.style.display = 'none'; }\n\n      form.addEventListener('submit', async (e)=>{\n        e.preventDefault();\n        hide(success); hide(error);\n\n        const name = form.querySelector('#agencyName');\n        const email = form.querySelector('#agencyEmail');\n\n        let ok = true;\n        if(!hiddenInput.value){ ok = false; alert('Selecteer eerst een pakket.'); }\n        if(!name.value.trim()) ok = false;\n        if(!isValidEmail(email.value)) ok = false;\n\n        if(!ok){\n          show(error);\n          return;\n        }\n\n        btn.disabled = true;\n        const oldText = btn.textContent;\n        btn.textContent = 'Verzenden...';\n\n        try{\n          const payload = Object.fromEntries(new FormData(form).entries());\n\n          const res = await fetch('\/wp-json\/wo\/v1\/quote', {\n            method: 'POST',\n            headers: { 'Content-Type': 'application\/json' },\n            body: JSON.stringify(payload),\n            credentials: 'same-origin'\n          });\n\n          const data = await res.json().catch(()=> ({}));\n\n          if(res.ok && data && data.success){\n            form.reset();\n            hiddenInput.value = '';\n            packages.forEach(p=>p.classList.remove('active'));\n            show(success);\n          }else{\n            show(error);\n          }\n        }catch(err){\n          show(error);\n        }finally{\n          btn.disabled = false;\n          btn.textContent = oldText;\n        }\n      });\n    })();\n  <\/script>\n<\/section>\n\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>Packs Google Ads Service Google Ads Gestion professionnelle des campagnes, rapports clairs et optimisation continue \u2014 sans mauvaises surprises. Gestion d\u20191 campagne D\u00e9but D\u00e9but \u20ac249\/ mois \/ +TVA Pour les d\u00e9butants et les petites entreprises. Adapt\u00e9 aux entreprises avec un budget publicitaire de 100 \u20ac \u00e0 250 \u20ac. Gestion mensuelle d\u20191 campagne Analyse des mots-cl\u00e9s [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-2509","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/webontwerpers.be\/fr\/wp-json\/wp\/v2\/pages\/2509","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webontwerpers.be\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/webontwerpers.be\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/webontwerpers.be\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/webontwerpers.be\/fr\/wp-json\/wp\/v2\/comments?post=2509"}],"version-history":[{"count":9,"href":"https:\/\/webontwerpers.be\/fr\/wp-json\/wp\/v2\/pages\/2509\/revisions"}],"predecessor-version":[{"id":2520,"href":"https:\/\/webontwerpers.be\/fr\/wp-json\/wp\/v2\/pages\/2509\/revisions\/2520"}],"wp:attachment":[{"href":"https:\/\/webontwerpers.be\/fr\/wp-json\/wp\/v2\/media?parent=2509"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}