{"id":62552,"date":"2026-02-17T13:54:02","date_gmt":"2026-02-17T12:54:02","guid":{"rendered":"https:\/\/bjornlunden.com\/?page_id=62552"},"modified":"2026-08-06T14:55:54","modified_gmt":"2026-08-06T12:55:54","slug":"alexandra-test","status":"publish","type":"page","link":"https:\/\/bjornlunden.com\/dk\/alexandra-test\/","title":{"rendered":"Alexandra test"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"62552\" class=\"elementor elementor-62552\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-792006a e-flex e-con-boxed e-con e-parent\" data-id=\"792006a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5a45a90 e-flex e-con-boxed e-con e-parent\" data-id=\"5a45a90\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-148e928 elementor-widget elementor-widget-heading\" data-id=\"148e928\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Selection Tool<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-773a83c elementor-widget elementor-widget-html\" data-id=\"773a83c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n#ep-wizard *{box-sizing:border-box;margin:0;padding:0;}\r\n#ep-wizard{font-family:'Poppins',sans-serif;background:#fff;border-radius:16px;box-shadow:0 4px 32px rgba(32,32,32,0.08);max-width:680px;width:100%;padding:48px 48px 40px;margin:0 auto;color:#202020;}\r\n#ep-wizard .ep-progress-bar{height:4px;background:#f0f0f0;border-radius:4px;margin-bottom:8px;overflow:hidden;}\r\n#ep-wizard .ep-progress-fill{height:100%;background:#FFBB00;border-radius:4px;transition:width .4s ease;}\r\n#ep-wizard .ep-progress-label{font-size:12px;color:rgba(32,32,32,0.45);margin-bottom:32px;text-align:right;font-family:'Poppins',sans-serif;}\r\n#ep-wizard .ep-step{display:none;}\r\n#ep-wizard .ep-step.active{display:block;}\r\n#ep-wizard .ep-step > p{font-size:20px;font-weight:600;color:#202020;margin-bottom:20px;line-height:1.4;font-family:'Poppins',sans-serif;}\r\n#ep-wizard .ep-hint{font-size:13px!important;font-weight:400!important;color:rgba(32,32,32,0.45)!important;margin-bottom:16px!important;font-style:italic;}\r\n#ep-wizard label{display:block;position:relative;padding:13px 18px 13px 48px;margin-bottom:8px;border:1.5px solid #e2e8f0;border-radius:10px;cursor:pointer;font-size:15px;color:#202020;transition:border-color .15s,background .15s;line-height:1.4;font-family:'Poppins',sans-serif;font-weight:400;}\r\n#ep-wizard label:hover{border-color:#FFBB00;background:#FFFBF0;}\r\n#ep-wizard label input[type=\"radio\"],#ep-wizard label input[type=\"checkbox\"]{position:absolute;left:16px;top:50%;transform:translateY(-50%);accent-color:#FFBB00;width:18px;height:18px;cursor:pointer;}\r\n#ep-wizard .btn-container{display:flex;gap:12px;margin-top:28px;}\r\n#ep-wizard .next-btn{font-family:'Poppins',sans-serif;font-size:15px;font-weight:500;padding:12px 28px;border-radius:8px;border:none;cursor:pointer;background:#FFBB00;color:#202020;transition:background .2s;}\r\n#ep-wizard .next-btn:hover{background:#e6a800;}\r\n#ep-wizard .prev-btn{font-family:'Poppins',sans-serif;font-size:15px;font-weight:500;padding:12px 28px;border-radius:8px;border:1.5px solid #e2e8f0;cursor:pointer;background:transparent;color:#202020;transition:background .2s,border-color .2s;}\r\n#ep-wizard .prev-btn:hover{border-color:#FFBB00;background:#FFFBF0;}\r\n#ep-wizard #errormelding{display:none;color:#FF4009;font-size:13px;margin-top:12px;font-weight:500;}\r\n#ep-wizard #ep-result{display:none;text-align:center;}\r\n#ep-wizard .ep-result-icon{width:72px;height:72px;background:#FFEEC9;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:32px;}\r\n#ep-wizard .ep-result-badge{display:inline-block;background:#FFEEC9;color:#202020;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:6px 16px;border-radius:20px;margin-bottom:16px;font-family:'Poppins',sans-serif;}\r\n#ep-wizard #ep-result h2{font-size:28px;font-weight:700;margin-bottom:12px;font-family:'Poppins',sans-serif;}\r\n#ep-wizard .ep-result-desc{font-size:15px;color:rgba(32,32,32,0.65);line-height:1.7;max-width:460px;margin:0 auto 32px;font-family:'Poppins',sans-serif;}\r\n#ep-wizard .ep-result-cta{display:inline-block;background:#FFBB00;color:#202020;font-family:'Poppins',sans-serif;font-size:15px;font-weight:600;padding:14px 36px;border-radius:8px;text-decoration:none;transition:background .2s;}\r\n#ep-wizard .ep-result-cta:hover{background:#e6a800;}\r\n#ep-wizard .ep-restart{display:block;margin:16px auto 0;background:transparent;border:1.5px solid #e2e8f0;color:#202020;font-size:14px;padding:10px 24px;border-radius:8px;cursor:pointer;font-family:'Poppins',sans-serif;}\r\n#ep-wizard .ep-restart:hover{border-color:#FFBB00;background:#FFFBF0;}\r\n<\/style>\r\n\r\n<div id=\"ep-wizard\">\r\n  <div class=\"ep-progress-bar\"><div class=\"ep-progress-fill\" id=\"ep-fill\" style=\"width:20%\"><\/div><\/div>\r\n  <div class=\"ep-progress-label\" id=\"ep-plabel\">Sp\u00f8rgsm\u00e5l 1 af 5<\/div>\r\n\r\n  <form id=\"ep-form\">\r\n\r\n    <!-- Q1: Antal brugere -->\r\n    <div id=\"step1\" class=\"ep-step active\">\r\n      <p>Hvor mange personer forventer du vil bruge systemet?<\/p>\r\n      <label><input type=\"radio\" name=\"q1\" data-next-step=\"step2\" data-score=\"e2\"> 1\u201310<\/label>\r\n      <label><input type=\"radio\" name=\"q1\" data-next-step=\"step2\" data-score=\"e1q1\"> 11\u201350<\/label>\r\n      <label><input type=\"radio\" name=\"q1\" data-next-step=\"step2\" data-score=\"e1q2\"> 51\u2013100<\/label>\r\n      <label><input type=\"radio\" name=\"q1\" data-next-step=\"step2\" data-score=\"q3\"> Mere end 100<\/label>\r\n      <div class=\"btn-container\">\r\n        <button type=\"button\" class=\"next-btn\">N\u00e6ste<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Q2: Branche -->\r\n    <div id=\"step2\" class=\"ep-step\">\r\n      <p>Hvilke af f\u00f8lgende brancher er din virksomhed aktiv indenfor?<\/p>\r\n      <label><input type=\"radio\" name=\"q2\" data-next-step=\"step3\" data-score=\"e3\"> Byggeri, h\u00e5ndv\u00e6rkere &amp; konstruktion<\/label>\r\n      <label><input type=\"radio\" name=\"q2\" data-next-step=\"step3\" data-score=\"e2q1\"> Entrepren\u00f8r<\/label>\r\n      <label><input type=\"radio\" name=\"q2\" data-next-step=\"step3\" data-score=\"e3\"> Arkitekter &amp; ingeni\u00f8rer<\/label>\r\n      <label><input type=\"radio\" name=\"q2\" data-next-step=\"step3\" data-score=\"e2q1\"> R\u00e5dgivning &amp; konsulenter<\/label>\r\n      <label><input type=\"radio\" name=\"q2\" data-next-step=\"step3\" data-score=\"e3\"> Offentlige aktiviteter &amp; kommune<\/label>\r\n      <label><input type=\"radio\" name=\"q2\" data-next-step=\"step3\" data-score=\"e3\"> Hotel &amp; restaurant<\/label>\r\n      <label><input type=\"radio\" name=\"q2\" data-next-step=\"step3\" data-score=\"q3\"> IT\/SaaS<\/label>\r\n      <label><input type=\"radio\" name=\"q2\" data-next-step=\"step3\" data-score=\"q3\"> Fremstilling &amp; produktion<\/label>\r\n      <label><input type=\"radio\" name=\"q2\" data-next-step=\"step3\" data-score=\"\"> Anden branche<\/label>\r\n      <div class=\"btn-container\">\r\n        <button type=\"button\" class=\"prev-btn\">Tilbage<\/button>\r\n        <button type=\"button\" class=\"next-btn\">N\u00e6ste<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Q3: Anvendelsesomr\u00e5der (multi) -->\r\n    <div id=\"step3\" class=\"ep-step\">\r\n      <p>Hvilke af f\u00f8lgende anvendelsesomr\u00e5der har du brug for v\u00e6rkt\u00f8jet til?<\/p>\r\n      <p class=\"ep-hint\">V\u00e6lg alle der g\u00e6lder<\/p>\r\n      <label><input type=\"checkbox\" name=\"q3\" data-score=\"q1\"> Tidsregistrering<\/label>\r\n      <label><input type=\"checkbox\" name=\"q3\" data-score=\"e1\"> Projektstyring<\/label>\r\n      <label><input type=\"checkbox\" name=\"q3\" data-score=\"e1\"> Ressourceplanl\u00e6gning<\/label>\r\n      <label><input type=\"checkbox\" name=\"q3\" data-score=\"q1\"> Udl\u00e6g &amp; kilometergodtg\u00f8relse<\/label>\r\n      <label><input type=\"checkbox\" name=\"q3\" data-score=\"e1\"> Fakturering<\/label>\r\n      <label><input type=\"checkbox\" name=\"q3\" data-score=\"e1\"> \u00d8konomi &amp; budgettering<\/label>\r\n      <label><input type=\"checkbox\" name=\"q3\" data-score=\"q1\"> Ferie &amp; frav\u00e6rsstyring<\/label>\r\n      <div class=\"btn-container\">\r\n        <button type=\"button\" class=\"prev-btn\">Tilbage<\/button>\r\n        <button type=\"button\" class=\"next-btn\">N\u00e6ste<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Q4: V\u00e6rdier (multi) -->\r\n    <div id=\"step4\" class=\"ep-step\">\r\n      <p>Hvilke af f\u00f8lgende v\u00e6rdier er afg\u00f8rende for implementeringen?<\/p>\r\n      <p class=\"ep-hint\">V\u00e6lg alle der g\u00e6lder<\/p>\r\n      <label><input type=\"checkbox\" name=\"q4\" data-score=\"q1\"> Brugervenligt \u2014 minimal opl\u00e6ring<\/label>\r\n      <label><input type=\"checkbox\" name=\"q4\" data-score=\"q1\"> Integration med andre systemer<\/label>\r\n      <label><input type=\"checkbox\" name=\"q4\" data-score=\"e1\"> Leverand\u00f8ren skal have brancheerfaring<\/label>\r\n      <label><input type=\"checkbox\" name=\"q4\" data-score=\"\"> Mobile enheder \/ adgang p\u00e5 farten<\/label>\r\n      <label><input type=\"checkbox\" name=\"q4\" data-score=\"e1\"> Dansk support &amp; lokalt kendskab<\/label>\r\n      <div class=\"btn-container\">\r\n        <button type=\"button\" class=\"prev-btn\">Tilbage<\/button>\r\n        <button type=\"button\" class=\"next-btn\">N\u00e6ste<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Q5: Tidshorisont -->\r\n    <div id=\"step5\" class=\"ep-step\">\r\n      <p>Hvorn\u00e5r forventer du at have et nyt system p\u00e5 plads?<\/p>\r\n      <label><input type=\"radio\" name=\"q5\" data-score=\"q1\"> Inden for 1 m\u00e5ned<\/label>\r\n      <label><input type=\"radio\" name=\"q5\" data-score=\"\"> 1\u20133 m\u00e5neder<\/label>\r\n      <label><input type=\"radio\" name=\"q5\" data-score=\"\"> Mere end 3 m\u00e5neder<\/label>\r\n      <label><input type=\"radio\" name=\"q5\" data-score=\"\"> Ved ikke<\/label>\r\n      <div class=\"btn-container\">\r\n        <button type=\"button\" class=\"prev-btn\">Tilbage<\/button>\r\n        <button type=\"button\" class=\"next-btn\">Se anbefaling<\/button>\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/form>\r\n\r\n  <div id=\"errormelding\">Selecteer een optie voordat je verder gaat.<\/div>\r\n\r\n  <!-- Result -->\r\n  <div id=\"ep-result\">\r\n    <div class=\"ep-result-icon\">\u2b50<\/div>\r\n    <div class=\"ep-result-badge\">Vores anbefaling<\/div>\r\n    <h2 id=\"ep-rtitle\"><\/h2>\r\n    <p class=\"ep-result-desc\" id=\"ep-rdesc\"><\/p>\r\n    <a href=\"#\" id=\"ep-rcta\" class=\"ep-result-cta\"><\/a>\r\n    <button class=\"ep-restart\" id=\"ep-restart-btn\">Start forfra<\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<script>\r\nvar epStepOrder = ['step1','step2','step3','step4','step5'];\r\nvar epScores = {e:0, q:0};\r\n\r\nfunction epParseScore(str) {\r\n  var e=0, q=0;\r\n  if(!str) return {e:0,q:0};\r\n  var em = str.match(\/e(\\d+)\/); if(em) e=parseInt(em[1]);\r\n  var qm = str.match(\/q(\\d+)\/); if(qm) q=parseInt(qm[1]);\r\n  return {e:e, q:q};\r\n}\r\n\r\nfunction epGetActiveStep() {\r\n  return document.querySelector('#ep-wizard .ep-step.active');\r\n}\r\n\r\nfunction epShowStep(id) {\r\n  var steps = document.querySelectorAll('#ep-wizard .ep-step');\r\n  for(var i=0;i<steps.length;i++) steps[i].classList.remove('active');\r\n  document.getElementById(id).classList.add('active');\r\n  document.getElementById('errormelding').style.display='none';\r\n  var n = epStepOrder.indexOf(id)+1;\r\n  document.getElementById('ep-fill').style.width = (n\/5*100)+'%';\r\n  document.getElementById('ep-plabel').textContent = 'Sp\u00f8rgsm\u00e5l '+n+' af 5';\r\n}\r\n\r\nfunction epHasSelection(stepEl) {\r\n  var radios = stepEl.querySelectorAll('input[type=\"radio\"]:checked');\r\n  var checks = stepEl.querySelectorAll('input[type=\"checkbox\"]:checked');\r\n  return radios.length > 0 || checks.length > 0;\r\n}\r\n\r\nfunction epScoreStep(stepEl) {\r\n  var inputs = stepEl.querySelectorAll('input[type=\"radio\"]:checked, input[type=\"checkbox\"]:checked');\r\n  for(var i=0;i<inputs.length;i++){\r\n    var s = epParseScore(inputs[i].getAttribute('data-score'));\r\n    epScores.e += s.e;\r\n    epScores.q += s.q;\r\n  }\r\n}\r\n\r\nfunction epShowResult() {\r\n  document.getElementById('ep-form').style.display='none';\r\n  document.getElementById('errormelding').style.display='none';\r\n  document.getElementById('ep-result').style.display='block';\r\n  document.getElementById('ep-fill').style.width='100%';\r\n  document.getElementById('ep-plabel').textContent='Din anbefaling er klar';\r\n  var results = {\r\n    eazy: {title:'EazyProject', desc:'EazyProject er den ideelle l\u00f8sning for projektbaserede virksomheder som arkitekter, ingeni\u00f8rer, konsulenter og entrepren\u00f8rer. Du f\u00e5r fuld kontrol over projekter, ressourcer, tid og \u00f8konomi \u2013 alt i \u00e9t system.', url:'https:\/\/eazyproject.net', cta:'L\u00e6s mere om EazyProject'},\r\n    qbis:  {title:'QBIS', desc:'QBIS er den smarte l\u00f8sning til tidsregistrering, udl\u00e6gsh\u00e5ndtering og l\u00f8nforberedelse. Perfekt til virksomheder der \u00f8nsker et enkelt og effektivt system til at styre medarbejdernes tid og ressourcer.', url:'https:\/\/qbis.dk', cta:'L\u00e6s mere om QBIS'}\r\n  };\r\n  var w = epScores.e >= epScores.q ? 'eazy' : 'qbis';\r\n  var r = results[w];\r\n  document.getElementById('ep-rtitle').textContent = r.title;\r\n  document.getElementById('ep-rdesc').textContent  = r.desc;\r\n  document.getElementById('ep-rcta').textContent   = r.cta;\r\n  document.getElementById('ep-rcta').href          = r.url;\r\n}\r\n\r\n\/\/ Next buttons\r\nvar nextBtns = document.querySelectorAll('#ep-wizard .next-btn');\r\nfor(var i=0;i<nextBtns.length;i++){\r\n  nextBtns[i].addEventListener('click', function(){\r\n    var stepEl = epGetActiveStep();\r\n    if(!epHasSelection(stepEl)){\r\n      document.getElementById('errormelding').style.display='block';\r\n      return;\r\n    }\r\n    epScoreStep(stepEl);\r\n    var stepId = stepEl.id;\r\n    \/\/ For radio steps, read data-next-step from checked input\r\n    var checked = stepEl.querySelector('input[type=\"radio\"]:checked');\r\n    var nextId = checked ? checked.getAttribute('data-next-step') : null;\r\n    \/\/ For checkbox steps, determine next step manually\r\n    if(!nextId){\r\n      var idx = epStepOrder.indexOf(stepId);\r\n      if(idx < epStepOrder.length-1) nextId = epStepOrder[idx+1];\r\n    }\r\n    if(nextId) {\r\n      epShowStep(nextId);\r\n    } else {\r\n      epShowResult();\r\n    }\r\n  });\r\n}\r\n\r\n\/\/ Prev buttons\r\nvar prevBtns = document.querySelectorAll('#ep-wizard .prev-btn');\r\nfor(var i=0;i<prevBtns.length;i++){\r\n  prevBtns[i].addEventListener('click', function(){\r\n    var stepEl = epGetActiveStep();\r\n    \/\/ clear selections on current step\r\n    var inputs = stepEl.querySelectorAll('input');\r\n    for(var j=0;j<inputs.length;j++) inputs[j].checked=false;\r\n    \/\/ find prev step\r\n    var idx = epStepOrder.indexOf(stepEl.id);\r\n    if(idx > 0) epShowStep(epStepOrder[idx-1]);\r\n    \/\/ reset scores and re-score remaining answered steps (simple: just reset fully, user re-answers forward)\r\n    epScores = {e:0, q:0};\r\n  });\r\n}\r\n\r\n\/\/ Restart\r\ndocument.getElementById('ep-restart-btn').addEventListener('click', function(){\r\n  epScores = {e:0, q:0};\r\n  var inputs = document.querySelectorAll('#ep-wizard input');\r\n  for(var i=0;i<inputs.length;i++) inputs[i].checked=false;\r\n  document.getElementById('ep-form').style.display='block';\r\n  document.getElementById('ep-result').style.display='none';\r\n  document.getElementById('errormelding').style.display='none';\r\n  epShowStep('step1');\r\n});\r\n<\/script>\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-469bede e-flex e-con-boxed e-con e-parent\" data-id=\"469bede\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1e143c6 elementor-widget elementor-widget-html\" data-id=\"1e143c6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- ============================================================\r\n     Faktureringsgrad-beregner | EazyProject \/ Bjorn Lunden\r\n     Til Elementor: indsaet hele denne blok i en \"HTML\"-widget.\r\n\r\n     - Alle klasser, id'er og variabler er praefikset med \"ffg-\".\r\n     - Hver CSS-regel er scopet til .ffg-calc, saa temaets egne regler\r\n       (fx \"p { margin: 0 }\") ikke kan fjerne afstandene.\r\n     - TODO: erstat console.log i submit() med POST til HubSpot Forms API.\r\n     ============================================================ -->\r\n\r\n<!-- Fjern denne linje, hvis temaet allerede indlaeser Poppins -->\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Poppins:wght@400;500;600;700&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n  .ffg-calc {\r\n    --ffg-solsken: #FFBB00;\r\n    --ffg-natt: #202020;\r\n    --ffg-paper: #FFFFFF;\r\n    --ffg-line: #ECECEC;\r\n    --ffg-muted: #C9A24B;\r\n    --ffg-grey-text: #7A7A7A;\r\n    --ffg-soft: #FFFBF0;\r\n  }\r\n\r\n  .ffg-calc * {\r\n    margin: 0; padding: 0; box-sizing: border-box;\r\n  }\r\n\r\n  .ffg-calc {\r\n    font-family: 'Poppins', -apple-system, sans-serif;\r\n    background: var(--ffg-solsken);\r\n    color: var(--ffg-natt);\r\n    line-height: 1.5;\r\n    display: flex;\r\n    justify-content: center;\r\n    padding: 28px 16px;\r\n  }\r\n\r\n  .ffg-calc .ffg-card {\r\n    background: var(--ffg-paper);\r\n    border-radius: 24px;\r\n    max-width: 960px;\r\n    width: 100%;\r\n    padding: 44px 52px 46px;\r\n  }\r\n\r\n  @media (max-width: 640px) {\r\n    .ffg-calc .ffg-card {\r\n      padding: 30px 22px 34px;\r\n    }\r\n  }\r\n\r\n  .ffg-calc .ffg-eyebrow {\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    color: var(--ffg-muted);\r\n    text-transform: uppercase;\r\n    letter-spacing: 0.06em;\r\n    margin-bottom: 6px;\r\n  }\r\n\r\n  .ffg-calc h1 {\r\n    font-size: clamp(20px, 3.2vw, 26px);\r\n    font-weight: 700;\r\n    line-height: 1.3;\r\n    margin-bottom: 8px;\r\n  }\r\n\r\n  .ffg-calc .ffg-intro {\r\n    font-size: 14.5px;\r\n    color: var(--ffg-grey-text);\r\n    line-height: 1.6;\r\n    margin-bottom: 40px;\r\n    max-width: 64ch;\r\n  }\r\n\r\n  .ffg-calc .ffg-grid {\r\n    display: grid;\r\n    grid-template-columns: 1fr 1fr;\r\n    gap: 30px 52px;\r\n  }\r\n\r\n  @media (max-width: 760px) {\r\n    .ffg-calc .ffg-grid {\r\n      grid-template-columns: 1fr; gap: 32px;\r\n    }\r\n  }\r\n\r\n  .ffg-calc .ffg-field {\r\n    margin-bottom: 30px;\r\n  }\r\n\r\n  .ffg-calc .ffg-field:last-child {\r\n    margin-bottom: 0;\r\n  }\r\n\r\n  .ffg-calc .ffg-field__row {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    align-items: baseline;\r\n    margin-bottom: 12px;\r\n    gap: 14px;\r\n  }\r\n\r\n  .ffg-calc .ffg-field__label {\r\n    font-size: 14.5px; font-weight: 500; line-height: 1.4;\r\n  }\r\n\r\n  .ffg-calc .ffg-field__value {\r\n    font-size: 15px;\r\n    font-weight: 600;\r\n    border: 1px solid var(--ffg-line);\r\n    border-radius: 10px;\r\n    padding: 3px 12px;\r\n    min-width: 84px;\r\n    text-align: right;\r\n    font-variant-numeric: tabular-nums;\r\n    white-space: nowrap;\r\n  }\r\n\r\n  .ffg-calc input[type=\"range\"] {\r\n    display: block;\r\n    width: 100%;\r\n    -webkit-appearance: none;\r\n    appearance: none;\r\n    height: 8px;\r\n    border-radius: 999px;\r\n    background: var(--ffg-line);\r\n    outline: none;\r\n    cursor: pointer;\r\n    touch-action: none;\r\n    position: relative;\r\n    z-index: 1;\r\n    margin: 4px 0;\r\n  }\r\n\r\n  .ffg-calc input[type=\"range\"]::-webkit-slider-runnable-track {\r\n    height: 8px;\r\n    border-radius: 999px;\r\n    background: transparent;\r\n  }\r\n\r\n  .ffg-calc input[type=\"range\"]::-moz-range-track {\r\n    height: 8px;\r\n    border-radius: 999px;\r\n    background: transparent;\r\n  }\r\n\r\n  .ffg-calc input[type=\"range\"]::-webkit-slider-thumb {\r\n    -webkit-appearance: none;\r\n    appearance: none;\r\n    width: 26px;\r\n    height: 26px;\r\n    margin-top: -9px;\r\n    border-radius: 50%;\r\n    background: var(--ffg-solsken);\r\n    border: 2px solid var(--ffg-paper);\r\n    box-shadow: 0 0 0 1.5px var(--ffg-natt);\r\n    cursor: grab;\r\n    transition: transform 0.1s ease;\r\n  }\r\n\r\n  .ffg-calc input[type=\"range\"]:active::-webkit-slider-thumb {\r\n    cursor: grabbing; transform: scale(1.08);\r\n  }\r\n\r\n  .ffg-calc input[type=\"range\"]::-webkit-slider-thumb:hover {\r\n    transform: scale(1.1);\r\n  }\r\n\r\n  .ffg-calc input[type=\"range\"]::-moz-range-thumb {\r\n    width: 26px;\r\n    height: 26px;\r\n    border-radius: 50%;\r\n    background: var(--ffg-solsken);\r\n    border: 2px solid var(--ffg-paper);\r\n    box-shadow: 0 0 0 1.5px var(--ffg-natt);\r\n    cursor: grab;\r\n  }\r\n\r\n  .ffg-calc input[type=\"range\"]:focus-visible {\r\n    outline: 3px solid var(--ffg-solsken);\r\n    outline-offset: 4px;\r\n  }\r\n\r\n  .ffg-calc .ffg-field__hint {\r\n    margin-top: 10px;\r\n    font-size: 12.5px;\r\n    color: var(--ffg-grey-text);\r\n  }\r\n\r\n  .ffg-calc .ffg-field select {\r\n    font-family: 'Poppins', sans-serif;\r\n    font-size: 14.5px;\r\n    padding: 12px 15px;\r\n    border: 1px solid var(--ffg-line);\r\n    border-radius: 10px;\r\n    width: 100%;\r\n    background: var(--ffg-paper);\r\n    color: var(--ffg-natt);\r\n    cursor: pointer;\r\n  }\r\n\r\n  .ffg-calc .ffg-field select:focus {\r\n    outline: none;\r\n    border-color: var(--ffg-natt);\r\n  }\r\n\r\n  .ffg-calc .ffg-result__label {\r\n    font-size: 13px;\r\n    font-weight: 600;\r\n    text-transform: uppercase;\r\n    letter-spacing: 0.06em;\r\n    color: var(--ffg-muted);\r\n    margin-bottom: 4px;\r\n  }\r\n\r\n  .ffg-calc .ffg-result__big {\r\n    font-size: clamp(36px, 5.5vw, 48px);\r\n    font-weight: 700;\r\n    line-height: 1.05;\r\n    margin-bottom: 4px;\r\n    font-variant-numeric: tabular-nums;\r\n  }\r\n\r\n  .ffg-calc .ffg-result__sub {\r\n    font-size: 14px;\r\n    color: var(--ffg-grey-text);\r\n    margin-bottom: 24px;\r\n  }\r\n\r\n  .ffg-calc .ffg-detail {\r\n    position: relative;\r\n    border: 1px solid var(--ffg-line);\r\n    border-radius: 12px;\r\n    overflow: hidden;\r\n    margin-bottom: 22px;\r\n  }\r\n\r\n  .ffg-calc .ffg-detail__rows {\r\n    padding: 6px 22px;\r\n  }\r\n\r\n  .ffg-calc .ffg-detail__rows div {\r\n    display: flex;\r\n    justify-content: space-between;\r\n    gap: 18px;\r\n    padding: 13px 0;\r\n    font-size: 14px;\r\n  }\r\n\r\n  .ffg-calc .ffg-detail__rows div + div {\r\n    border-top: 1px solid var(--ffg-line);\r\n  }\r\n\r\n  .ffg-calc .ffg-detail__rows strong {\r\n    font-variant-numeric: tabular-nums; white-space: nowrap;\r\n  }\r\n\r\n  .ffg-calc .ffg-detail__rows .ffg-detail__insight {\r\n    display: block;\r\n    background: var(--ffg-soft);\r\n    margin: 0 -22px;\r\n    padding: 14px 22px;\r\n    font-size: 13.5px;\r\n    font-weight: 500;\r\n    line-height: 1.5;\r\n  }\r\n\r\n  .ffg-calc .ffg-detail.ffg-locked .ffg-detail__rows {\r\n    filter: blur(7px);\r\n    user-select: none;\r\n    pointer-events: none;\r\n  }\r\n\r\n  .ffg-calc .ffg-detail.ffg-locked .ffg-detail__extra {\r\n    display: none;\r\n  }\r\n\r\n  .ffg-calc .ffg-detail__overlay {\r\n    position: absolute;\r\n    inset: 0;\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n    background: rgba(255,255,255,0.35);\r\n  }\r\n\r\n  .ffg-calc .ffg-detail:not(.ffg-locked) .ffg-detail__overlay {\r\n    display: none;\r\n  }\r\n\r\n  .ffg-calc .ffg-detail__lock {\r\n    background: var(--ffg-natt);\r\n    color: var(--ffg-paper);\r\n    font-size: 13px;\r\n    font-weight: 500;\r\n    border-radius: 999px;\r\n    padding: 8px 18px;\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 8px;\r\n  }\r\n\r\n  .ffg-calc .ffg-gate {\r\n    background: var(--ffg-soft);\r\n    border: 1px solid var(--ffg-solsken);\r\n    border-radius: 12px;\r\n    padding: 24px;\r\n  }\r\n\r\n  .ffg-calc .ffg-gate h3 {\r\n    font-size: 15.5px; font-weight: 600; margin-bottom: 6px;\r\n  }\r\n\r\n  .ffg-calc .ffg-gate__desc {\r\n    font-size: 13.5px;\r\n    color: var(--ffg-grey-text);\r\n    line-height: 1.55;\r\n    margin-bottom: 18px;\r\n  }\r\n\r\n  .ffg-calc .ffg-gate__fields {\r\n    display: flex; flex-direction: column; gap: 11px; margin-bottom: 14px;\r\n  }\r\n\r\n  .ffg-calc .ffg-gate__fields input, .ffg-calc .ffg-gate__fields select {\r\n    font-family: 'Poppins', sans-serif;\r\n    font-size: 14px;\r\n    padding: 12px 15px;\r\n    border: 1px solid var(--ffg-line);\r\n    border-radius: 10px;\r\n    width: 100%;\r\n    background: var(--ffg-paper);\r\n    color: var(--ffg-natt);\r\n  }\r\n\r\n  .ffg-calc .ffg-gate__fields input:focus, .ffg-calc .ffg-gate__fields select:focus {\r\n    outline: none;\r\n    border-color: var(--ffg-natt);\r\n  }\r\n\r\n  .ffg-calc .ffg-btn {\r\n    font-family: 'Poppins', sans-serif;\r\n    font-size: 15px;\r\n    font-weight: 600;\r\n    background: var(--ffg-solsken);\r\n    color: var(--ffg-natt);\r\n    border: none;\r\n    border-radius: 10px;\r\n    padding: 13px 28px;\r\n    cursor: pointer;\r\n    width: 100%;\r\n    transition: filter 0.15s ease, transform 0.1s ease;\r\n  }\r\n\r\n  .ffg-calc .ffg-btn:hover {\r\n    filter: brightness(0.96); transform: translateY(-1px);\r\n  }\r\n\r\n  .ffg-calc .ffg-btn:focus-visible {\r\n    outline: 3px solid var(--ffg-natt); outline-offset: 3px;\r\n  }\r\n\r\n  .ffg-calc .ffg-btn--inline {\r\n    width: auto;\r\n  }\r\n\r\n  .ffg-calc .ffg-gate__privacy {\r\n    font-size: 8.5px;\r\n    color: var(--ffg-grey-text);\r\n    margin-top: 14px;\r\n    line-height: 1.5;\r\n  }\r\n\r\n  .ffg-calc .ffg-error {\r\n    display: none;\r\n    font-size: 13px;\r\n    color: #C0392B;\r\n    margin-top: 10px;\r\n  }\r\n\r\n  .ffg-calc .ffg-unlocked {\r\n    display: none;\r\n    margin-top: 24px;\r\n    padding-top: 20px;\r\n    border-top: 1px solid var(--ffg-line);\r\n    align-items: center;\r\n    gap: 12px 28px;\r\n    flex-wrap: wrap;\r\n  }\r\n\r\n  .ffg-calc .ffg-unlocked > p {\r\n    font-size: 13.5px;\r\n    line-height: 1.55;\r\n    flex: 1 1 260px;\r\n    min-width: 0;\r\n  }\r\n\r\n  .ffg-calc .ffg-unlocked strong {\r\n    font-weight: 600;\r\n  }\r\n\r\n  .ffg-calc .ffg-value {\r\n    display: none;\r\n    margin-top: 22px;\r\n    background: var(--ffg-soft);\r\n    border: 1px solid var(--ffg-solsken);\r\n    border-radius: 14px;\r\n    padding: 26px 28px 24px;\r\n  }\r\n\r\n  .ffg-calc .ffg-value__head {\r\n    margin-bottom: 22px;\r\n  }\r\n\r\n  .ffg-calc .ffg-value__head h3 {\r\n    font-size: 16px;\r\n    font-weight: 600;\r\n    margin-bottom: 5px;\r\n  }\r\n\r\n  .ffg-calc .ffg-value__head p {\r\n    font-size: 13px;\r\n    color: var(--ffg-grey-text);\r\n    line-height: 1.6;\r\n    max-width: 78ch;\r\n  }\r\n\r\n  .ffg-calc .ffg-value__list {\r\n    display: grid;\r\n    grid-template-columns: repeat(3, 1fr);\r\n    gap: 22px 36px;\r\n    padding-bottom: 20px;\r\n    margin-bottom: 20px;\r\n    border-bottom: 1px solid rgba(255,187,0,0.5);\r\n  }\r\n\r\n  @media (max-width: 700px) {\r\n    .ffg-calc .ffg-value__list {\r\n      grid-template-columns: 1fr; gap: 18px;\r\n    }\r\n\r\n    .ffg-calc .ffg-value {\r\n      padding: 22px 20px;\r\n    }\r\n  }\r\n\r\n  .ffg-calc .ffg-value__item h4 {\r\n    font-size: 13.5px;\r\n    font-weight: 600;\r\n    line-height: 1.45;\r\n    margin-bottom: 6px;\r\n    text-decoration: underline;\r\n    text-decoration-color: var(--ffg-solsken);\r\n    text-decoration-thickness: 2px;\r\n    text-underline-offset: 4px;\r\n  }\r\n\r\n  .ffg-calc .ffg-value__item p {\r\n    font-size: 12.5px;\r\n    color: var(--ffg-grey-text);\r\n    line-height: 1.55;\r\n  }\r\n\r\n  .ffg-calc .ffg-value__cta {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 24px;\r\n    flex-wrap: wrap;\r\n  }\r\n\r\n  .ffg-calc .ffg-value__perks {\r\n    list-style: none;\r\n    display: grid;\r\n    gap: 7px;\r\n    flex: 1 1 300px;\r\n    min-width: 0;\r\n  }\r\n\r\n  .ffg-calc .ffg-value__perks li {\r\n    position: relative;\r\n    padding-left: 20px;\r\n    font-size: 12.5px;\r\n    color: var(--ffg-grey-text);\r\n    line-height: 1.45;\r\n  }\r\n\r\n  .ffg-calc .ffg-value__perks li::before {\r\n    content: \"\u2713\";\r\n    position: absolute;\r\n    left: 0;\r\n    top: 0;\r\n    font-size: 11.5px;\r\n    font-weight: 700;\r\n    color: var(--ffg-natt);\r\n  }\r\n\r\n  @media (max-width: 560px) {\r\n    .ffg-calc .ffg-value__cta {\r\n      gap: 18px;\r\n    }\r\n\r\n    .ffg-calc .ffg-btn--inline {\r\n      width: 100%;\r\n    }\r\n  }\r\n\r\n  .ffg-calc .ffg-sysq {\r\n    flex: 2 1 420px;\r\n    min-width: 0;\r\n  }\r\n\r\n  @media (max-width: 700px) {\r\n    .ffg-calc .ffg-sysq {\r\n      padding-top: 14px; border-top: 1px solid var(--ffg-line);\r\n    }\r\n  }\r\n\r\n  .ffg-calc .ffg-sysq__ask {\r\n    display: flex;\r\n    align-items: center;\r\n    gap: 14px;\r\n    flex-wrap: wrap;\r\n  }\r\n\r\n  .ffg-calc .ffg-sysq__label {\r\n    font-size: 13px;\r\n    line-height: 1.5;\r\n    flex: 1 1 240px;\r\n    min-width: 0;\r\n  }\r\n\r\n  .ffg-calc .ffg-sysq__select {\r\n    font-family: 'Poppins', sans-serif;\r\n    font-size: 13px;\r\n    padding: 10px 14px;\r\n    border: 1px solid var(--ffg-line);\r\n    border-radius: 10px;\r\n    background: var(--ffg-paper);\r\n    color: var(--ffg-natt);\r\n    cursor: pointer;\r\n    flex: 0 1 190px;\r\n  }\r\n\r\n  .ffg-calc .ffg-sysq__select:focus {\r\n    outline: none;\r\n    border-color: var(--ffg-natt);\r\n  }\r\n\r\n  .ffg-calc .ffg-chip {\r\n    font-family: 'Poppins', sans-serif;\r\n    font-size: 12.5px;\r\n    font-weight: 500;\r\n    background: var(--ffg-paper);\r\n    border: 1px solid var(--ffg-line);\r\n    border-radius: 999px;\r\n    padding: 7px 14px;\r\n    cursor: pointer;\r\n    transition: border-color 0.15s ease, background 0.15s ease;\r\n  }\r\n\r\n  .ffg-calc .ffg-chip:hover {\r\n    border-color: var(--ffg-natt);\r\n  }\r\n\r\n  .ffg-calc .ffg-chip:focus-visible {\r\n    outline: 3px solid var(--ffg-solsken); outline-offset: 2px;\r\n  }\r\n\r\n  .ffg-calc .ffg-sysq__thanks {\r\n    display: none; font-size: 13.5px; font-weight: 500;\r\n  }\r\n\r\n  .ffg-calc .ffg-foot {\r\n    margin-top: 32px;\r\n    padding-top: 20px;\r\n    border-top: 1px solid var(--ffg-line);\r\n    font-size: 12px;\r\n    color: var(--ffg-grey-text);\r\n    display: flex;\r\n    justify-content: space-between;\r\n    gap: 12px;\r\n    flex-wrap: wrap;\r\n  }\r\n\r\n  @media (prefers-reduced-motion: reduce) {\r\n    .ffg-calc * {\r\n      transition: none !important;\r\n    }\r\n  }\r\n<\/style>\r\n\r\n<div class=\"ffg-calc\">\r\n<div class=\"ffg-card\">\r\n  <div class=\"ffg-eyebrow\">Gratis beregner<\/div>\r\n  <h1>Er jeres faktureringsgrad h\u00f8j nok?<\/h1>\r\n  <p class=\"ffg-intro\">S\u00e6t jeres egne tal ind og se med det samme, hvor meget oms\u00e6tning der ligger gemt i jeres ikke-fakturerede timer. Det tager 30 sekunder.<\/p>\r\n\r\n  <div class=\"ffg-grid\">\r\n    <!-- Left: sliders -->\r\n    <div>\r\n      <div class=\"ffg-field\">\r\n        <div class=\"ffg-field__row\">\r\n          <label class=\"ffg-field__label\" for=\"ffg-industry\">Jeres branche<\/label>\r\n        <\/div>\r\n        <select id=\"ffg-industry\">\r\n          <option value=\"\" selected disabled>V\u00e6lg branche<\/option>\r\n          <option value=\"Arkitekter\" data-target=\"72\" data-hint=\"Tegnestuer ligger typisk p\u00e5 70\u201375 %\">Arkitekter<\/option>\r\n          <option value=\"Ingeni\u00f8rer\" data-target=\"75\" data-hint=\"R\u00e5dgivende ingeni\u00f8rer ligger typisk p\u00e5 72\u201378 %\">Ingeni\u00f8rer<\/option>\r\n          <option value=\"Konsulenter og r\u00e5dgivere\" data-target=\"78\" data-hint=\"Konsulenthuse ligger typisk p\u00e5 75\u201380 %\">Konsulenter og r\u00e5dgivere<\/option>\r\n          <option value=\"Anden projektbaseret virksomhed\" data-target=\"75\" data-hint=\"Projektbaserede virksomheder ligger typisk p\u00e5 70\u201380 %\">Anden projektbaseret virksomhed<\/option>\r\n        <\/select>\r\n        <div class=\"ffg-field__hint\" id=\"ffg-industryHint\">Vi tilpasser m\u00e5let efter jeres branche<\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ffg-field\">\r\n        <div class=\"ffg-field__row\">\r\n          <label class=\"ffg-field__label\" for=\"ffg-emp\">Antal medarbejdere<\/label>\r\n          <span class=\"ffg-field__value\" id=\"ffg-empVal\">10<\/span>\r\n        <\/div>\r\n        <input type=\"range\" id=\"ffg-emp\" min=\"1\" max=\"100\" value=\"10\" step=\"1\">\r\n        <div class=\"ffg-field__hint\">Medarbejdere, der arbejder p\u00e5 projekter<\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ffg-field\">\r\n        <div class=\"ffg-field__row\">\r\n          <label class=\"ffg-field__label\" for=\"ffg-rate\">Gennemsnitlig timepris<\/label>\r\n          <span class=\"ffg-field__value\" id=\"ffg-rateVal\">850 kr.<\/span>\r\n        <\/div>\r\n        <input type=\"range\" id=\"ffg-rate\" min=\"300\" max=\"2000\" value=\"850\" step=\"25\">\r\n        <div class=\"ffg-field__hint\">Den pris, I i gennemsnit fakturerer pr. time<\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ffg-field\">\r\n        <div class=\"ffg-field__row\">\r\n          <label class=\"ffg-field__label\" for=\"ffg-current\">Faktureringsgrad i dag<\/label>\r\n          <span class=\"ffg-field__value\" id=\"ffg-currentVal\">62 %<\/span>\r\n        <\/div>\r\n        <input type=\"range\" id=\"ffg-current\" min=\"30\" max=\"95\" value=\"62\" step=\"1\">\r\n        <div class=\"ffg-field__hint\">Den del af arbejdstiden, I fakturerer i dag<\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ffg-field\">\r\n        <div class=\"ffg-field__row\">\r\n          <label class=\"ffg-field__label\" for=\"ffg-target\">Jeres m\u00e5l<\/label>\r\n          <span class=\"ffg-field__value\" id=\"ffg-targetVal\">75 %<\/span>\r\n        <\/div>\r\n        <input type=\"range\" id=\"ffg-target\" min=\"30\" max=\"95\" value=\"75\" step=\"1\">\r\n        <div class=\"ffg-field__hint\">Realistisk niveau i branchen: 70 til 80 %<\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- Right: result -->\r\n    <div>\r\n      <div class=\"ffg-result__label\">Tabt oms\u00e6tning pr. \u00e5r<\/div>\r\n      <div class=\"ffg-result__big\" id=\"ffg-lost\" aria-live=\"polite\">0 kr.<\/div>\r\n      <div class=\"ffg-result__sub\" id=\"ffg-lostSub\">i forhold til jeres m\u00e5l<\/div>\r\n\r\n      <div class=\"ffg-detail ffg-locked\" id=\"ffg-detail\">\r\n        <div class=\"ffg-detail__rows\">\r\n          <div><span>Tabt oms\u00e6tning pr. m\u00e5ned<\/span><strong id=\"ffg-perMonth\">000.000 kr.<\/strong><\/div>\r\n          <div><span>V\u00e6rdi pr. procentpoint faktureringsgrad<\/span><strong id=\"ffg-perPoint\">000.000 kr.<\/strong><\/div>\r\n          <div><span>Ikke-fakturerede timer pr. \u00e5r<\/span><strong id=\"ffg-hoursRow\">0.000 timer<\/strong><\/div>\r\n          <div class=\"ffg-detail__extra\"><span>Det svarer til<\/span><strong id=\"ffg-fteRow\">0,0 \u00e5rsv\u00e6rk<\/strong><\/div>\r\n          <div class=\"ffg-detail__extra\"><span>Tabt oms\u00e6tning pr. medarbejder pr. \u00e5r<\/span><strong id=\"ffg-perEmp\">000.000 kr.<\/strong><\/div>\r\n          <div class=\"ffg-detail__extra\"><span>Forts\u00e6tter det u\u00e6ndret i 5 \u00e5r<\/span><strong id=\"ffg-fiveYear\">0.000.000 kr.<\/strong><\/div>\r\n          <div class=\"ffg-detail__insight ffg-detail__extra\"><span id=\"ffg-insight\">Bare 3 procentpoint mere ville give jer 000.000 kr. om \u00e5ret.<\/span><\/div>\r\n        <\/div>\r\n        <div class=\"ffg-detail__overlay\">\r\n          <span class=\"ffg-detail__lock\">Se hele beregningen herunder<\/span>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"ffg-gate\" id=\"ffg-gate\">\r\n        <h3>Vil du se hele regnestykket?<\/h3>\r\n        <p class=\"ffg-gate__desc\">S\u00e5 folder vi hele beregningen ud her p\u00e5 siden, blandt andet hvad tabet svarer til i \u00e5rsv\u00e6rk, pr. medarbejder og over 5 \u00e5r.<\/p>\r\n        <div class=\"ffg-gate__fields\">\r\n          <input type=\"text\" id=\"ffg-name\" placeholder=\"Dit navn\" autocomplete=\"name\">\r\n          <input type=\"text\" id=\"ffg-company\" placeholder=\"Virksomhed\" autocomplete=\"organization\">\r\n          <input type=\"email\" id=\"ffg-email\" placeholder=\"Din arbejdsmail\" autocomplete=\"email\">\r\n        <\/div>\r\n        <button class=\"ffg-btn\" id=\"ffg-unlock\">Vis mig hele beregningen<\/button>\r\n        <div class=\"ffg-error\" id=\"ffg-formError\">Udfyld venligst alle felter, og tjek, at mailen er korrekt.<\/div>\r\n        <p class=\"ffg-gate__privacy\">Ved at klikke accepterer du, at Bjorn Lunden behandler dine oplysninger og m\u00e5 kontakte dig om relevante l\u00f8sninger til tidsregistrering og projektstyring. Du kan til enhver tid framelde dig. L\u00e6s mere i vores <a href=\"https:\/\/bjornlunden.com\/dk\/persondatapolitik\/\" style=\"color:inherit; text-decoration:underline;\">persondatapolitik<\/a>.<\/p>\r\n      <\/div>\r\n\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"ffg-unlocked\" id=\"ffg-unlockedBox\">\r\n    <p id=\"ffg-unlockedText\"><strong>Her er hele regnestykket.<\/strong> Du kan stadig justere tallene herover, s\u00e5 f\u00f8lger beregningen med.<\/p>\r\n    <div class=\"ffg-sysq\" id=\"ffg-sysq\">\r\n      <div class=\"ffg-sysq__ask\" id=\"ffg-sysqAsk\">\r\n        <label class=\"ffg-sysq__label\" for=\"ffg-sysqSelect\">\u00c9n ting til, helt frivilligt: Hvad bruger I til tidsregistrering i dag?<\/label>\r\n        <select class=\"ffg-sysq__select\" id=\"ffg-sysqSelect\">\r\n          <option value=\"\" selected disabled>V\u00e6lg system<\/option>\r\n          <option value=\"AutoPilot\">AutoPilot<\/option>\r\n          <option value=\"TimeLog\">TimeLog<\/option>\r\n          <option value=\"Milient\">Milient<\/option>\r\n          <option value=\"Intempus\">Intempus<\/option>\r\n          <option value=\"Excel\/regneark\">Excel\/regneark<\/option>\r\n          <option value=\"Ikke noget fast\">Ikke noget fast<\/option>\r\n          <option value=\"Andet system\">Andet system<\/option>\r\n        <\/select>\r\n      <\/div>\r\n      <p class=\"ffg-sysq__thanks\" id=\"ffg-sysqThanks\">Tak! Det hj\u00e6lper os med at forst\u00e5, hvad branchen bruger i dag. \ud83d\udc3b<\/p>\r\n      <div id=\"ffg-sysqOther\" style=\"display:none;\">\r\n        <div style=\"display:flex; gap:8px; max-width:360px;\">\r\n          <input type=\"text\" id=\"ffg-sysqOtherInput\" placeholder=\"Hvilket system?\" style=\"flex:1; min-width:0; font-family:'Poppins',sans-serif; font-size:13px; padding:10px 14px; border:1px solid var(--ffg-line); border-radius:10px;\">\r\n          <button class=\"ffg-chip\" id=\"ffg-sysqOtherSend\" style=\"border-color: var(--ffg-natt);\">Send<\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"ffg-value\" id=\"ffg-valueBlock\">\r\n    <div class=\"ffg-value__head\">\r\n      <h3>S\u00e5dan lukker EazyProject hullet<\/h3>\r\n      <p>De timer, I mangler, er sj\u00e6ldent timer, I ikke har arbejdet. De n\u00e5ede bare aldrig frem til en faktura. Pr\u00f8v det p\u00e5 jeres egne projekter i 14 dage.<\/p>\r\n    <\/div>\r\n\r\n    <div class=\"ffg-value__list\">\r\n      <div class=\"ffg-value__item\">\r\n        <h4>Timer registreret med det samme<\/h4>\r\n        <p>Ogs\u00e5 fra mobilen, s\u00e5 de sm\u00e5 opgaver ikke forsvinder inden fredag.<\/p>\r\n      <\/div>\r\n      <div class=\"ffg-value__item\">\r\n        <h4>Faktureringsgraden l\u00f8bende<\/h4>\r\n        <p>F\u00f8lg den pr. medarbejder og projekt, mens der stadig er tid til at rette op.<\/p>\r\n      <\/div>\r\n      <div class=\"ffg-value__item\">\r\n        <h4>Ekstraarbejde med p\u00e5 fakturaen<\/h4>\r\n        <p>Alle timer h\u00f8rer til et projekt og en fase, s\u00e5 I kan se, hvad der ligger ud over aftalen.<\/p>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"ffg-value__cta\">\r\n      <button class=\"ffg-btn ffg-btn--inline\" onclick=\"window.location.href='https:\/\/www.bjornlunden.com\/dk\/'\">Pr\u00f8v EazyProject gratis<\/button>\r\n      <ul class=\"ffg-value__perks\">\r\n        <li>Afpr\u00f8v demoen uden binding. Ingen registrering af betalingskort p\u00e5kr\u00e6vet.<\/li>\r\n        <li>Du modtager automatisk en e-mail med dine loginoplysninger.<\/li>\r\n        <li>Adgang til alle funktioner og ubegr\u00e6nset teknisk support under hele pr\u00f8veperioden.<\/li>\r\n      <\/ul>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"ffg-foot\">\r\n    <span>Beregningen antager 1.600 disponible timer pr. medarbejder pr. \u00e5r.<\/span>\r\n    <span>#EazyProject #BjornLunden \ud83d\udc3b<\/span>\r\n  <\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n<script>\r\n(function () {\r\n  var HOURS_PER_YEAR = 1600;\r\n\r\n  var emp = document.getElementById('ffg-emp');\r\n  var rate = document.getElementById('ffg-rate');\r\n  var current = document.getElementById('ffg-current');\r\n  var target = document.getElementById('ffg-target');\r\n  var unlocked = false;\r\n\r\n  \/\/ LinkedIn Lead Gen-trafik ankommer med ?src=li-leadgen og har allerede afgivet data\r\n  var LI_MODE = \/(?:\\?|&)src=li-leadgen\/.test(window.location.search);\r\n\r\n  var fmt = new Intl.NumberFormat('da-DK', { maximumFractionDigits: 0 });\r\n  function kr(n) { return fmt.format(Math.round(n)) + ' kr.'; }\r\n\r\n  var displayed = 0;\r\n  var animFrame = null;\r\n\r\n  function animateTo(el, value) {\r\n    if (animFrame) cancelAnimationFrame(animFrame);\r\n    var start = displayed;\r\n    var diff = value - start;\r\n    var t0 = null;\r\n    var reduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\r\n    if (reduce || Math.abs(diff) < 1) {\r\n      displayed = value;\r\n      el.textContent = kr(value);\r\n      return;\r\n    }\r\n    function step(ts) {\r\n      if (!t0) t0 = ts;\r\n      var p = Math.min((ts - t0) \/ 350, 1);\r\n      var eased = 1 - Math.pow(1 - p, 3);\r\n      displayed = start + diff * eased;\r\n      el.textContent = kr(displayed);\r\n      if (p < 1) animFrame = requestAnimationFrame(step);\r\n    }\r\n    animFrame = requestAnimationFrame(step);\r\n  }\r\n\r\n  function calc() {\r\n    var e = +emp.value, r = +rate.value, c = +current.value, t = +target.value;\r\n    if (t < c) { t = c; target.value = c; }\r\n    return {\r\n      e: e, r: r, c: c, t: t,\r\n      gapHours: e * HOURS_PER_YEAR * (t - c) \/ 100,\r\n      perPoint: e * HOURS_PER_YEAR * 0.01 * r\r\n    };\r\n  }\r\n\r\n  function update() {\r\n    var v = calc();\r\n    var lost = v.gapHours * v.r;\r\n\r\n    document.getElementById('ffg-empVal').textContent = v.e;\r\n    document.getElementById('ffg-rateVal').textContent = fmt.format(v.r) + ' kr.';\r\n    document.getElementById('ffg-currentVal').textContent = v.c + ' %';\r\n    document.getElementById('ffg-targetVal').textContent = v.t + ' %';\r\n\r\n    animateTo(document.getElementById('ffg-lost'), lost);\r\n    document.getElementById('ffg-lostSub').textContent =\r\n      lost === 0 ? 'Flot! I rammer allerede jeres m\u00e5l.' : 'i forhold til jeres m\u00e5l p\u00e5 ' + v.t + ' %';\r\n\r\n    \/\/ Detaljerne opdateres kun, n\u00e5r de er l\u00e5st op.\r\n    \/\/ De blurrede placeholder-tal forbliver statiske, s\u00e5 de ikke kan afl\u00e6ses gennem blur.\r\n    if (unlocked) {\r\n      var lostYear = v.gapHours * v.r;\r\n      document.getElementById('ffg-perMonth').textContent = kr(lostYear \/ 12);\r\n      document.getElementById('ffg-perPoint').textContent = kr(v.perPoint);\r\n      document.getElementById('ffg-hoursRow').textContent = fmt.format(Math.round(v.gapHours)) + ' timer';\r\n      document.getElementById('ffg-fteRow').textContent =\r\n        (Math.round(v.gapHours \/ HOURS_PER_YEAR * 10) \/ 10).toString().replace('.', ',') + ' \u00e5rsv\u00e6rk';\r\n      document.getElementById('ffg-perEmp').textContent = kr(v.e > 0 ? lostYear \/ v.e : 0);\r\n      document.getElementById('ffg-fiveYear').textContent = kr(lostYear * 5);\r\n\r\n      var step = Math.min(3, Math.max(v.t - v.c, 0));\r\n      document.getElementById('ffg-insight').textContent = step > 0\r\n        ? 'Bare ' + step + ' procentpoint mere ville give jer ' + kr(v.perPoint * step) + ' om \u00e5ret.'\r\n        : 'I rammer allerede jeres m\u00e5l. Sp\u00f8rgsm\u00e5let er, om I kan holde niveauet, n\u00e5r I vokser.';\r\n    }\r\n  }\r\n\r\n  \/\/ GTM-events: g\u00f8r anonyme brugere til retargeting-audiences og funnel-data\r\n  function track(event, data) {\r\n    window.dataLayer = window.dataLayer || [];\r\n    window.dataLayer.push(Object.assign({ event: event }, data || {}));\r\n  }\r\n\r\n  var hasEngaged = false;\r\n  [emp, rate, current, target].forEach(function (el) {\r\n    el.addEventListener('input', function () {\r\n      update();\r\n      if (!hasEngaged) {\r\n        hasEngaged = true;\r\n        track('calculator_engaged', { tool: 'faktureringsgrad-beregner' });\r\n        \/\/ LinkedIn-trafik har allerede afgivet data, s\u00e5 EazyProject-afsnittet\r\n        \/\/ vises, s\u00e5 snart de har sat deres egne tal ind\r\n        if (LI_MODE) document.getElementById('ffg-valueBlock').style.display = 'block';\r\n      }\r\n    });\r\n    \/\/ Ved slip af slideren: send v\u00e6rdierne, hvis brugeren er kendt (efter unlock eller via LinkedIn)\r\n    el.addEventListener('change', function () {\r\n      if (!unlocked) return;\r\n      var v = calc();\r\n      track('calculator_values', {\r\n        tool: 'faktureringsgrad-beregner',\r\n        medarbejdere: v.e,\r\n        timepris: v.r,\r\n        faktureringsgrad_nu: v.c,\r\n        maal: v.t,\r\n        beregnet_tab_aar: Math.round(v.gapHours * v.r)\r\n      });\r\n    });\r\n  });\r\n\r\n  \/\/ Branchevalg justerer branchem\u00e5let og hint-teksten\r\n  var industrySel = document.getElementById('ffg-industry');\r\n  var targetHint = target.closest('.ffg-field').querySelector('.ffg-field__hint');\r\n\r\n  industrySel.addEventListener('change', function () {\r\n    var opt = industrySel.options[industrySel.selectedIndex];\r\n    var t = +opt.dataset.target;\r\n    target.value = t;\r\n    targetHint.textContent = opt.dataset.hint;\r\n    document.getElementById('ffg-industryHint').textContent = 'Branchem\u00e5let er justeret til ' + t + ' %. Du kan stadig \u00e6ndre det.';\r\n    track('calculator_industry_selected', { tool: 'faktureringsgrad-beregner', branche: industrySel.value });\r\n    update();\r\n  });\r\n\r\n  document.getElementById('ffg-unlock').addEventListener('click', function () {\r\n    var name = document.getElementById('ffg-name').value.trim();\r\n    var company = document.getElementById('ffg-company').value.trim();\r\n    var email = document.getElementById('ffg-email').value.trim();\r\n    var industry = industrySel.value;\r\n    var ok = name && company && industry && \/^[^\\s@]+@[^\\s@]+\\.[^\\s@]{2,}$\/.test(email);\r\n    document.getElementById('ffg-formError').textContent = industry\r\n      ? 'Udfyld venligst alle felter, og tjek, at mailen er korrekt.'\r\n      : 'V\u00e6lg jeres branche \u00f8verst i beregneren, og udfyld alle felter.';\r\n    document.getElementById('ffg-formError').style.display = ok ? 'none' : 'block';\r\n    if (!ok) return;\r\n\r\n    var v = calc();\r\n\r\n    \/\/ TODO (Happy Horizon): send lead + beregning til Zoho her (webhook\/API).\r\n    var lostYear = Math.round(v.gapHours * v.r);\r\n    var payload = {\r\n      navn: name,\r\n      virksomhed: company,\r\n      email: email,\r\n      branche: industry,\r\n      medarbejdere: v.e,\r\n      timepris: v.r,\r\n      faktureringsgrad_nu: v.c,\r\n      maal: v.t,\r\n      beregnet_tab_aar: lostYear,\r\n      beregnet_tab_maaned: Math.round(lostYear \/ 12),\r\n      beregnet_tab_5_aar: lostYear * 5,\r\n      ikke_fakturerede_timer: Math.round(v.gapHours),\r\n      svarer_til_aarsvaerk: Math.round(v.gapHours \/ HOURS_PER_YEAR * 10) \/ 10,\r\n      kilde: 'faktureringsgrad-beregner'\r\n    };\r\n    console.log('MQL payload:', payload);\r\n    track('calculator_lead_submitted', { tool: 'faktureringsgrad-beregner', branche: industry });\r\n\r\n    unlocked = true;\r\n    document.getElementById('ffg-detail').classList.remove('ffg-locked');\r\n    document.getElementById('ffg-gate').style.display = 'none';\r\n    document.getElementById('ffg-unlockedBox').style.display = 'flex';\r\n    document.getElementById('ffg-valueBlock').style.display = 'block';\r\n    update();\r\n  });\r\n\r\n  \/\/ Frivilligt system-sp\u00f8rgsm\u00e5l efter unlock\r\n  var sysqSelect = document.getElementById('ffg-sysqSelect');\r\n  sysqSelect.addEventListener('change', function () {\r\n    var system = sysqSelect.value;\r\n\r\n    if (system === 'Andet system') {\r\n      \/\/ Vis fritekstfelt til den lange hale i stedet for at sende med det samme\r\n      document.getElementById('ffg-sysqAsk').style.display = 'none';\r\n      document.getElementById('ffg-sysqOther').style.display = 'block';\r\n      document.getElementById('ffg-sysqOtherInput').focus();\r\n      return;\r\n    }\r\n\r\n    sendSystemAnswer(system, null);\r\n  });\r\n\r\n  document.getElementById('ffg-sysqOtherSend').addEventListener('click', function () {\r\n    var text = document.getElementById('ffg-sysqOtherInput').value.trim();\r\n    sendSystemAnswer('Andet system', text || null);\r\n  });\r\n\r\n  function sendSystemAnswer(system, otherText) {\r\n    \/\/ TODO (Happy Horizon): opdater kontakten i HubSpot med \"nuvaerende_system\" (+ evt. \"nuvaerende_system_andet\")\r\n    console.log('System answer:', system, otherText);\r\n    track('calculator_system_answer', {\r\n      tool: 'faktureringsgrad-beregner',\r\n      system: system,\r\n      system_andet: otherText || undefined\r\n    });\r\n    document.getElementById('ffg-sysqAsk').style.display = 'none';\r\n    document.getElementById('ffg-sysqOther').style.display = 'none';\r\n    document.getElementById('ffg-sysqThanks').style.display = 'block';\r\n  }\r\n\r\n  \/\/ LinkedIn Lead Gen-mode: data er allerede afgivet, s\u00e5 beregningen er \u00e5ben fra start.\r\n  \/\/ EazyProject-afsnittet holdes tilbage, indtil de har sat deres egne tal ind.\r\n  if (LI_MODE) {\r\n    unlocked = true;\r\n    document.getElementById('ffg-detail').classList.remove('ffg-locked');\r\n    document.getElementById('ffg-gate').style.display = 'none';\r\n    document.getElementById('ffg-unlockedBox').style.display = 'flex';\r\n    document.getElementById('ffg-valueBlock').style.display = 'none';\r\n    document.getElementById('ffg-unlockedText').innerHTML =\r\n      '<strong>Tak for din interesse!<\/strong> Hele beregningen er \u00e5ben herover. S\u00e6t jeres egne tal ind og se, hvad forskellen koster jer.';\r\n    track('calculator_ungated_leadgen', { tool: 'faktureringsgrad-beregner' });\r\n  }\r\n\r\n  update();\r\n})();\r\n<\/script>\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\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Selection Tool Sp\u00f8rgsm\u00e5l 1 af 5 Hvor mange personer forventer du vil bruge systemet? 1\u201310 11\u201350 51\u2013100 Mere end 100 N\u00e6ste Hvilke af f\u00f8lgende brancher er din virksomhed aktiv indenfor? Byggeri, h\u00e5ndv\u00e6rkere &amp; konstruktion Entrepren\u00f8r Arkitekter &amp; ingeni\u00f8rer R\u00e5dgivning &amp; konsulenter Offentlige aktiviteter &amp; kommune Hotel &amp; restaurant IT\/SaaS Fremstilling &amp; produktion Anden branche Tilbage [&hellip;]<\/p>\n","protected":false},"author":34,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","footnotes":""},"class_list":["post-62552","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/bjornlunden.com\/dk\/wp-json\/wp\/v2\/pages\/62552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bjornlunden.com\/dk\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bjornlunden.com\/dk\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bjornlunden.com\/dk\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/bjornlunden.com\/dk\/wp-json\/wp\/v2\/comments?post=62552"}],"version-history":[{"count":37,"href":"https:\/\/bjornlunden.com\/dk\/wp-json\/wp\/v2\/pages\/62552\/revisions"}],"predecessor-version":[{"id":69815,"href":"https:\/\/bjornlunden.com\/dk\/wp-json\/wp\/v2\/pages\/62552\/revisions\/69815"}],"wp:attachment":[{"href":"https:\/\/bjornlunden.com\/dk\/wp-json\/wp\/v2\/media?parent=62552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}