{"id":33628,"date":"2026-07-07T20:26:51","date_gmt":"2026-07-07T20:26:51","guid":{"rendered":"https:\/\/preview.sg-build.co.za\/vha\/?page_id=33628"},"modified":"2026-07-08T00:30:59","modified_gmt":"2026-07-08T00:30:59","slug":"finance-health-check","status":"publish","type":"page","link":"https:\/\/preview.sg-build.co.za\/vha\/finance-health-check\/","title":{"rendered":"Finance Health Check"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"33628\" class=\"elementor elementor-33628\">\n\t\t\t\t<div class=\"elementor-element elementor-element-847003c e-flex e-con-boxed e-con e-parent\" data-id=\"847003c\" data-element_type=\"container\" data-e-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-c625d02 e-con-full e-flex e-con e-child\" data-id=\"c625d02\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-f033c95 e-con-full e-flex e-con e-child\" data-id=\"f033c95\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-38b3d3a elementor-widget__width-initial elementor-widget elementor-widget-image\" data-id=\"38b3d3a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"87\" height=\"87\" src=\"https:\/\/preview.sg-build.co.za\/vha\/wp-content\/uploads\/sites\/679\/2026\/06\/Singl_orange_block.svg\" class=\"attachment-large size-large wp-image-1856\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0868ff7 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"0868ff7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How healthy <\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f33207 elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"8f33207\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">is  Your finance<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ed887ff elementor-widget__width-auto elementor-widget elementor-widget-heading\" data-id=\"ed887ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\"> function?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-aa4bcf8 e-con-full e-flex e-con e-child\" data-id=\"aa4bcf8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-36fd651 e-con-full bottombox-lefttops e-flex e-con e-child\" data-id=\"36fd651\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1f00685 elementor-widget-mobile__width-initial elementor-widget-tablet__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"1f00685\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>VHA Accounting Solutions \u2014 Complimentary Assessment. This 5-minute assessment benchmarks your business&#8217;s financial operations across four critical dimensions \u2014 and tells you exactly where CFO-level oversight can drive the greatest return.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1bee590 elementor-icon-list--layout-inline elementor-align-end elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list\" data-id=\"1bee590\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon-list.default\">\n\t\t\t\t\t\t\t<ul class=\"elementor-icon-list-items elementor-inline-items\">\n\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-far-clock\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm61.8-104.4l-84.9-61.7c-3.1-2.3-4.9-5.9-4.9-9.7V116c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v141.7l66.8 48.6c5.4 3.9 6.5 11.4 2.6 16.8L334.6 349c-3.9 5.3-11.4 6.5-16.8 2.6z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">5 minutes to complete<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-shield-alt\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">20 diagnostic questions<\/span>\n\t\t\t\t\t\t\t\t\t<\/li>\n\t\t\t\t\t\t\t\t<li class=\"elementor-icon-list-item elementor-inline-item\">\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-icon\">\n\t\t\t\t\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-file-signature\" viewBox=\"0 0 576 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z\"><\/path><\/svg>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-icon-list-text\">Personalised action report<\/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-44a96fe elementor-widget__width-initial blob_two_alt elementor-widget elementor-widget-html\" data-id=\"44a96fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n\r\n\/* SQUARE BLOB TWO (isolated version) *\/\r\n.blob_two_alt {\r\n    width: 5.5px !important;\r\n    height: 5.5px !important;\r\n\r\n    border-radius: 0 !important;\r\n    border: 1px solid transparent;\r\n    background: white;\r\n\r\n    box-shadow: 0 0 0 0 rgba(255, 255, 255, 1);\r\n\r\n    animation: pulse-white-alt 2s 3 ease-in-out;\r\n\r\n    left: -13.666666px !important;\r\n    bottom: 48px !important;\r\n}\r\n\r\n\/* App blob (isolated version) *\/\r\n.blobapp_alt {\r\n    border-radius: 0 !important;\r\n    border: 1px solid var(--e-global-color-text);\r\n    background: white;\r\n\r\n    box-shadow: 0 0 0 0 rgba(255, 255, 255, 1);\r\n\r\n    animation: pulse-white-alt 2s infinite ease-in-out;\r\n\r\n    height: 100% !important;\r\n}\r\n\r\n.blobapp_alt:hover {\r\n    border-radius: 0 !important;\r\n    border: 1px solid transparent;\r\n    background: var(--e-global-color-text);\r\n\r\n    animation: pulse-black-alt 2s infinite ease-in-out;\r\n}\r\n\r\n\/* Pulse animations (isolated) *\/\r\n@keyframes pulse-white-alt {\r\n    0% {\r\n        transform: scale(0.95);\r\n        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);\r\n    }\r\n\r\n    70% {\r\n        transform: scale(1);\r\n        box-shadow: 0 0 0 10px rgba(255, 255, 255, 0);\r\n    }\r\n\r\n    100% {\r\n        transform: scale(0.95);\r\n        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);\r\n    }\r\n}\r\n\r\n@keyframes pulse-black-alt {\r\n    0% {\r\n        transform: scale(0.95);\r\n        box-shadow: 0 0 0 0 rgba(246, 132, 37, 0.7);\r\n    }\r\n\r\n    70% {\r\n        transform: scale(1);\r\n        box-shadow: 0 0 0 10px rgba(255, 255, 255, 0);\r\n    }\r\n\r\n    100% {\r\n        transform: scale(0.95);\r\n        box-shadow: 0 0 0 0 rgba(255, 255, 255, 0);\r\n    }\r\n}\r\n\r\n\/* Responsive *\/\r\n@media(max-width:1024px){\r\n    .blob_two_alt{\r\n        bottom:23px !important;\r\n    }\r\n}\r\n\r\n@media(max-width:390px){\r\n    .blob_two_alt{\r\n        left: 10px;\r\n        bottom:22px !important;\r\n    }\r\n}\r\n\r\n<\/style>\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-414b76e e-flex e-con-boxed e-con e-parent\" data-id=\"414b76e\" 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-6634a88 elementor-widget elementor-widget-html\" data-id=\"6634a88\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\r\n.bottombox-lefttops {\r\n    background-image: linear-gradient(#fff, #fff);\r\n    background-repeat: no-repeat;\r\n    background-size: 0 1px;\r\n    background-position: 100% 100%;\r\n}\r\n\r\n.bottombox-lefttops.animate-border {\r\n    animation: bottomBorder 1.5s forwards;\r\n}\r\n\r\n@keyframes bottomBorder {\r\n    from {\r\n        background-size: 0 1px;\r\n    }\r\n    to {\r\n        background-size: 100% 1px;\r\n    }\r\n}\r\n<\/style>\r\n\r\n<script>\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n    document.querySelectorAll('.bottombox-lefttops').forEach(box => {\r\n        box.classList.add('animate-border');\r\n    });\r\n});\r\n<\/script>\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-b155b7e e-flex e-con-boxed e-con e-parent\" data-id=\"b155b7e\" data-element_type=\"container\" data-e-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-98a8623 e-con-full e-flex e-con e-child\" data-id=\"98a8623\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5db855c elementor-widget elementor-widget-html\" data-id=\"5db855c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Urbanist:wght@400;500;600;700;800&display=swap\" rel=\"stylesheet\">\r\n<style>\r\n.vha-scorecard, .vha-scorecard * { box-sizing: border-box; }\r\n.vha-scorecard {\r\n  --vha-dark: #221E1F;\r\n  --vha-orange: #F68425;\r\n  --vha-teal: #128C96;\r\n  --vha-teal-dark: #0D6F78;\r\n  --vha-light: #FFFFFF;\r\n  --vha-soft: #F7F7F5;\r\n  --vha-border: #E4E0DD;\r\n  --vha-muted: #6F686A;\r\n  --success: #1A6E47;\r\n  --success-bg: #E8F5EE;\r\n  --warn: #8A4F00;\r\n  --warn-bg: #FFF2E8;\r\n  --danger: #8A1A1A;\r\n  --danger-bg: #FDEAEA;\r\n  font-family: 'Urbanist', sans-serif;\r\n  font-size: 16px;\r\n  line-height: 1.6;\r\n  color: var(--vha-dark);\r\n  background: var(--vha-light);\r\n  width: 100%;\r\n}\r\n.vha-scorecard button, .vha-scorecard a { font-family: 'Urbanist', sans-serif; }\r\n.vha-scorecard .progress-bar-wrap {\r\n  background: var(--vha-light);\r\n  border-bottom: 1px solid var(--vha-border);\r\n  padding: 0 24px;\r\n  position: sticky;\r\n  top: 0;\r\n  z-index: 100;\r\n}\r\n.vha-scorecard .progress-inner {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 24px;\r\n  padding: 14px 0;\r\n  max-width: 980px;\r\n  margin: 0 auto;\r\n}\r\n.vha-scorecard .progress-label {\r\n  font-size: 12px;\r\n  font-weight: 800;\r\n  color: var(--vha-teal);\r\n  white-space: nowrap;\r\n  letter-spacing: .12em;\r\n  text-transform: uppercase;\r\n}\r\n.vha-scorecard .progress-track {\r\n  flex: 1;\r\n  height: 4px;\r\n  background: #E9E9E7;\r\n  border-radius: 0;\r\n  overflow: hidden;\r\n}\r\n.vha-scorecard .progress-fill {\r\n  height: 100%;\r\n  background: var(--vha-orange);\r\n  border-radius: 0;\r\n  transition: width .4s ease;\r\n  width: 0%;\r\n}\r\n.vha-scorecard .progress-count {\r\n  font-size: 13px;\r\n  font-weight: 800;\r\n  color: var(--vha-dark);\r\n  white-space: nowrap;\r\n}\r\n.vha-scorecard .main {\r\n  max-width: 980px;\r\n  margin: 0 auto;\r\n  padding: 48px 24px 80px;\r\n}\r\n.vha-scorecard .section { margin-bottom: 48px; position: relative; }\r\n.vha-scorecard .section-header {\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 16px;\r\n  margin-bottom: 24px;\r\n  padding-bottom: 18px;\r\n  border-bottom: 1px solid var(--vha-border);\r\n  position: relative;\r\n}\r\n.vha-scorecard .section-header::after {\r\n  content: '';\r\n  position: absolute;\r\n  right: 0;\r\n  bottom: -1px;\r\n  width: 42px;\r\n  height: 42px;\r\n  background: linear-gradient(90deg, var(--vha-teal) 0 50%, var(--vha-orange) 50% 100%);\r\n  opacity: .95;\r\n  clip-path: polygon(0 0, 50% 0, 50% 50%, 100% 50%, 100% 100%, 0 100%);\r\n}\r\n.vha-scorecard .section-num {\r\n  width: 38px;\r\n  height: 38px;\r\n  border-radius: 0;\r\n  background: var(--vha-orange);\r\n  color: var(--vha-light);\r\n  font-size: 14px;\r\n  font-weight: 800;\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  flex-shrink: 0;\r\n}\r\n.vha-scorecard .section-title {\r\n  font-size: 26px;\r\n  font-weight: 800;\r\n  line-height: 1.15;\r\n  color: var(--vha-teal);\r\n  text-transform: uppercase;\r\n  letter-spacing: .02em;\r\n}\r\n.vha-scorecard .section-subtitle {\r\n  font-size: 16px;\r\n  color: var(--vha-muted);\r\n  margin-top: 4px;\r\n}\r\n.vha-scorecard .question-card {\r\n  background: var(--vha-light);\r\n  border: 1px solid var(--vha-border);\r\n  border-radius: 0;\r\n  padding: 22px 24px;\r\n  margin-bottom: 14px;\r\n  transition: border-color .2s, box-shadow .2s;\r\n  position: relative;\r\n}\r\n.vha-scorecard .question-card:hover { border-color: var(--vha-teal); box-shadow: 6px 6px 0 rgba(18,140,150,.08); }\r\n.vha-scorecard .question-card.answered { border-color: var(--vha-orange); }\r\n.vha-scorecard .question-card.answered::before {\r\n  content: '';\r\n  position: absolute;\r\n  left: -1px; top: -1px; bottom: -1px;\r\n  width: 6px;\r\n  background: var(--vha-orange);\r\n}\r\n.vha-scorecard .q-number {\r\n  font-size: 12px;\r\n  font-weight: 800;\r\n  color: var(--vha-teal);\r\n  text-transform: uppercase;\r\n  letter-spacing: .12em;\r\n  margin-bottom: 6px;\r\n}\r\n.vha-scorecard .q-text {\r\n  font-size: 16px;\r\n  font-weight: 600;\r\n  color: var(--vha-dark);\r\n  margin-bottom: 16px;\r\n  line-height: 1.55;\r\n}\r\n.vha-scorecard .options {\r\n  display: grid;\r\n  grid-template-columns: repeat(2, minmax(0, 1fr));\r\n  gap: 10px;\r\n  align-items: stretch;\r\n}\r\n.vha-scorecard .option-btn {\r\n  background: var(--vha-soft);\r\n  border: 1px solid var(--vha-border);\r\n  border-radius: 0;\r\n  padding: 12px 14px;\r\n  font-size: 16px;\r\n  font-weight: 500;\r\n  color: var(--vha-dark);\r\n  cursor: pointer;\r\n  text-align: left;\r\n  line-height: 1.45;\r\n  transition: all .15s;\r\n  width: 100%;\r\n  min-width: 0;\r\n  height: auto;\r\n  min-height: 56px;\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  text-overflow: clip !important;\r\n  word-break: normal;\r\n  overflow-wrap: break-word;\r\n  display: flex;\r\n  align-items: center;\r\n}\r\n.vha-scorecard .option-btn:hover {\r\n  background: #FFF3EA;\r\n  border-color: var(--vha-orange);\r\n  color: var(--vha-dark);\r\n}\r\n.vha-scorecard .option-btn.selected {\r\n  background: var(--vha-teal);\r\n  border-color: var(--vha-teal);\r\n  color: var(--vha-light);\r\n  font-weight: 700;\r\n}\r\n.vha-scorecard .submit-wrap { text-align: center; padding: 48px 0 0; }\r\n.vha-scorecard .submit-btn, .vha-scorecard .download-report-btn, .vha-scorecard .cta-primary {\r\n  background: var(--vha-orange);\r\n  color: var(--vha-light) !important;\r\n  border: none;\r\n  padding: 15px 34px;\r\n  font-size: 16px;\r\n  font-weight: 800;\r\n  border-radius: 0;\r\n  cursor: pointer;\r\n  letter-spacing: .02em;\r\n  transition: background .2s, transform .1s;\r\n  display: inline-flex;\r\n  align-items: center;\r\n  justify-content: center;\r\n  gap: 10px;\r\n  text-decoration: none !important;\r\n  text-align: center;\r\n}\r\n.vha-scorecard .submit-btn:hover, .vha-scorecard .download-report-btn:hover, .vha-scorecard .cta-primary:hover { background: var(--vha-teal); }\r\n.vha-scorecard .submit-btn:disabled { opacity: .45; cursor: not-allowed; }\r\n.vha-scorecard .submit-note { font-size: 16px; color: var(--vha-muted); margin-top: 10px; }\r\n.vha-scorecard #results { display: none; }\r\n.vha-scorecard .print-note {\r\n  background: #FFF3EA;\r\n  border: 1px solid rgba(246,132,37,.35);\r\n  border-radius: 0;\r\n  padding: 12px 18px;\r\n  font-size: 16px;\r\n  color: var(--vha-dark);\r\n  margin-bottom: 18px;\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 10px;\r\n}\r\n.vha-scorecard .pdf-actions { margin-bottom: 24px; text-align: right; }\r\n.vha-scorecard .results-hero {\r\n  background: var(--vha-dark);\r\n  border-radius: 0;\r\n  padding: 48px;\r\n  color: var(--vha-light);\r\n  margin-bottom: 32px;\r\n  position: relative;\r\n  overflow: hidden;\r\n}\r\n.vha-scorecard .results-hero::after {\r\n  content: '';\r\n  position: absolute;\r\n  right: 24px;\r\n  bottom: 24px;\r\n  width: 84px;\r\n  height: 84px;\r\n  background:\r\n    linear-gradient(var(--vha-orange),var(--vha-orange)) 0 0\/28px 28px no-repeat,\r\n    linear-gradient(var(--vha-teal),var(--vha-teal)) 28px 28px\/28px 28px no-repeat,\r\n    linear-gradient(var(--vha-light),var(--vha-light)) 56px 56px\/28px 28px no-repeat;\r\n  opacity: .9;\r\n}\r\n.vha-scorecard .results-grade-row { display: flex; align-items: flex-start; gap: 32px; flex-wrap: wrap; position: relative; z-index: 1; }\r\n.vha-scorecard .grade-circle {\r\n  width: 100px;\r\n  height: 100px;\r\n  border-radius: 50%;\r\n  border: 3px solid var(--vha-orange);\r\n  display: flex;\r\n  flex-direction: column;\r\n  align-items: center;\r\n  justify-content: center;\r\n  flex-shrink: 0;\r\n}\r\n.vha-scorecard .grade-letter { font-size: 42px; font-weight: 800; color: var(--vha-orange); line-height: 1; }\r\n.vha-scorecard .grade-label { font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.65); margin-top: 2px; }\r\n.vha-scorecard .results-summary { flex: 1; min-width: 240px; }\r\n.vha-scorecard .results-title { font-size: 28px; font-weight: 800; margin-bottom: 10px; line-height: 1.2; color: var(--vha-light); }\r\n.vha-scorecard .results-desc { font-size: 16px; color: rgba(255,255,255,.82); line-height: 1.65; max-width: 560px; }\r\n.vha-scorecard h2, .vha-scorecard .findings-title {\r\n  font-family: 'Urbanist', sans-serif !important;\r\n  font-size: 24px !important;\r\n  font-weight: 800 !important;\r\n  color: var(--vha-dark) !important;\r\n  margin-bottom: 16px;\r\n}\r\n.vha-scorecard .dim-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 32px; }\r\n.vha-scorecard .dim-card {\r\n  background: var(--vha-light);\r\n  border: 1px solid var(--vha-border);\r\n  border-radius: 0;\r\n  padding: 20px;\r\n}\r\n.vha-scorecard .dim-title { font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: var(--vha-teal); margin-bottom: 12px; }\r\n.vha-scorecard .dim-score-row { display: flex; align-items: center; gap: 12px; }\r\n.vha-scorecard .dim-bar-track { flex: 1; height: 7px; background: #E5EEF0; border-radius: 0; overflow: hidden; }\r\n.vha-scorecard .dim-bar-fill { height: 100%; border-radius: 0; transition: width .8s ease; }\r\n.vha-scorecard .dim-pct { font-size: 16px; font-weight: 800; color: var(--vha-dark); min-width: 42px; text-align: right; }\r\n.vha-scorecard .dim-status { font-size: 16px; margin-top: 8px; font-weight: 600; }\r\n.vha-scorecard .findings-section { margin-bottom: 32px; }\r\n.vha-scorecard .finding-item {\r\n  background: var(--vha-light);\r\n  border: 1px solid var(--vha-border);\r\n  border-radius: 0;\r\n  padding: 18px 20px;\r\n  margin-bottom: 12px;\r\n  display: flex;\r\n  gap: 14px;\r\n  align-items: flex-start;\r\n}\r\n.vha-scorecard .finding-icon {\r\n  width: 28px; height: 28px; border-radius: 0; display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 14px; margin-top: 2px;\r\n}\r\n.vha-scorecard .finding-icon.good { background: var(--success-bg); color: var(--success); }\r\n.vha-scorecard .finding-icon.warn { background: var(--warn-bg); color: var(--warn); }\r\n.vha-scorecard .finding-icon.risk { background: var(--danger-bg); color: var(--danger); }\r\n.vha-scorecard .finding-text strong { font-weight: 800; font-size: 16px; display: block; margin-bottom: 3px; color: var(--vha-dark); }\r\n.vha-scorecard .finding-text p { font-size: 16px; color: var(--vha-dark); line-height: 1.55; }\r\n.vha-scorecard .vha-cta {\r\n  background: var(--vha-dark);\r\n  border-radius: 0;\r\n  padding: 42px 48px;\r\n  color: var(--vha-light);\r\n  display: flex;\r\n  align-items: center;\r\n  justify-content: space-between;\r\n  gap: 32px;\r\n  flex-wrap: wrap;\r\n  position: relative;\r\n  overflow: hidden;\r\n}\r\n.vha-scorecard .vha-cta::after {\r\n  content: '';\r\n  position: absolute;\r\n  right: 0; top: 0;\r\n  width: 92px; height: 92px;\r\n  background: var(--vha-orange);\r\n}\r\n.vha-scorecard .vha-cta-text, .vha-scorecard .vha-cta-btns { position: relative; z-index: 1; }\r\n.vha-scorecard .vha-cta-text h3 { font-size: 24px; font-weight: 800; margin-bottom: 8px; color: var(--vha-light); }\r\n.vha-scorecard .vha-cta-text p { font-size: 16px; color: rgba(255,255,255,.78); line-height: 1.6; max-width: 440px; }\r\n.vha-scorecard .vha-cta-btns { display: flex; flex-direction: column; gap: 10px; flex-shrink: 0; }\r\n.vha-scorecard .cta-secondary {\r\n  background: transparent;\r\n  color: var(--vha-light) !important;\r\n  border: 1px solid rgba(255,255,255,.45);\r\n  padding: 13px 28px;\r\n  font-size: 16px;\r\n  font-weight: 700;\r\n  border-radius: 0;\r\n  cursor: pointer;\r\n  white-space: nowrap;\r\n  text-decoration: none !important;\r\n  display: block;\r\n  text-align: center;\r\n}\r\n.vha-scorecard .cta-secondary:hover { border-color: var(--vha-orange); color: var(--vha-orange) !important; }\r\n.vha-scorecard .retake-btn {\r\n  background: var(--vha-light);\r\n  border: 1px solid var(--vha-border);\r\n  padding: 11px 24px;\r\n  font-size: 16px;\r\n  color: var(--vha-muted);\r\n  border-radius: 0;\r\n  cursor: pointer;\r\n  display: inline-flex;\r\n  align-items: center;\r\n  gap: 8px;\r\n  margin-top: 16px;\r\n}\r\n.vha-scorecard .retake-btn:hover { border-color: var(--vha-teal); color: var(--vha-teal); }\r\n.vha-scorecard .pdf-hidden { display: none !important; }\r\n.vha-scorecard.pdf-export {\r\n  background: #FFFFFF !important;\r\n  width: 794px !important;\r\n  max-width: 794px !important;\r\n  min-width: 794px !important;\r\n  padding: 0 !important;\r\n  margin: 0 !important;\r\n  font-size: 15px !important;\r\n  line-height: 1.55 !important;\r\n  color: #221E1F !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export #results {\r\n  display: block !important;\r\n  background: #FFFFFF !important;\r\n  width: 794px !important;\r\n  max-width: 794px !important;\r\n  min-width: 794px !important;\r\n  padding: 0 !important;\r\n  margin: 0 !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export .print-note,\r\n.vha-scorecard.pdf-export .pdf-actions,\r\n.vha-scorecard.pdf-export .download-report-btn,\r\n.vha-scorecard.pdf-export .retake-wrap,\r\n.vha-scorecard.pdf-export .retake-btn {\r\n  display: none !important;\r\n}\r\n.vha-scorecard.pdf-export .results-hero,\r\n.vha-scorecard.pdf-export .vha-cta,\r\n.vha-scorecard.pdf-export .dim-card,\r\n.vha-scorecard.pdf-export .finding-item {\r\n  break-inside: avoid !important;\r\n  page-break-inside: avoid !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export .results-hero {\r\n  width: 100% !important;\r\n  padding: 36px 40px !important;\r\n  margin-bottom: 28px !important;\r\n  overflow: hidden !important;\r\n}\r\n.vha-scorecard.pdf-export .results-hero::after {\r\n  right: 18px !important;\r\n  bottom: 18px !important;\r\n  width: 60px !important;\r\n  height: 60px !important;\r\n  background-size: 20px 20px, 20px 20px, 20px 20px !important;\r\n  background-position: 0 0, 20px 20px, 40px 40px !important;\r\n}\r\n.vha-scorecard.pdf-export .results-grade-row {\r\n  display: flex !important;\r\n  flex-wrap: nowrap !important;\r\n  align-items: center !important;\r\n  gap: 28px !important;\r\n  width: 100% !important;\r\n}\r\n.vha-scorecard.pdf-export .grade-circle {\r\n  width: 96px !important;\r\n  height: 96px !important;\r\n  flex: 0 0 96px !important;\r\n}\r\n.vha-scorecard.pdf-export .results-summary {\r\n  flex: 1 1 auto !important;\r\n  min-width: 0 !important;\r\n  max-width: 560px !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export .results-title {\r\n  font-size: 26px !important;\r\n  line-height: 1.2 !important;\r\n  margin-bottom: 10px !important;\r\n  white-space: normal !important;\r\n  overflow-wrap: break-word !important;\r\n}\r\n.vha-scorecard.pdf-export .results-desc,\r\n.vha-scorecard.pdf-export .finding-text p,\r\n.vha-scorecard.pdf-export .vha-cta-text p {\r\n  font-size: 15px !important;\r\n  line-height: 1.55 !important;\r\n  white-space: normal !important;\r\n  overflow-wrap: break-word !important;\r\n  word-break: normal !important;\r\n  max-width: none !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export .dim-grid {\r\n  display: grid !important;\r\n  grid-template-columns: 1fr 1fr !important;\r\n  gap: 16px !important;\r\n  width: 100% !important;\r\n}\r\n.vha-scorecard.pdf-export .dim-card {\r\n  width: 100% !important;\r\n  min-width: 0 !important;\r\n  padding: 18px 20px !important;\r\n}\r\n.vha-scorecard.pdf-export .dim-title,\r\n.vha-scorecard.pdf-export .dim-status,\r\n.vha-scorecard.pdf-export .dim-pct,\r\n.vha-scorecard.pdf-export .finding-text strong,\r\n.vha-scorecard.pdf-export .findings-title {\r\n  white-space: normal !important;\r\n  overflow: visible !important;\r\n  overflow-wrap: break-word !important;\r\n}\r\n.vha-scorecard.pdf-export .finding-item {\r\n  display: flex !important;\r\n  width: 100% !important;\r\n  padding: 16px 18px !important;\r\n  gap: 14px !important;\r\n}\r\n.vha-scorecard.pdf-export .finding-text {\r\n  min-width: 0 !important;\r\n  flex: 1 1 auto !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export .vha-cta {\r\n  width: 100% !important;\r\n  display: block !important;\r\n  padding: 34px 40px !important;\r\n  overflow: hidden !important;\r\n}\r\n.vha-scorecard.pdf-export .vha-cta::after {\r\n  right: 0 !important;\r\n  top: 0 !important;\r\n  width: 90px !important;\r\n  height: 90px !important;\r\n}\r\n.vha-scorecard.pdf-export .vha-cta-text {\r\n  width: 100% !important;\r\n  max-width: 620px !important;\r\n  margin-bottom: 20px !important;\r\n}\r\n.vha-scorecard.pdf-export .vha-cta-btns {\r\n  display: flex !important;\r\n  flex-direction: row !important;\r\n  flex-wrap: wrap !important;\r\n  gap: 12px !important;\r\n  width: 100% !important;\r\n}\r\n.vha-scorecard.pdf-export .cta-primary,\r\n.vha-scorecard.pdf-export .cta-secondary {\r\n  white-space: normal !important;\r\n  overflow-wrap: break-word !important;\r\n  min-width: 230px !important;\r\n  max-width: 320px !important;\r\n  padding: 13px 18px !important;\r\n  box-sizing: border-box !important;\r\n}\r\n@media (max-width: 700px) {\r\n  .vha-scorecard .main { padding: 34px 16px 60px; }\r\n  .vha-scorecard .progress-bar-wrap { padding: 0 16px; }\r\n  .vha-scorecard .progress-inner { gap: 12px; }\r\n  .vha-scorecard .section-title { font-size: 22px; }\r\n  .vha-scorecard .dim-grid { grid-template-columns: 1fr; }\r\n  .vha-scorecard .results-hero, .vha-scorecard .vha-cta { padding: 32px 24px; }\r\n  .vha-scorecard .options { grid-template-columns: 1fr; }\r\n  .vha-scorecard .pdf-actions { text-align: left; }\r\n}\r\n\r\n\r\n\r\n.vha-scorecard.pdf-export .vha-cta {\r\n  margin-top: 28px !important;\r\n  page-break-before: auto !important;\r\n  break-before: auto !important;\r\n}\r\n\r\n.vha-scorecard.pdf-export .findings-section {\r\n  margin-bottom: 42px !important;\r\n}\r\n\r\n\r\n\r\n.vha-scorecard.pdf-export {\r\n  box-shadow: none !important;\r\n}\r\n.vha-scorecard.pdf-export .results-hero,\r\n.vha-scorecard.pdf-export .dim-grid,\r\n.vha-scorecard.pdf-export .finding-item,\r\n.vha-scorecard.pdf-export .vha-cta {\r\n  max-width: 738px !important;\r\n}\r\n.vha-scorecard.pdf-export .vha-cta {\r\n  margin-top: 28px !important;\r\n}\r\n\r\n\r\n\/* FINAL PDF EXPORT FIX - one page landscape, no CTA in PDF *\/\r\n.vha-scorecard.pdf-export {\r\n  width: 1123px !important;\r\n  max-width: 1123px !important;\r\n  min-width: 1123px !important;\r\n  padding: 26px 30px !important;\r\n  margin: 0 !important;\r\n  background: #FFFFFF !important;\r\n  color: #221E1F !important;\r\n  font-family: 'Urbanist', sans-serif !important;\r\n  font-size: 14px !important;\r\n  line-height: 1.35 !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export #results {\r\n  display: block !important;\r\n  width: 100% !important;\r\n  max-width: none !important;\r\n  min-width: 0 !important;\r\n  padding: 0 !important;\r\n  margin: 0 !important;\r\n  background: #FFFFFF !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export .print-note,\r\n.vha-scorecard.pdf-export .pdf-actions,\r\n.vha-scorecard.pdf-export .download-report-btn,\r\n.vha-scorecard.pdf-export .retake-wrap,\r\n.vha-scorecard.pdf-export .retake-btn,\r\n.vha-scorecard.pdf-export .vha-cta {\r\n  display: none !important;\r\n}\r\n.vha-scorecard.pdf-export .results-hero {\r\n  width: 100% !important;\r\n  max-width: none !important;\r\n  padding: 28px 36px !important;\r\n  margin: 0 0 20px 0 !important;\r\n  overflow: hidden !important;\r\n}\r\n.vha-scorecard.pdf-export .results-hero::after {\r\n  right: 22px !important;\r\n  bottom: 22px !important;\r\n  width: 62px !important;\r\n  height: 62px !important;\r\n  background-size: 20px 20px, 20px 20px, 20px 20px !important;\r\n  background-position: 0 0, 20px 20px, 40px 40px !important;\r\n}\r\n.vha-scorecard.pdf-export .results-grade-row {\r\n  display: flex !important;\r\n  flex-wrap: nowrap !important;\r\n  align-items: center !important;\r\n  gap: 28px !important;\r\n  width: 100% !important;\r\n}\r\n.vha-scorecard.pdf-export .grade-circle {\r\n  width: 82px !important;\r\n  height: 82px !important;\r\n  flex: 0 0 82px !important;\r\n}\r\n.vha-scorecard.pdf-export .grade-letter {\r\n  font-size: 34px !important;\r\n}\r\n.vha-scorecard.pdf-export .results-summary {\r\n  flex: 1 1 auto !important;\r\n  min-width: 0 !important;\r\n  max-width: none !important;\r\n}\r\n.vha-scorecard.pdf-export .results-title {\r\n  font-size: 25px !important;\r\n  line-height: 1.1 !important;\r\n  margin-bottom: 8px !important;\r\n  white-space: normal !important;\r\n  overflow-wrap: break-word !important;\r\n}\r\n.vha-scorecard.pdf-export .results-desc {\r\n  font-size: 14px !important;\r\n  line-height: 1.35 !important;\r\n  max-width: 780px !important;\r\n  white-space: normal !important;\r\n  overflow-wrap: break-word !important;\r\n}\r\n.vha-scorecard.pdf-export h2,\r\n.vha-scorecard.pdf-export .findings-title {\r\n  font-size: 20px !important;\r\n  margin: 0 0 10px 0 !important;\r\n  line-height: 1.2 !important;\r\n}\r\n.vha-scorecard.pdf-export .dim-grid {\r\n  display: grid !important;\r\n  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;\r\n  gap: 12px !important;\r\n  width: 100% !important;\r\n  max-width: none !important;\r\n  margin-bottom: 18px !important;\r\n}\r\n.vha-scorecard.pdf-export .dim-card {\r\n  width: 100% !important;\r\n  max-width: none !important;\r\n  min-width: 0 !important;\r\n  padding: 14px 14px !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export .dim-title {\r\n  font-size: 10px !important;\r\n  line-height: 1.25 !important;\r\n  margin-bottom: 8px !important;\r\n  letter-spacing: .1em !important;\r\n}\r\n.vha-scorecard.pdf-export .dim-score-row {\r\n  gap: 8px !important;\r\n}\r\n.vha-scorecard.pdf-export .dim-bar-track {\r\n  height: 6px !important;\r\n}\r\n.vha-scorecard.pdf-export .dim-pct {\r\n  font-size: 12px !important;\r\n  min-width: 32px !important;\r\n}\r\n.vha-scorecard.pdf-export .dim-status {\r\n  font-size: 12px !important;\r\n  margin-top: 6px !important;\r\n}\r\n.vha-scorecard.pdf-export .findings-section {\r\n  width: 100% !important;\r\n  max-width: none !important;\r\n  margin: 0 !important;\r\n}\r\n.vha-scorecard.pdf-export .finding-item {\r\n  width: 100% !important;\r\n  max-width: none !important;\r\n  display: flex !important;\r\n  gap: 10px !important;\r\n  padding: 12px 14px !important;\r\n  margin-bottom: 8px !important;\r\n  break-inside: avoid !important;\r\n  page-break-inside: avoid !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export .finding-icon {\r\n  width: 22px !important;\r\n  height: 22px !important;\r\n  font-size: 12px !important;\r\n}\r\n.vha-scorecard.pdf-export .finding-text {\r\n  flex: 1 1 auto !important;\r\n  min-width: 0 !important;\r\n  overflow: visible !important;\r\n}\r\n.vha-scorecard.pdf-export .finding-text strong {\r\n  font-size: 13px !important;\r\n  margin-bottom: 2px !important;\r\n  line-height: 1.25 !important;\r\n}\r\n.vha-scorecard.pdf-export .finding-text p {\r\n  font-size: 12.5px !important;\r\n  line-height: 1.35 !important;\r\n  margin: 0 !important;\r\n  white-space: normal !important;\r\n  overflow-wrap: break-word !important;\r\n  max-width: none !important;\r\n}\r\n\r\n<\/style>\r\n\r\n<div class=\"vha-scorecard\">\r\n<div class=\"progress-bar-wrap\">\r\n  <div class=\"progress-inner\">\r\n    <span class=\"progress-label\">Progress<\/span>\r\n    <div class=\"progress-track\"><div class=\"progress-fill\" id=\"progressFill\"><\/div><\/div>\r\n    <span class=\"progress-count\" id=\"progressCount\">0 \/ 20<\/span>\r\n  <\/div>\r\n<\/div>\r\n\r\n<div class=\"main\">\r\n\r\n  <!-- ASSESSMENT FORM -->\r\n  <div id=\"assessment\">\r\n\r\n    <!-- SECTION 1: Financial Visibility -->\r\n    <div class=\"section\">\r\n      <div class=\"section-header\">\r\n        <div class=\"section-num\">1<\/div>\r\n        <div>\r\n          <div class=\"section-title\">Financial Visibility & Reporting<\/div>\r\n          <div class=\"section-subtitle\">How well do you see and understand your financial position?<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc1\">\r\n        <div class=\"q-number\">Q1<\/div>\r\n        <div class=\"q-text\">How frequently does your business produce a management accounts pack (P&L, balance sheet, cash flow statement)?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(1,'a',3)\">Monthly \u2014 within 10 business days of month-end<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(1,'b',2)\">Quarterly<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(1,'c',1)\">Only at year-end for SARS \/ audit<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(1,'d',0)\">We don't produce formal management accounts<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc2\">\r\n        <div class=\"q-number\">Q2<\/div>\r\n        <div class=\"q-text\">When last did you review a detailed variance report comparing actual results to budget or forecast?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(2,'a',3)\">Last month \u2014 it's part of our routine review<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(2,'b',2)\">Last quarter<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(2,'c',1)\">Last financial year-end<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(2,'d',0)\">We don't have a budget to compare against<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc3\">\r\n        <div class=\"q-number\">Q3<\/div>\r\n        <div class=\"q-text\">How clearly can you identify your most and least profitable products, services, or business units right now?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(3,'a',3)\">Clearly \u2014 we have cost-centre or segment reporting in place<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(3,'b',2)\">Roughly \u2014 we have a general sense but not verified data<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(3,'c',1)\">We look at overall margin only<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(3,'d',0)\">We don't have visibility at that level<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc4\">\r\n        <div class=\"q-number\">Q4<\/div>\r\n        <div class=\"q-text\">What accounting software or platform does your business currently use?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(4,'a',3)\">Cloud-based with real-time dashboards (e.g. Xero, Sage Cloud)<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(4,'b',2)\">Desktop accounting software (e.g. Pastel, Sage Desktop)<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(4,'c',1)\">Spreadsheets (Excel \/ Google Sheets)<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(4,'d',0)\">No formal system \u2014 managed manually or informally<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc5\">\r\n        <div class=\"q-number\">Q5<\/div>\r\n        <div class=\"q-text\">How confident are you that your financial data is accurate and complete at any given point in the month?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(5,'a',3)\">Very confident \u2014 books are reconciled and current<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(5,'b',2)\">Fairly confident \u2014 minor backlogs occasionally<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(5,'c',1)\">Unsure \u2014 we often find issues during year-end clean-up<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(5,'d',0)\">Not confident \u2014 we know there are errors we haven't resolved<\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- SECTION 2: Cash Flow & Working Capital -->\r\n    <div class=\"section\">\r\n      <div class=\"section-header\">\r\n        <div class=\"section-num\">2<\/div>\r\n        <div>\r\n          <div class=\"section-title\">Cash Flow & Working Capital<\/div>\r\n          <div class=\"section-subtitle\">How well is your business managing its liquidity and cash cycle?<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc6\">\r\n        <div class=\"q-number\">Q6<\/div>\r\n        <div class=\"q-text\">Does your business maintain a rolling 12-month cash flow forecast that is updated regularly?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(6,'a',3)\">Yes \u2014 updated monthly with actuals and revised projections<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(6,'b',2)\">Partially \u2014 we have a rough forecast but rarely update it<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(6,'c',1)\">We look at cash only a few weeks ahead<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(6,'d',0)\">No formal forecast \u2014 we manage cash reactively<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc7\">\r\n        <div class=\"q-number\">Q7<\/div>\r\n        <div class=\"q-text\">What is your average debtor collection period (how many days to collect outstanding invoices)?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(7,'a',3)\">Under 30 days \u2014 we have strong debtor management processes<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(7,'b',2)\">30\u201345 days \u2014 mostly on terms with some late payers<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(7,'c',1)\">45\u201360 days \u2014 cash collection is a consistent challenge<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(7,'d',0)\">Over 60 days or we don't track this formally<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc8\">\r\n        <div class=\"q-number\">Q8<\/div>\r\n        <div class=\"q-text\">How often does cash flow pressure force you to delay supplier payments, payroll, or VAT submissions?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(8,'a',3)\">Rarely or never \u2014 we maintain healthy liquidity reserves<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(8,'b',2)\">Occasionally \u2014 typically resolved within a few days<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(8,'c',1)\">Regularly \u2014 it causes stress and relationship strain<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(8,'d',0)\">Frequently \u2014 it's one of our biggest business challenges<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc9\">\r\n        <div class=\"q-number\">Q9<\/div>\r\n        <div class=\"q-text\">Do you have a clear view of your creditor ageing and do you manage supplier payment terms strategically?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(9,'a',3)\">Yes \u2014 we actively manage payment terms to optimise cash flow<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(9,'b',2)\">We pay invoices when due but don't manage it strategically<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(9,'c',1)\">We pay when we have cash available, not by terms<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(9,'d',0)\">We don't track creditor ageing formally<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc10\">\r\n        <div class=\"q-number\">Q10<\/div>\r\n        <div class=\"q-text\">How would you rate your business's ability to survive a 3-month revenue disruption without external funding?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(10,'a',3)\">Strong \u2014 we have reserves and\/or credit facilities in place<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(10,'b',2)\">Moderate \u2014 we could manage 4\u20138 weeks<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(10,'c',1)\">Limited \u2014 we operate close to the bone each month<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(10,'d',0)\">Critical \u2014 a 2\u20133 week gap would put us in difficulty<\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- SECTION 3: Strategy & Decision-Making -->\r\n    <div class=\"section\">\r\n      <div class=\"section-header\">\r\n        <div class=\"section-num\">3<\/div>\r\n        <div>\r\n          <div class=\"section-title\">Strategy & Financial Decision-Making<\/div>\r\n          <div class=\"section-subtitle\">Is your financial data driving smart strategic choices?<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc11\">\r\n        <div class=\"q-number\">Q11<\/div>\r\n        <div class=\"q-text\">When making a major business decision (hiring, expansion, capex), do you base it on formal financial modelling or scenario analysis?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(11,'a',3)\">Always \u2014 we model best, base, and worst-case scenarios<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(11,'b',2)\">Sometimes \u2014 for bigger decisions we do some analysis<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(11,'c',1)\">Rarely \u2014 mostly gut feel supported by general numbers<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(11,'d',0)\">Never \u2014 decisions are made without formal financial input<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc12\">\r\n        <div class=\"q-number\">Q12<\/div>\r\n        <div class=\"q-text\">Does your business have a current annual budget approved by leadership and used to track performance?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(12,'a',3)\">Yes \u2014 detailed, approved, and actively used each month<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(12,'b',2)\">Yes, but it was set at year-start and rarely revisited<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(12,'c',1)\">We have a rough revenue target but no formal budget<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(12,'d',0)\">No formal budget is in place<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc13\">\r\n        <div class=\"q-number\">Q13<\/div>\r\n        <div class=\"q-text\">How often do you review KPIs (key performance indicators) tied directly to financial outcomes?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(13,'a',3)\">Monthly \u2014 we have a defined KPI dashboard reviewed by leadership<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(13,'b',2)\">Quarterly \u2014 part of our financial review meetings<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(13,'c',1)\">Annually \u2014 usually prompted by the year-end process<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(13,'d',0)\">We don't formally track financial KPIs<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc14\">\r\n        <div class=\"q-number\">Q14<\/div>\r\n        <div class=\"q-text\">Do you know your current gross margin percentage and how it benchmarks against your industry?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(14,'a',3)\">Yes \u2014 and we actively manage it against industry benchmarks<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(14,'b',2)\">We know our margin but don't benchmark formally<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(14,'c',1)\">We have a rough idea but no verified figure<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(14,'d',0)\">We don't track gross margin separately<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc15\">\r\n        <div class=\"q-number\">Q15<\/div>\r\n        <div class=\"q-text\">Does your business have a senior financial advisor or CFO-level professional involved in strategic decisions?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(15,'a',3)\">Yes \u2014 a full-time or outsourced CFO is actively involved<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(15,'b',2)\">Partially \u2014 our accountant provides some strategic input<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(15,'c',1)\">Only during year-end or specific transactions<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(15,'d',0)\">No \u2014 financial decisions are made without senior financial input<\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- SECTION 4: Compliance & Growth Readiness -->\r\n    <div class=\"section\">\r\n      <div class=\"section-header\">\r\n        <div class=\"section-num\">4<\/div>\r\n        <div>\r\n          <div class=\"section-title\">Compliance & Growth Readiness<\/div>\r\n          <div class=\"section-subtitle\">Is your finance function ready to support the next stage of growth?<\/div>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc16\">\r\n        <div class=\"q-number\">Q16<\/div>\r\n        <div class=\"q-text\">Are all your statutory obligations (VAT, PAYE, income tax, UIF) submitted and paid on time consistently?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(16,'a',3)\">Yes \u2014 always on time, no penalties or interest in the last 2 years<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(16,'b',2)\">Mostly \u2014 occasional late submissions but no material penalties<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(16,'c',1)\">Sometimes \u2014 we've had penalties and are working to improve<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(16,'d',0)\">We have outstanding submissions or unresolved SARS matters<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc17\">\r\n        <div class=\"q-number\">Q17<\/div>\r\n        <div class=\"q-text\">If a bank or investor requested 3 years of audited or reviewed financial statements today, how quickly could you provide them?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(17,'a',3)\">Immediately \u2014 all years are complete and professionally signed off<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(17,'b',2)\">Within 2\u20134 weeks \u2014 mostly complete with minor gaps<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(17,'c',1)\">2\u20133 months \u2014 we'd need significant catch-up work<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(17,'d',0)\">We couldn't provide them without a major financial clean-up<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc18\">\r\n        <div class=\"q-number\">Q18<\/div>\r\n        <div class=\"q-text\">How would you describe your current finance team's capacity relative to your business's needs?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(18,'a',3)\">Well-resourced \u2014 we have the right people for our stage of growth<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(18,'b',2)\">Adequate \u2014 we manage but there's limited bandwidth for strategic work<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(18,'c',1)\">Stretched \u2014 compliance takes priority, strategy is neglected<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(18,'d',0)\">Insufficient \u2014 we're behind on basics and need urgent support<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc19\">\r\n        <div class=\"q-number\">Q19<\/div>\r\n        <div class=\"q-text\">If your business is considering a merger, acquisition, or equity raise in the next 24 months, how prepared are your financials?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(19,'a',3)\">Very prepared \u2014 our records are audit-ready and well-organised<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(19,'b',2)\">Partially \u2014 we'd need 1\u20132 months to prepare a data room<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(19,'c',1)\">Not in scope currently \u2014 but our records are not investor-ready<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(19,'d',0)\">We are not planning this and our financials need significant work<\/button>\r\n        <\/div>\r\n      <\/div>\r\n\r\n      <div class=\"question-card\" id=\"qc20\">\r\n        <div class=\"q-number\">Q20<\/div>\r\n        <div class=\"q-text\">How do you currently access external financial expertise or advisory support?<\/div>\r\n        <div class=\"options\">\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(20,'a',3)\">Regularly \u2014 through an outsourced CFO or retained advisor<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(20,'b',2)\">Occasionally \u2014 we consult our accountant on bigger issues<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(20,'c',1)\">Rarely \u2014 mainly for year-end and compliance only<\/button>\r\n          <button type=\"button\" class=\"option-btn\" onclick=\"select(20,'d',0)\">Never \u2014 we handle everything internally without external advice<\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"submit-wrap\">\r\n      <button type=\"button\" class=\"submit-btn\" id=\"submitBtn\" onclick=\"showResults()\" disabled>\r\n        <svg width=\"18\" height=\"18\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z\"\/><\/svg>\r\n        Generate My Finance Health Report\r\n      <\/button>\r\n      <div class=\"submit-note\" id=\"submitNote\">Answer all 20 questions to unlock your personalised report.<\/div>\r\n    <\/div>\r\n\r\n  <\/div>\r\n\r\n  <!-- RESULTS PANEL -->\r\n  <div id=\"results\">\r\n\r\n    <div class=\"print-note\">\r\n      <svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z\"\/><\/svg>\r\n      Save or print this report using your browser's print function (Ctrl+P \/ \u2318+P) to share with your team or advisor.\r\n    <\/div>\r\n\r\n    <div class=\"pdf-actions\">\r\n      <button type=\"button\" class=\"download-report-btn\" onclick=\"downloadReport()\">Download PDF Report<\/button>\r\n    <\/div>\r\n\r\n    <div class=\"results-hero\">\r\n      <div class=\"results-grade-row\">\r\n        <div class=\"grade-circle\">\r\n          <div class=\"grade-letter\" id=\"gradeLetter\">B<\/div>\r\n          <div class=\"grade-label\">Rating<\/div>\r\n        <\/div>\r\n        <div class=\"results-summary\">\r\n          <div class=\"results-title\" id=\"resultsTitle\">Developing Finance Function<\/div>\r\n          <div class=\"results-desc\" id=\"resultsDesc\"><\/div>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <h2 style=\"font-family:'Urbanist',sans-serif;font-size:24px;font-weight:800;color:#221E1F;margin-bottom:16px;\">Performance by dimension<\/h2>\r\n\r\n    <div class=\"dim-grid\" id=\"dimGrid\">\r\n      <!-- filled by JS -->\r\n    <\/div>\r\n\r\n    <div class=\"findings-section\">\r\n      <div class=\"findings-title\">Key findings & recommendations<\/div>\r\n      <div id=\"findingsList\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"vha-cta\">\r\n      <div class=\"vha-cta-text\">\r\n        <h3>Ready to act on these findings?<\/h3>\r\n        <p>Our CFO Advisory team works directly with South African SMEs to close these gaps \u2014 from financial visibility to investor-readiness. Let's have a frank conversation about your numbers.<\/p>\r\n      <\/div>\r\n      <div class=\"vha-cta-btns\">\r\n        <a class=\"cta-primary\" href=\"https:\/\/preview.sg-build.co.za\/vha\/contact-us\/\">Book a Strategic Consultation<\/a>\r\n        <a class=\"cta-secondary\" href=\"https:\/\/preview.sg-build.co.za\/vha\/contact-us\/\">Request a Finance Function Review<\/a>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"retake-wrap\" style=\"text-align:center;margin-top:24px;\">\r\n      <button type=\"button\" class=\"retake-btn\" onclick=\"retake()\">\r\n        <svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\"\/><\/svg>\r\n        Retake the assessment\r\n      <\/button>\r\n    <\/div>\r\n  <\/div>\r\n\r\n<\/div>\r\n\r\n<\/div>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/html2canvas\/1.4.1\/html2canvas.min.js\"><\/script>\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jspdf\/2.5.1\/jspdf.umd.min.js\"><\/script><script>\r\nconst answers = {};\r\nconst TOTAL = 20;\r\n\r\nconst dims = {\r\n  visibility:  { label: 'Financial Visibility', qs: [1,2,3,4,5] },\r\n  cashflow:    { label: 'Cash Flow Management', qs: [6,7,8,9,10] },\r\n  strategy:    { label: 'Strategy & Decisions', qs: [11,12,13,14,15] },\r\n  compliance:  { label: 'Compliance & Growth', qs: [16,17,18,19,20] }\r\n};\r\n\r\nconst dimColors = {\r\n  visibility: '#128C96',\r\n  cashflow:   '#F68425',\r\n  strategy:   '#221E1F',\r\n  compliance: '#0D6F78'\r\n};\r\n\r\nfunction select(qNum, optKey, score) {\r\n  answers[qNum] = { key: optKey, score: score };\r\n  const card = document.getElementById('qc' + qNum);\r\n  card.classList.add('answered');\r\n  card.querySelectorAll('.option-btn').forEach(btn => btn.classList.remove('selected'));\r\n  const clickedBtn = (window.event && window.event.currentTarget) ? window.event.currentTarget : null;\r\n  if (clickedBtn) clickedBtn.classList.add('selected');\r\n  updateProgress();\r\n}\r\n\r\nfunction updateProgress() {\r\n  const answered = Object.keys(answers).length;\r\n  const pct = Math.round((answered \/ TOTAL) * 100);\r\n  document.getElementById('progressFill').style.width = pct + '%';\r\n  document.getElementById('progressCount').textContent = answered + ' \/ ' + TOTAL;\r\n  const btn = document.getElementById('submitBtn');\r\n  const note = document.getElementById('submitNote');\r\n  if (answered === TOTAL) {\r\n    btn.disabled = false;\r\n    note.textContent = 'All questions answered \u2014 your report is ready.';\r\n    note.style.color = '#1A6E47';\r\n  } else {\r\n    btn.disabled = true;\r\n    note.textContent = (TOTAL - answered) + ' question' + (TOTAL - answered !== 1 ? 's' : '') + ' remaining.';\r\n    note.style.color = '';\r\n  }\r\n}\r\n\r\nfunction calcDimScore(dimKey) {\r\n  const qs = dims[dimKey].qs;\r\n  const total = qs.reduce((sum, q) => sum + (answers[q] ? answers[q].score : 0), 0);\r\n  const max = qs.length * 3;\r\n  return Math.round((total \/ max) * 100);\r\n}\r\n\r\nfunction getGrade(pct) {\r\n  if (pct >= 80) return { letter:'A', title:'High-Performance Finance Function', color:'#1A6E47' };\r\n  if (pct >= 60) return { letter:'B', title:'Developing Finance Function', color:'#2A6E3A' };\r\n  if (pct >= 40) return { letter:'C', title:'Finance Function Needs Attention', color:'#8A6600' };\r\n  return { letter:'D', title:'Finance Function at Risk', color:'#8A1A1A' };\r\n}\r\n\r\nfunction getDesc(pct) {\r\n  if (pct >= 80) return 'Your business demonstrates strong financial discipline across most dimensions. You have solid foundations for strategic growth. The focus now should be on optimising and future-proofing your finance function as you scale.';\r\n  if (pct >= 60) return 'Your business has reasonable financial processes in place but has meaningful gaps that may be limiting your growth, decision-making quality, or investor-readiness. Targeted CFO-level support could unlock significant value.';\r\n  if (pct >= 40) return 'Several critical areas of your finance function need immediate attention. Without better financial visibility and strategic oversight, you may be making decisions with incomplete or unreliable data \u2014 a risk that grows as your business does.';\r\n  return 'Your finance function requires urgent professionalisation. Operating without reliable financial data, forecasts, or strategic oversight exposes your business to significant risk. Expert intervention is strongly recommended.';\r\n}\r\n\r\nfunction buildFindings(dimScores) {\r\n  const findings = [];\r\n\r\n  if (dimScores.visibility >= 75) findings.push({ type:'good', head:'Strong financial visibility', body:'Your management reporting is regular and reliable \u2014 a strong foundation for strategic decision-making. Ensure this continues as your business grows in complexity.' });\r\n  else if (dimScores.visibility < 50) findings.push({ type:'risk', head:'Critical gap: Financial visibility', body:'Without timely, accurate management accounts, every business decision carries unnecessary risk. Implementing monthly reporting is typically the highest-impact first step for an SME.' });\r\n  else findings.push({ type:'warn', head:'Improve reporting frequency and depth', body:'Your reporting is functional but inconsistency or lack of granularity (cost-centre, segment analysis) is limiting your ability to make fully informed decisions.' });\r\n\r\n  if (dimScores.cashflow >= 75) findings.push({ type:'good', head:'Healthy cash flow management', body:'You are actively managing your cash cycle \u2014 forecasting, debtor collection, and working capital. This reduces financial stress and positions you well for growth investment.' });\r\n  else if (dimScores.cashflow < 50) findings.push({ type:'risk', head:'Cash flow is a business vulnerability', body:'Reactive cash management is one of the leading causes of SME failure in South Africa. A rolling 12-month forecast and active debtor management should be treated as urgent priorities.' });\r\n  else findings.push({ type:'warn', head:'Cash management needs structural improvement', body:'You have some cash awareness but lack the forecasting discipline to anticipate and avoid liquidity pressure. A CFO-led cash management framework would significantly reduce financial stress.' });\r\n\r\n  if (dimScores.strategy >= 75) findings.push({ type:'good', head:'Data-driven strategic decision-making', body:'You are using financial data to drive decisions \u2014 a significant competitive advantage. Ensure your KPI framework evolves as your business model changes.' });\r\n  else if (dimScores.strategy < 50) findings.push({ type:'risk', head:'Strategic decisions lack financial rigour', body:'Without formal scenario modelling, budgeting, and KPI review, growth decisions carry significant downside risk. CFO-level advisory typically delivers its greatest value in this area.' });\r\n  else findings.push({ type:'warn', head:'Strengthen your financial decision framework', body:'You have some strategic financial processes but they are inconsistent. Formalising your budgeting and KPI review cycle will sharpen your competitive positioning.' });\r\n\r\n  if (dimScores.compliance >= 75) findings.push({ type:'good', head:'Compliance and investor readiness are strong', body:'Your statutory obligations are met and your records are in good order. This is a critical asset if you pursue funding, investment, or an exit in future.' });\r\n  else if (dimScores.compliance < 50) findings.push({ type:'risk', head:'Compliance gaps create material business risk', body:'Outstanding SARS submissions, poor record-keeping, or an under-resourced finance team creates legal, reputational, and operational risk. This requires immediate prioritisation.' });\r\n  else findings.push({ type:'warn', head:'Compliance posture needs strengthening', body:'You are broadly compliant but not fully investor- or audit-ready. For any business considering growth capital or a transaction, this is an area to address proactively.' });\r\n\r\n  return findings;\r\n}\r\n\r\nfunction showResults() {\r\n  const total = Object.values(answers).reduce((s, a) => s + a.score, 0);\r\n  const maxTotal = TOTAL * 3;\r\n  const overallPct = Math.round((total \/ maxTotal) * 100);\r\n  const grade = getGrade(overallPct);\r\n\r\n  const dimScores = {};\r\n  Object.keys(dims).forEach(k => { dimScores[k] = calcDimScore(k); });\r\n\r\n  document.getElementById('assessment').style.display = 'none';\r\n  const resultsEl = document.getElementById('results');\r\n  resultsEl.style.display = 'block';\r\n\r\n  document.getElementById('gradeLetter').textContent = grade.letter;\r\n  document.getElementById('gradeLetter').style.color = grade.color;\r\n  document.querySelector('.grade-circle').style.borderColor = grade.color;\r\n  document.getElementById('resultsTitle').textContent = grade.title;\r\n  document.getElementById('resultsDesc').textContent = getDesc(overallPct);\r\n\r\n  const dimGrid = document.getElementById('dimGrid');\r\n  dimGrid.innerHTML = '';\r\n  Object.keys(dims).forEach(k => {\r\n    const pct = dimScores[k];\r\n    const statusText = pct >= 75 ? 'Strong' : pct >= 50 ? 'Developing' : 'Needs attention';\r\n    const statusColor = pct >= 75 ? '#1A6E47' : pct >= 50 ? '#8A6600' : '#8A1A1A';\r\n    dimGrid.innerHTML += `\r\n      <div class=\"dim-card\">\r\n        <div class=\"dim-title\">${dims[k].label}<\/div>\r\n        <div class=\"dim-score-row\">\r\n          <div class=\"dim-bar-track\"><div class=\"dim-bar-fill\" style=\"width:0%;background:${dimColors[k]}\" data-target=\"${pct}\"><\/div><\/div>\r\n          <div class=\"dim-pct\">${pct}%<\/div>\r\n        <\/div>\r\n        <div class=\"dim-status\" style=\"color:${statusColor}\">${statusText}<\/div>\r\n      <\/div>`;\r\n  });\r\n\r\n  setTimeout(() => {\r\n    document.querySelectorAll('.dim-bar-fill').forEach(el => {\r\n      el.style.width = el.dataset.target + '%';\r\n    });\r\n  }, 100);\r\n\r\n  const findings = buildFindings(dimScores);\r\n  const findingsList = document.getElementById('findingsList');\r\n  findingsList.innerHTML = '';\r\n  findings.forEach(f => {\r\n    const iconSvg = f.type === 'good'\r\n      ? '<svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><path d=\"M5 13l4 4L19 7\"\/><\/svg>'\r\n      : f.type === 'warn'\r\n      ? '<svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 9v4m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z\"\/><\/svg>'\r\n      : '<svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M6 18L18 6M6 6l12 12\"\/><\/svg>';\r\n    findingsList.innerHTML += `\r\n      <div class=\"finding-item\">\r\n        <div class=\"finding-icon ${f.type}\">${iconSvg}<\/div>\r\n        <div class=\"finding-text\"><strong>${f.head}<\/strong><p>${f.body}<\/p><\/div>\r\n      <\/div>`;\r\n  });\r\n\r\n  window.scrollTo({ top: 0, behavior: 'smooth' });\r\n  document.getElementById('progressFill').style.width = '100%';\r\n}\r\n\r\nasync function downloadReport() {\r\n  const results = document.getElementById('results');\r\n  if (!results) return;\r\n\r\n  if (!window.html2canvas || !window.jspdf) {\r\n    alert('PDF tools are still loading. Please wait a few seconds and try again.');\r\n    return;\r\n  }\r\n\r\n  const downloadBtn = document.querySelector('.download-report-btn');\r\n  if (downloadBtn) {\r\n    downloadBtn.disabled = true;\r\n    downloadBtn.textContent = 'Generating PDF...';\r\n  }\r\n\r\n  try {\r\n    if (document.fonts && document.fonts.ready) {\r\n      try { await document.fonts.ready; } catch(e) {}\r\n    }\r\n\r\n    const pdfWrapper = document.createElement('div');\r\n    pdfWrapper.className = 'vha-scorecard pdf-export';\r\n    pdfWrapper.style.position = 'absolute';\r\n    pdfWrapper.style.left = '-9999px';\r\n    pdfWrapper.style.top = '0';\r\n    pdfWrapper.style.width = '1123px';\r\n    pdfWrapper.style.maxWidth = '1123px';\r\n    pdfWrapper.style.minWidth = '1123px';\r\n    pdfWrapper.style.background = '#FFFFFF';\r\n    pdfWrapper.style.zIndex = '-1';\r\n\r\n    const pdfResults = results.cloneNode(true);\r\n    pdfResults.style.display = 'block';\r\n\r\n    pdfResults\r\n      .querySelectorAll('.print-note, .pdf-actions, .download-report-btn, .retake-wrap, .retake-btn, .vha-cta')\r\n      .forEach(el => el.remove());\r\n\r\n    pdfWrapper.appendChild(pdfResults);\r\n    document.body.appendChild(pdfWrapper);\r\n\r\n    const canvas = await html2canvas(pdfWrapper, {\r\n      scale: 2,\r\n      useCORS: true,\r\n      backgroundColor: '#FFFFFF',\r\n      width: 1123,\r\n      windowWidth: 1123,\r\n      scrollX: 0,\r\n      scrollY: 0\r\n    });\r\n\r\n    const { jsPDF } = window.jspdf;\r\n    const pdf = new jsPDF('l', 'mm', 'a4');\r\n    const pageWidth = pdf.internal.pageSize.getWidth();\r\n    const pageHeight = pdf.internal.pageSize.getHeight();\r\n    const margin = 8;\r\n    const maxWidth = pageWidth - (margin * 2);\r\n    const maxHeight = pageHeight - (margin * 2);\r\n\r\n    const imgData = canvas.toDataURL('image\/jpeg', 0.98);\r\n    let imgWidth = maxWidth;\r\n    let imgHeight = (canvas.height * imgWidth) \/ canvas.width;\r\n\r\n    if (imgHeight > maxHeight) {\r\n      imgHeight = maxHeight;\r\n      imgWidth = (canvas.width * imgHeight) \/ canvas.height;\r\n    }\r\n\r\n    const x = (pageWidth - imgWidth) \/ 2;\r\n    const y = (pageHeight - imgHeight) \/ 2;\r\n\r\n    pdf.addImage(imgData, 'JPEG', x, y, imgWidth, imgHeight);\r\n    pdf.save('finance-health-check-report.pdf');\r\n\r\n    pdfWrapper.remove();\r\n  } catch (error) {\r\n    console.error(error);\r\n    alert('PDF could not be generated. Please try again.');\r\n  } finally {\r\n    if (downloadBtn) {\r\n      downloadBtn.disabled = false;\r\n      downloadBtn.textContent = 'Download PDF Report';\r\n    }\r\n  }\r\n}\r\n\r\nfunction retake() {\r\n  Object.keys(answers).forEach(k => delete answers[k]);\r\n  document.querySelectorAll('.option-btn').forEach(b => b.classList.remove('selected'));\r\n  document.querySelectorAll('.question-card').forEach(c => c.classList.remove('answered'));\r\n  document.getElementById('results').style.display = 'none';\r\n  document.getElementById('assessment').style.display = 'block';\r\n  document.getElementById('submitBtn').disabled = true;\r\n  document.getElementById('submitNote').textContent = 'Answer all 20 questions to unlock your personalised report.';\r\n  document.getElementById('submitNote').style.color = '';\r\n  document.getElementById('progressFill').style.width = '0%';\r\n  document.getElementById('progressCount').textContent = '0 \/ 20';\r\n  window.scrollTo({ top: 0, behavior: 'smooth' });\r\n}\r\n<\/script>\r\n\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-95b7754 e-flex e-con-boxed e-con e-parent\" data-id=\"95b7754\" 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-2911ef3 elementor-widget elementor-widget-text-editor\" data-id=\"2911ef3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>VHA Accounting Solutions | This assessment is for diagnostic purposes only and does not constitute financial or legal advice. | Results are based on your self-reported responses.<\/p>\t\t\t\t\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>How healthy is Your finance function? VHA Accounting Solutions \u2014 Complimentary Assessment. This 5-minute assessment benchmarks your business&#8217;s financial operations across four critical dimensions \u2014 and tells you exactly where CFO-level oversight can drive the greatest return. 5 minutes to complete 20 diagnostic questions Personalised action report Progress 0 \/ 20 1 Financial Visibility &#038; [&hellip;]<\/p>\n","protected":false},"author":260,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"footnotes":""},"class_list":["post-33628","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/preview.sg-build.co.za\/vha\/wp-json\/wp\/v2\/pages\/33628","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/preview.sg-build.co.za\/vha\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/preview.sg-build.co.za\/vha\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/preview.sg-build.co.za\/vha\/wp-json\/wp\/v2\/users\/260"}],"replies":[{"embeddable":true,"href":"https:\/\/preview.sg-build.co.za\/vha\/wp-json\/wp\/v2\/comments?post=33628"}],"version-history":[{"count":103,"href":"https:\/\/preview.sg-build.co.za\/vha\/wp-json\/wp\/v2\/pages\/33628\/revisions"}],"predecessor-version":[{"id":33790,"href":"https:\/\/preview.sg-build.co.za\/vha\/wp-json\/wp\/v2\/pages\/33628\/revisions\/33790"}],"wp:attachment":[{"href":"https:\/\/preview.sg-build.co.za\/vha\/wp-json\/wp\/v2\/media?parent=33628"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}