{"id":10261,"date":"2026-05-12T11:11:18","date_gmt":"2026-05-12T09:11:18","guid":{"rendered":"https:\/\/www.juspropa.com\/za\/?page_id=10261"},"modified":"2026-05-19T13:14:51","modified_gmt":"2026-05-19T11:14:51","slug":"partners","status":"publish","type":"page","link":"https:\/\/www.juspropa.com\/za\/partners\/","title":{"rendered":"Partner with Juspropa"},"content":{"rendered":"\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Roboto:wght@400;500;700;900&family=Inter:wght@300;400;500;600;700;800&display=swap');\n\nhtml { scroll-behavior: smooth; }\n\nbody.page-id-10261 #wt-header {\n  background: linear-gradient(90deg, #ffffff 0%, #f4f4f4 100%) !important;\n  border-bottom: 1px solid rgba(0,0,0,0.12) !important;\n  box-shadow: 0 10px 28px rgba(0,0,0,0.08) !important;\n  position: relative !important;\n  z-index: 9999 !important;\n}\n\nbody.page-id-10261 #wt-header .wt-navigationarea {\n  background: linear-gradient(90deg, #ffffff 0%, #eeeeee 100%) !important;\n}\n\nbody.page-id-10261 #wt-header a,\nbody.page-id-10261 #wt-header a i,\nbody.page-id-10261 #wt-header .menu-item-has-icon a:before {\n  color: #111111 !important;\n  text-shadow: none !important;\n}\n\nbody.page-id-10261 #wt-header a:hover,\nbody.page-id-10261 #wt-header .current-menu-item > a {\n  color: #E8000A !important;\n}\n\nbody.page-id-10261 #wt-main,\nbody.page-id-10261 .wt-main,\nbody.page-id-10261 .elementor,\nbody.page-id-10261 .elementor-location-footer {\n  margin-bottom: 0 !important;\n  padding-bottom: 0 !important;\n}\n\nbody.page-id-10261 footer,\nbody.page-id-10261 #wt-footer,\nbody.page-id-10261 .wt-footer {\n  margin-top: 0 !important;\n}\n\n.jp-root {\n  --navy: #080808;\n  --navy-mid: #141414;\n  --amber: #E8000A;\n  --amber-light: #FF2D35;\n  --white: #FFFFFF;\n  --off-white: #F8F8F6;\n  --light-grey: #EBEBEB;\n  --mid-grey: #909090;\n  --text-dark: #111111;\n  --text-body: #52585F;\n  --green: #1DB97A;\n  --soft-red: rgba(232,0,10,0.08);\n  --card-shadow: 0 32px 80px rgba(0,0,0,0.13);\n  --card-shadow-soft: 0 16px 48px rgba(0,0,0,0.07);\n  font-family: 'Inter', Arial, sans-serif;\n  color: var(--text-dark);\n  background: var(--off-white);\n  overflow-x: hidden;\n}\n\n.jp-root *, .jp-root *::before, .jp-root *::after { box-sizing: border-box; margin: 0; padding: 0; }\n.jp-root a { text-decoration: none; color: inherit; }\n.jp-root ul { list-style: none; }\n.jp-root a:focus-visible, .jp-root button:focus-visible { outline: 2px solid var(--amber-light); outline-offset: 4px; border-radius: 4px; }\n\n@keyframes jp-rise-in { from { opacity:0; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }\n@keyframes jp-float { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-7px); } }\n@keyframes jp-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }\n\n.jp-section { padding: 100px 0; position: relative; }\n.jp-container { max-width: 1200px; margin: 0 auto; padding: 0 32px; }\n\n.jp-label { display: inline-flex; align-items: center; gap: 10px; font-size: 11px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--amber); margin-bottom: 18px; }\n.jp-label::before { content: ''; display: block; width: 28px; height: 2px; background: var(--amber); border-radius: 2px; }\n\n.jp-h1 { font-family: 'Inter', Arial, sans-serif; font-size: clamp(40px, 5.5vw, 68px); font-weight: 800; line-height: 1.06; color: var(--navy); letter-spacing: -0.02em; }\n.jp-h2 { font-family: 'Inter', Arial, sans-serif; font-size: clamp(30px, 4vw, 48px); font-weight: 700; line-height: 1.1; color: var(--navy); letter-spacing: -0.02em; }\n.jp-h3 { font-family: 'Roboto', sans-serif; font-size: 18px; font-weight: 700; color: var(--navy); line-height: 1.3; }\n.jp-body { font-size: 16px; line-height: 1.8; color: var(--text-body); }\n.jp-body-sm { font-size: 14px; line-height: 1.72; color: var(--text-body); }\n.jp-section-head { max-width: 700px; }\n.jp-section-head.center { margin: 0 auto; text-align: center; }\n.jp-section-head.center .jp-label { justify-content: center; }\n.jp-section-head .jp-body { margin-top: 18px; }\n\n\/* HERO *\/\n.jp-hero {\n  background-color: #060606;\n  background-image:\n    radial-gradient(ellipse at 10% 20%, rgba(232,0,10,0.32) 0%, transparent 36%),\n    radial-gradient(ellipse at 88% 12%, rgba(232,0,10,0.18) 0%, transparent 30%),\n    url('https:\/\/www.juspropa.com\/za\/wp-content\/uploads\/2026\/05\/partner-hero.png');\n  background-size: cover; background-position: center right; background-repeat: no-repeat;\n  position: relative; padding: 112px 0 104px; overflow: hidden;\n}\n.jp-hero::before { content: ''; position: absolute; inset: 0; background:\n  linear-gradient(90deg, rgba(120,0,0,0.92) 0%, rgba(90,0,0,0.82) 18%, rgba(20,0,0,0.70) 40%, rgba(0,0,0,0.38) 68%, rgba(0,0,0,0.10) 100%),\n  repeating-linear-gradient(135deg, rgba(255,255,255,0.02) 0px, rgba(255,255,255,0.02) 1px, transparent 1px, transparent 22px);\n  pointer-events: none;\n}\n.jp-hero::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent, rgba(232,0,10,0.55), transparent); }\n.jp-hero > .jp-container { position: relative; z-index: 2; }\n\n.jp-hero-grid { display: grid; grid-template-columns: minmax(0, 680px); gap: 64px; align-items: center; }\n.jp-hero-copy { max-width: 620px; }\n.jp-hero .jp-label { color: rgba(255,255,255,0.82); justify-content: flex-start; }\n.jp-hero .jp-label::before { background: rgba(255,255,255,0.72); }\n.jp-hero .jp-h1 { color: var(--white); }\n.jp-hero .jp-h1 em { font-style: italic; color: var(--amber); display: block; }\n.jp-hero-desc { font-size: 17px; line-height: 1.8; color: rgba(255,255,255,0.66); margin-top: 24px; max-width: 540px; }\n.jp-hero-cta { margin-top: 44px; display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }\n\n.jp-btn-primary { display: inline-flex; align-items: center; gap: 10px; background: linear-gradient(135deg, #E8000A 0%, #FF2D35 100%); color: var(--white); font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0.04em; padding: 15px 30px; border-radius: 999px; border: none; cursor: pointer; box-shadow: 0 8px 32px rgba(232,0,10,0.38), 0 2px 8px rgba(0,0,0,0.2); transition: box-shadow 0.25s, transform 0.2s; }\n.jp-btn-primary:hover { box-shadow: 0 14px 44px rgba(232,0,10,0.48); transform: translateY(-2px); }\n.jp-btn-outline { display: inline-flex; align-items: center; gap: 10px; background: rgba(255,255,255,0.07); color: #ffffff !important; font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 500; padding: 15px 28px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.2); cursor: pointer; backdrop-filter: blur(8px); transition: background 0.2s, border-color 0.2s, transform 0.2s; }\n.jp-btn-outline:hover { background: rgba(255,255,255,0.11); border-color: rgba(255,255,255,0.35); transform: translateY(-2px); }\n.jp-hero-note { display: inline-flex; align-items: center; gap: 10px; margin-top: 24px; font-size: 13px; color: rgba(255,255,255,0.5); }\n.jp-hero-note svg { flex-shrink: 0; color: var(--amber); }\n\n.jp-hero-visual { position: relative; }\n.jp-hero-img-card { position: relative; border-radius: 24px; overflow: hidden; box-shadow: 0 48px 120px rgba(0,0,0,0.65); animation: jp-rise-in 0.75s ease both 0.1s; }\n.jp-hero-img-card img { width: 100%; height: 460px; object-fit: cover; display: block; }\n.jp-hero-img-stats { position: absolute; bottom: 0; left: 0; right: 0; padding: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }\n.jp-hero-img-stat { padding: 14px 16px; border-radius: 14px; background: rgba(255,255,255,0.1); backdrop-filter: blur(18px); border: 1px solid rgba(255,255,255,0.15); }\n.jp-hero-img-stat-num { font-family: 'Roboto', sans-serif; font-size: 22px; font-weight: 800; color: var(--white); line-height: 1; }\n.jp-hero-img-stat-label { font-size: 11px; color: rgba(255,255,255,0.58); margin-top: 5px; font-weight: 500; letter-spacing: 0.06em; }\n.jp-hero-badge { position: absolute; top: 220px; right: -14px; background: linear-gradient(135deg, #E8000A, #FF2D35); border-radius: 16px; padding: 14px 18px; box-shadow: 0 10px 28px rgba(232,0,10,0.45); animation: jp-float 3.5s ease-in-out infinite; }\n.jp-hero-badge-text { font-size: 11px; font-weight: 700; color: var(--white); letter-spacing: 0.08em; text-transform: uppercase; }\n.jp-hero-badge-sub { font-size: 10px; color: rgba(255,255,255,0.72); margin-top: 3px; }\n\n\/* PROOF STRIP *\/\n.jp-proof-strip { position: relative; z-index: 4; margin-top: -52px; padding-bottom: 0; }\n.jp-proof-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; }\n.jp-proof-card { padding: 26px 22px; border-radius: 22px; background: var(--white); border: 1px solid rgba(0,0,0,0.055); box-shadow: var(--card-shadow-soft); transition: transform 0.25s, box-shadow 0.25s; }\n.jp-proof-card:hover { transform: translateY(-3px); box-shadow: var(--card-shadow); }\n.jp-proof-icon { width: 46px; height: 46px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--soft-red); color: var(--amber); }\n.jp-proof-icon svg { width: 20px; height: 20px; }\n.jp-proof-title { font-family: 'Roboto', sans-serif; font-size: 16px; font-weight: 700; color: var(--navy); margin: 18px 0 8px; }\n.jp-proof-copy { font-size: 13px; line-height: 1.65; color: var(--text-body); }\n\n\/* TRUST STRIP *\/\n.jp-trust { background: var(--white); border-top: 1px solid var(--light-grey); border-bottom: 1px solid var(--light-grey); padding: 30px 0; }\n.jp-trust-inner { display: flex; align-items: center; gap: 48px; flex-wrap: wrap; }\n.jp-trust-label { font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mid-grey); white-space: nowrap; flex-shrink: 0; }\n.jp-trust-logos { display: flex; align-items: center; gap: 40px; flex-wrap: wrap; flex: 1; }\n.jp-trust-logo { font-family: 'Roboto', sans-serif; font-size: 15px; font-weight: 700; color: #C8CDD4; letter-spacing: -0.02em; white-space: nowrap; transition: color 0.2s; }\n.jp-trust-logo:hover { color: #909090; }\n\n\/* PARTNERS *\/\n.jp-partners { background: var(--off-white); }\n.jp-partners-layout { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 32px; align-items: end; }\n.jp-partners-highlights { display: grid; gap: 16px; }\n.jp-partners-stat { padding: 24px 22px; border-radius: 20px; background: linear-gradient(145deg, #0D0D0D, #060606); border: 1px solid rgba(232,0,10,0.14); box-shadow: 0 20px 50px rgba(0,0,0,0.22); }\n.jp-partners-stat strong { display: block; font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--amber); margin-bottom: 10px; }\n.jp-partners-stat span { font-size: 14px; line-height: 1.72; color: rgba(255,255,255,0.62); }\n.jp-partners-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 14px; margin-top: 40px; }\n.jp-partners-card { background: var(--white); border: 1px solid rgba(0,0,0,0.055); border-radius: 20px; padding: 22px 20px; box-shadow: 0 8px 24px rgba(0,0,0,0.04); transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s; }\n.jp-partners-card:hover { transform: translateY(-3px); box-shadow: 0 20px 48px rgba(0,0,0,0.09); border-color: rgba(232,0,10,0.2); }\n.jp-partners-card-top { display: flex; align-items: flex-start; gap: 14px; }\n.jp-partners-icon { width: 44px; height: 44px; border-radius: 12px; background: var(--soft-red); border: 1px solid rgba(232,0,10,0.14); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\n.jp-partners-icon svg { width: 20px; height: 20px; color: var(--amber); }\n.jp-partners-name { font-family: 'Roboto', sans-serif; font-size: 17px; font-weight: 700; line-height: 1.25; color: var(--navy); }\n.jp-partners-desc { margin-top: 6px; font-size: 13px; line-height: 1.6; color: var(--text-body); }\n\n\/* FLOW *\/\n.jp-flow {\n  background-color: #060606;\n  background-image:\n    linear-gradient(90deg, rgba(10,10,10,0.9) 0%, rgba(20,0,0,0.72) 42%, rgba(6,6,6,0.86) 100%),\n    url('https:\/\/www.juspropa.com\/za\/wp-content\/uploads\/2026\/05\/partner-workflow.png');\n  background-size: cover;\n  background-position: center;\n  background-repeat: no-repeat;\n  padding: 100px 0 88px;\n  border-top: 1px solid rgba(255,255,255,0.05);\n  position: relative;\n  overflow: hidden;\n}\n.jp-flow::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse at 80% 20%, rgba(232,0,10,0.13), transparent 42%); pointer-events: none; }\n.jp-flow-wrap {\n  position: relative;\n  z-index: 1;\n  padding: 40px 36px 36px;\n  border-radius: 28px;\n  border: 1px solid rgba(255,255,255,0.07);\n  background: linear-gradient(145deg, rgba(4,4,4,0.84), rgba(8,8,8,0.74));\n}\n.jp-flow-head { text-align: center; max-width: 760px; margin: 0 auto 40px; }\n.jp-flow-head .jp-label { justify-content: center; }\n.jp-flow-title { font-family: 'Playfair Display', Georgia, serif; font-size: clamp(24px, 3.2vw, 36px); font-weight: 700; line-height: 1.14; letter-spacing: -0.02em; color: var(--white); }\n.jp-flow-copy { margin-top: 16px; font-size: 15px; line-height: 1.75; color: rgba(255,255,255,0.56); max-width: 560px; margin-left: auto; margin-right: auto; }\n.jp-flow-inner { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; }\n.jp-flow-node { display: flex; flex-direction: column; align-items: center; gap: 12px; }\n.jp-flow-bubble { width: 116px; height: 116px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; }\n.jp-flow-bubble.accent { background: linear-gradient(135deg, #E8000A, #FF2D35); box-shadow: 0 0 50px rgba(232,0,10,0.4); }\n.jp-flow-bubble.dark { background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.14); }\n.jp-flow-bubble.tenant { background: linear-gradient(135deg, #1E90FF, #4169E1); box-shadow: 0 0 50px rgba(30,144,255,0.4); }\n.jp-flow-bubble.principal { background: linear-gradient(135deg, #1DB97A, #00C26F); box-shadow: 0 0 50px rgba(29,185,122,0.4); }\n.jp-flow-bubble svg { width: 28px; height: 28px; }\n.jp-flow-bubble-label { font-family: 'Roboto', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 0.1em; text-align: center; color: var(--navy); }\n.jp-flow-bubble.dark .jp-flow-bubble-label { color: var(--white); }\n.jp-flow-bubble.tenant .jp-flow-bubble-label { color: var(--white); }\n.jp-flow-bubble.principal .jp-flow-bubble-label { color: var(--white); }\n.jp-flow-node-name { font-size: 13px; font-weight: 500; color: rgba(255,255,255,0.58); text-align: center; }\n.jp-flow-arrow { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 0 18px; padding-bottom: 36px; }\n.jp-flow-arrow-line { display: flex; align-items: center; }\n.jp-flow-arrow-label { font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.3); font-weight: 500; white-space: nowrap; margin-bottom: 4px; }\n.jp-flow-divider { width: 64px; height: 1px; background: rgba(232,0,10,0.45); }\n.jp-flow-divider-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--amber); }\n.jp-flow-blocked { position: relative; padding: 0 20px; padding-bottom: 36px; }\n.jp-flow-blocked-line { display: flex; align-items: center; opacity: 0.3; }\n.jp-flow-blocked-line .jp-flow-divider { background: rgba(255,255,255,0.3); }\n.jp-flow-blocked-line .jp-flow-divider-dot { background: rgba(255,255,255,0.4); }\n.jp-flow-no-contact { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(255,255,255,0.28); font-weight: 500; white-space: nowrap; margin-bottom: 4px; display: flex; align-items: center; gap: 5px; }\n.jp-flow-caption { text-align: center; font-size: 13px; color: rgba(255,255,255,0.36); margin: 32px auto 0; line-height: 1.72; max-width: 680px; }\n\n\/* PAIN *\/\n.jp-pain { background: #e1e1e1; background-image: none; }\n.jp-pain-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 56px; }\n.jp-pain-card { background: var(--off-white); border: 1px solid rgba(0,0,0,0.055); border-radius: 20px; padding: 30px 28px; position: relative; overflow: hidden; transition: box-shadow 0.25s, transform 0.25s; }\n.jp-pain-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--amber), rgba(232,0,10,0.25)); }\n.jp-pain-card:hover { box-shadow: 0 20px 56px rgba(0,0,0,0.09); transform: translateY(-3px); }\n.jp-pain-icon { width: 44px; height: 44px; border-radius: 12px; background: var(--soft-red); display: flex; align-items: center; justify-content: center; margin-bottom: 18px; }\n.jp-pain-icon svg { width: 20px; height: 20px; color: var(--amber); }\n.jp-pain-card .jp-h3 { font-size: 17px; margin-bottom: 10px; }\n\n\/* HOW *\/\n.jp-how { background: var(--off-white); }\n.jp-how-header { display: grid; grid-template-columns: 1fr 420px; gap: 64px; align-items: stretch; margin-bottom: 72px; }\n.jp-how-summary { max-width: 380px; justify-self: end; padding: 28px; border-radius: 22px; border: 1px solid rgba(232,0,10,0.14); background: linear-gradient(145deg, rgba(232,0,10,0.06), rgba(232,0,10,0.02)); box-shadow: var(--card-shadow-soft); }\n.jp-how-summary-pill { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 999px; background: var(--white); color: var(--amber); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; box-shadow: 0 2px 8px rgba(0,0,0,0.06); }\n.jp-how-summary .jp-body-sm { margin-top: 16px; }\n.jp-how-summary-tags { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }\n.jp-how-summary-tag { display: inline-flex; padding: 8px 14px; border-radius: 999px; background: var(--white); border: 1px solid rgba(232,0,10,0.12); color: var(--navy); font-size: 12px; font-weight: 600; }\n.jp-how-layout { display: grid; grid-template-columns: 1fr 380px; gap: 60px; align-items: start; }\n.jp-steps { display: flex; flex-direction: column; gap: 0; }\n.jp-step { display: grid; grid-template-columns: 72px 1fr; gap: 20px; position: relative; }\n.jp-step:not(:last-child)::after { content: ''; position: absolute; left: 35px; top: 68px; bottom: -28px; width: 2px; background: repeating-linear-gradient(to bottom, var(--amber) 0px, var(--amber) 6px, transparent 6px, transparent 14px); }\n.jp-step-num-wrap { display: flex; flex-direction: column; align-items: center; flex-shrink: 0; }\n.jp-step-circle { width: 54px; height: 54px; border-radius: 50%; background: var(--navy); display: flex; align-items: center; justify-content: center; flex-shrink: 0; position: relative; z-index: 1; box-shadow: 0 6px 20px rgba(0,0,0,0.18); }\n.jp-step-circle.active { background: linear-gradient(135deg, #E8000A, #FF2D35); }\n.jp-step-n { font-family: 'Roboto', sans-serif; font-size: 18px; font-weight: 800; color: var(--white); }\n.jp-step-body { padding: 22px 24px 26px; background: var(--white); border: 1px solid rgba(0,0,0,0.055); border-radius: 20px; box-shadow: 0 8px 24px rgba(0,0,0,0.04); transition: transform 0.25s, box-shadow 0.25s, border-color 0.25s; }\n.jp-step:hover .jp-step-body { transform: translateY(-2px); box-shadow: 0 20px 48px rgba(0,0,0,0.08); border-color: rgba(232,0,10,0.16); }\n.jp-step-body .jp-h3 { margin-bottom: 8px; }\n.jp-step-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--amber); background: var(--soft-red); padding: 5px 12px; border-radius: 999px; margin-top: 12px; }\n.jp-how-aside { background: #080808; border-radius: 20px; padding: 36px 32px; align-self: start; position: sticky; top: 32px; border: 1px solid rgba(255,255,255,0.07); box-shadow: var(--card-shadow); }\n.jp-how-aside-summary { padding: 20px; border-radius: 16px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08); margin-bottom: 22px; }\n.jp-how-aside-summary strong { display: block; color: var(--white); font-size: 16px; font-weight: 700; margin-bottom: 8px; }\n.jp-how-aside-summary span { display: block; font-size: 13px; line-height: 1.65; color: rgba(255,255,255,0.55); }\n.jp-aside-title { font-family: 'Roboto', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--amber); margin-bottom: 20px; }\n.jp-aside-item { display: flex; gap: 14px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,0.06); }\n.jp-aside-item:last-child { border-bottom: none; padding-bottom: 0; }\n.jp-aside-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--amber); margin-top: 7px; flex-shrink: 0; }\n.jp-aside-text { font-size: 13px; color: rgba(255,255,255,0.6); line-height: 1.65; }\n.jp-aside-text strong { color: var(--white); font-weight: 600; display: block; margin-bottom: 3px; }\n\n\/* LIFT *\/\n.jp-lift { background: #080808; }\n.jp-lift .jp-h2 { color: var(--white); }\n.jp-lift .jp-body { color: rgba(255,255,255,0.58); }\n.jp-lift-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 56px; }\n.jp-lift-card { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); border-radius: 20px; padding: 32px 28px; transition: background 0.25s, transform 0.25s, border-color 0.25s; }\n.jp-lift-card:hover { background: rgba(255,255,255,0.065); transform: translateY(-3px); border-color: rgba(232,0,10,0.22); }\n.jp-lift-card-icon { width: 50px; height: 50px; border-radius: 14px; background: rgba(232,0,10,0.1); border: 1px solid rgba(232,0,10,0.2); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; }\n.jp-lift-card-icon svg { width: 22px; height: 22px; color: var(--amber); }\n.jp-lift-card .jp-h3 { color: var(--white); font-size: 17px; margin-bottom: 10px; }\n.jp-lift-card .jp-body-sm { color: rgba(255,255,255,0.5); }\n\n\/* BENEFITS *\/\n.jp-benefits { background: var(--white); }\n.jp-benefits-layout { display: grid; grid-template-columns: 400px 1fr; gap: 80px; align-items: start; margin-top: 56px; }\n.jp-benefits-intro { position: sticky; top: 40px; }\n.jp-benefits-intro .jp-h2 { margin-bottom: 20px; }\n.jp-benefits-intro .jp-body { margin-bottom: 28px; }\n.jp-benefits-img { border-radius: 20px; overflow: hidden; box-shadow: var(--card-shadow-soft); margin-top: 28px; }\n.jp-benefits-img img { width: 100%; height: 220px; object-fit: cover; display: block; }\n.jp-stat-block { background: #080808; border-radius: 20px; padding: 28px; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; border: 1px solid rgba(255,255,255,0.07); box-shadow: var(--card-shadow); }\n.jp-stat-item { text-align: center; }\n.jp-stat-num { font-family: 'Playfair Display', Georgia, serif; font-size: 36px; font-weight: 700; color: var(--amber); line-height: 1; }\n.jp-stat-desc { font-size: 12px; color: rgba(255,255,255,0.48); margin-top: 6px; line-height: 1.5; }\n.jp-benefit-list { display: flex; flex-direction: column; gap: 14px; }\n.jp-benefit-item { background: var(--off-white); border: 1px solid rgba(0,0,0,0.055); border-radius: 18px; padding: 24px 26px; display: flex; gap: 20px; align-items: flex-start; transition: box-shadow 0.25s, border-color 0.25s, transform 0.25s; }\n.jp-benefit-item:hover { box-shadow: 0 12px 36px rgba(0,0,0,0.08); border-color: rgba(232,0,10,0.2); transform: translateX(3px); }\n.jp-benefit-check { width: 38px; height: 38px; border-radius: 10px; background: rgba(29,185,122,0.1); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\n.jp-benefit-check svg { width: 16px; height: 16px; color: var(--green); }\n.jp-benefit-item .jp-h3 { font-size: 16px; margin-bottom: 6px; }\n\n\/* TESTIMONIALS *\/\n.jp-testimonials { background: var(--off-white); }\n.jp-testi-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 56px; }\n.jp-testi-card { background: var(--white); border: 1px solid rgba(0,0,0,0.055); border-radius: 24px; padding: 34px 30px; display: flex; flex-direction: column; box-shadow: 0 8px 32px rgba(0,0,0,0.05); transition: transform 0.25s, box-shadow 0.25s; }\n.jp-testi-card:hover { transform: translateY(-4px); box-shadow: 0 28px 72px rgba(0,0,0,0.1); }\n.jp-testi-stars { display: flex; gap: 3px; margin-bottom: 22px; }\n.jp-testi-stars svg { width: 16px; height: 16px; fill: #F59E0B; }\n.jp-testi-quote { font-size: 15px; line-height: 1.8; color: var(--text-dark); flex: 1; position: relative; padding-top: 10px; }\n.jp-testi-quote::before { content: '\\201C'; font-family: 'Playfair Display', Georgia, serif; font-size: 72px; color: var(--amber); opacity: 0.2; position: absolute; top: -20px; left: -6px; line-height: 1; pointer-events: none; }\n.jp-testi-author { display: flex; align-items: center; gap: 14px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--light-grey); }\n.jp-testi-avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 2px solid var(--light-grey); }\n.jp-testi-initial { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #111111, #E8000A); color: #ffffff; font-weight: 800; font-size: 14px; letter-spacing: 0.04em; }\n.jp-testi-name { font-family: 'Roboto', sans-serif; font-size: 15px; font-weight: 700; color: var(--navy); }\n.jp-testi-role { font-size: 12px; color: var(--mid-grey); margin-top: 2px; }\n\n\/* FAQ *\/\n.jp-faq { background: var(--white); }\n.jp-faq-list { margin-top: 56px; border-top: 1px solid var(--light-grey); }\n.jp-faq-item { border-bottom: 1px solid var(--light-grey); }\n.jp-faq-btn { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px 0; background: none; border: none; cursor: pointer; text-align: left; font-family: 'Roboto', sans-serif; font-size: 17px; font-weight: 700; color: var(--navy); line-height: 1.3; transition: color 0.2s; }\n.jp-faq-btn:hover { color: var(--amber); }\n.jp-faq-chevron { flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid var(--light-grey); display: flex; align-items: center; justify-content: center; color: var(--mid-grey); transition: background 0.25s, border-color 0.25s, color 0.25s, transform 0.3s; }\n.jp-faq-item.open .jp-faq-chevron { background: var(--amber); border-color: var(--amber); color: var(--white); transform: rotate(180deg); }\n.jp-faq-body { display: none; padding: 0 48px 24px 0; font-size: 15px; line-height: 1.8; color: var(--text-body); }\n.jp-faq-item.open .jp-faq-body { display: block; }\n\n\/* CTA *\/\n.jp-cta { background: linear-gradient(135deg, #E8000A 0%, #C40008 55%, #A20007 100%); padding: 100px 0 76px; position: relative; overflow: hidden; margin-bottom: 0; }\n.jp-cta {\n  background-image:\n    linear-gradient(135deg, rgba(232,0,10,0.94) 0%, rgba(196,0,8,0.9) 52%, rgba(20,0,0,0.82) 100%),\n    url('https:\/\/www.juspropa.com\/za\/wp-content\/uploads\/2026\/05\/partner-team.png');\n  background-size: cover;\n  background-position: center;\n}\n.jp-cta::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(135deg, rgba(255,255,255,0.035) 0px, rgba(255,255,255,0.035) 1px, transparent 1px, transparent 24px); pointer-events: none; }\n.jp-cta::after { content: ''; position: absolute; top: -200px; right: -200px; width: 520px; height: 520px; border-radius: 50%; background: radial-gradient(circle, rgba(255,255,255,0.2), transparent 70%); pointer-events: none; }\n.jp-cta-inner { display: flex; align-items: stretch; justify-content: space-between; gap: 48px; position: relative; z-index: 1; }\n.jp-cta-copy { flex: 1; max-width: 560px; }\n.jp-cta .jp-h2 { color: var(--white); max-width: 520px; }\n.jp-cta .jp-body { color: rgba(255,255,255,0.76); margin-top: 14px; }\n.jp-cta-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }\n.jp-cta-chip { display: inline-flex; align-items: center; padding: 8px 14px; border-radius: 999px; background: rgba(255,255,255,0.15); border: 1px solid rgba(255,255,255,0.22); font-size: 12px; font-weight: 600; color: var(--white); }\n.jp-cta-card { width: min(100%,380px); padding: 28px; border-radius: 24px; background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.22); box-shadow: 0 24px 64px rgba(0,0,0,0.18); backdrop-filter: blur(16px); }\n.jp-cta-card-title { font-family: 'Roboto', sans-serif; font-size: 19px; font-weight: 700; color: var(--white); }\n.jp-cta-card-copy { margin-top: 8px; font-size: 14px; line-height: 1.65; color: rgba(255,255,255,0.7); }\n.jp-cta-steps { display: flex; flex-direction: column; gap: 14px; margin: 22px 0 26px; }\n.jp-cta-step { display: flex; gap: 14px; align-items: flex-start; }\n.jp-cta-step-num { width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,0.2); border: 1px solid rgba(255,255,255,0.3); color: var(--white); font-family: 'Roboto', sans-serif; font-size: 14px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }\n.jp-cta-step-copy { font-size: 13px; line-height: 1.6; color: rgba(255,255,255,0.72); }\n.jp-cta-step-copy strong { display: block; color: var(--white); margin-bottom: 2px; font-weight: 600; }\n.jp-btn-dark { display: inline-flex; align-items: center; gap: 10px; background: var(--white); color: var(--amber); font-family: 'Inter', sans-serif; font-size: 14px; font-weight: 700; letter-spacing: 0.04em; padding: 16px 32px; border-radius: 999px; border: none; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,0.14); transition: box-shadow 0.25s, transform 0.2s; }\n.jp-btn-dark:hover { box-shadow: 0 14px 36px rgba(0,0,0,0.22); transform: translateY(-2px); }\n.jp-cta-btns { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }\n.jp-phone-link { font-size: 13px; color: rgba(255,255,255,0.72); font-weight: 500; display: flex; align-items: center; gap: 8px; }\n\n\/* MODAL *\/\n.jp-modal-overlay { position: fixed; inset: 0; z-index: 2147483000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(0,0,0,0.72); backdrop-filter: blur(6px); opacity: 0; pointer-events: none; transition: opacity 0.3s ease; }\n.jp-modal-overlay.open { opacity: 1; pointer-events: all; }\n.jp-modal { position: relative; width: 100%; max-width: 560px; max-height: 90vh; overflow-y: auto; background: #0f0f0f; border: 1px solid rgba(255,255,255,0.09); border-radius: 24px; box-shadow: 0 48px 120px rgba(0,0,0,0.7); transform: translateY(24px) scale(0.98); transition: transform 0.35s cubic-bezier(0.34,1.56,0.64,1), opacity 0.3s ease; opacity: 0; scrollbar-width: thin; scrollbar-color: rgba(232,0,10,0.4) transparent; }\n.jp-modal-overlay.open .jp-modal { transform: translateY(0) scale(1); opacity: 1; }\n.jp-modal-header { padding: 32px 32px 0; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }\n.jp-modal-header-copy .jp-label { margin-bottom: 10px; }\n.jp-modal-title { font-family: 'Inter', sans-serif; font-size: 22px; font-weight: 800; color: var(--white); line-height: 1.2; letter-spacing: -0.02em; }\n.jp-modal-sub { font-size: 13px; color: rgba(255,255,255,0.48); margin-top: 6px; line-height: 1.6; }\n.jp-modal-close { flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); color: rgba(255,255,255,0.6); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: background 0.2s, color 0.2s; margin-top: 2px; }\n.jp-modal-close:hover { background: rgba(232,0,10,0.18); color: var(--white); border-color: rgba(232,0,10,0.4); }\n.jp-modal-body { padding: 28px 32px 32px; }\n.jp-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }\n.jp-form-group { display: flex; flex-direction: column; gap: 7px; margin-bottom: 14px; }\n.jp-form-group:last-child { margin-bottom: 0; }\n.jp-form-label { font-size: 12px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(255,255,255,0.5); }\n.jp-form-label span { color: var(--amber); margin-left: 2px; }\n.jp-form-input, .jp-form-select, .jp-form-textarea { width: 100%; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 12px; padding: 13px 16px; font-family: 'Inter', sans-serif; font-size: 14px; color: var(--white); outline: none; transition: border-color 0.2s, background 0.2s; }\n.jp-form-input::placeholder, .jp-form-textarea::placeholder { color: rgba(255,255,255,0.25); }\n.jp-form-input:focus, .jp-form-select:focus, .jp-form-textarea:focus { border-color: rgba(232,0,10,0.6); background: rgba(255,255,255,0.07); }\n.jp-form-select { appearance: none; background-image: url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,0.35)' stroke-width='1.8' fill='none' stroke-linecap='round'\/%3E%3C\/svg%3E\"); background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px; cursor: pointer; }\n.jp-form-select option { background: #1a1a1a; color: var(--white); }\n.jp-form-textarea { resize: vertical; min-height: 96px; line-height: 1.6; }\n.jp-form-divider { height: 1px; background: rgba(255,255,255,0.07); margin: 18px 0; }\n.jp-form-submit { width: 100%; margin-top: 6px; }\n.jp-form-note { font-size: 11px; color: rgba(255,255,255,0.3); text-align: center; margin-top: 12px; line-height: 1.5; }\n.jp-form-success { display: none; text-align: center; padding: 16px 0 8px; }\n.jp-form-success-icon { width: 56px; height: 56px; border-radius: 50%; background: rgba(29,185,122,0.15); border: 1px solid rgba(29,185,122,0.3); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; }\n.jp-form-success-icon svg { color: var(--green); }\n.jp-form-success-title { font-size: 18px; font-weight: 700; color: var(--white); margin-bottom: 8px; }\n.jp-form-success-copy { font-size: 14px; color: rgba(255,255,255,0.5); line-height: 1.65; }\n@media (max-width: 600px) { .jp-modal-header { padding: 24px 22px 0; } .jp-modal-body { padding: 22px 22px 28px; } .jp-form-row { grid-template-columns: 1fr; } }\n\n\/* SCROLL REVEAL *\/\n[data-sr] { opacity: 0; transform: translateY(22px); transition: opacity 0.6s ease, transform 0.6s ease; }\n[data-sr].sr-visible { opacity: 1; transform: translateY(0); }\n[data-sr-delay=\"1\"] { transition-delay: 0.08s; }\n[data-sr-delay=\"2\"] { transition-delay: 0.16s; }\n[data-sr-delay=\"3\"] { transition-delay: 0.24s; }\n[data-sr-delay=\"4\"] { transition-delay: 0.32s; }\n\n\/* RESPONSIVE *\/\n@media (max-width: 1100px) {\n  .jp-proof-grid { grid-template-columns: repeat(2,1fr); }\n  .jp-lift-grid { grid-template-columns: repeat(2,1fr); }\n  .jp-hero-grid { grid-template-columns: 1fr; }\n  .jp-hero-visual { display: none; }\n  .jp-hero { background-position: 72% center; }\n  .jp-flow-wrap { padding: 30px 22px 26px; }\n  .jp-flow-inner { flex-direction: column; gap: 14px; }\n  .jp-flow-arrow { padding: 0; }\n  .jp-flow-arrow-line { justify-content: center; }\n  .jp-flow-arrow-line svg { transform: rotate(90deg); }\n  .jp-flow-arrow-label { white-space: normal; text-align: center; }\n  .jp-testi-grid { grid-template-columns: repeat(2,1fr); }\n}\n@media (max-width: 900px) {\n  .jp-partners-layout { grid-template-columns: 1fr; }\n  .jp-pain-grid { grid-template-columns: repeat(2,1fr); }\n  .jp-how-header { grid-template-columns: 1fr; }\n  .jp-how-summary { justify-self: start; max-width: none; }\n  .jp-how-layout { grid-template-columns: 1fr; }\n  .jp-how-aside { position: static; }\n  .jp-benefits-layout { grid-template-columns: 1fr; }\n  .jp-benefits-intro { position: static; }\n  .jp-cta-inner { flex-direction: column; }\n  .jp-flow-wrap { padding: 30px 22px 26px; }\n  .jp-flow-inner { flex-direction: column; gap: 14px; }\n  .jp-flow-arrow { padding: 0; }\n  .jp-flow-arrow-line { justify-content: center; }\n  .jp-flow-arrow-line svg { transform: rotate(90deg); }\n  .jp-flow-arrow-label { white-space: normal; text-align: center; }\n  .jp-trust-inner { gap: 24px; }\n  .jp-testi-grid { grid-template-columns: 1fr; }\n}\n@media (max-width: 600px) {\n  .jp-section { padding: 72px 0; }\n  .jp-container { padding: 0 20px; }\n  .jp-hero { padding: 88px 0 84px; background-position: 68% center; }\n  .jp-hero::before { background:\n    linear-gradient(90deg, rgba(6,6,6,0.92) 0%, rgba(8,8,8,0.82) 40%, rgba(8,8,8,0.58) 72%, rgba(8,8,8,0.28) 100%),\n    repeating-linear-gradient(135deg, rgba(255,255,255,0.018) 0px, rgba(255,255,255,0.018) 1px, transparent 1px, transparent 22px);\n  }\n  .jp-hero-cta { flex-direction: column; align-items: stretch; }\n  .jp-btn-primary, .jp-btn-outline, .jp-btn-dark { width: 100%; justify-content: center; }\n  .jp-proof-grid { grid-template-columns: 1fr; }\n  .jp-partners-grid { grid-template-columns: 1fr; }\n  .jp-flow-wrap { padding: 24px 14px 22px; border-radius: 20px; }\n  .jp-flow-title { font-size: clamp(22px, 7vw, 30px); }\n  .jp-flow-copy { font-size: 14px; }\n  .jp-flow-inner { gap: 12px; }\n  .jp-flow-arrow-line svg { transform: rotate(90deg); }\n  .jp-pain-grid { grid-template-columns: 1fr; }\n  .jp-lift-grid { grid-template-columns: 1fr; }\n  .jp-flow-bubble { width: 90px; height: 90px; }\n  .jp-flow-divider { width: 32px; }\n  .jp-step { grid-template-columns: 56px 1fr; gap: 14px; }\n  .jp-step:not(:last-child)::after { left: 27px; top: 58px; bottom: -18px; }\n  .jp-trust-logos { gap: 20px; }\n  .jp-testi-grid { grid-template-columns: 1fr; }\n}\n@media (prefers-reduced-motion: reduce) {\n  html { scroll-behavior: auto; }\n  .jp-root *, .jp-root *::before, .jp-root *::after { animation: none !important; transition: none !important; }\n}\n<\/style>\n\n<div class=\"jp-root\">\n\n  <!-- HERO -->\n  <section class=\"jp-hero\">\n    <div class=\"jp-container\">\n      <div class=\"jp-hero-grid\">\n        <div class=\"jp-hero-copy\">\n          <div class=\"jp-label\">Corporate Partnership Programme<\/div>\n          <h1 class=\"jp-h1\">\n            Become a Juspropa<br>\n            <em>Maintenance Partner<\/em>\n          <\/h1>\n          <p class=\"jp-hero-desc\">\n            Juspropa removes the administrative burden of property maintenance \u2014 handling every step from the initial request through to final sign-off, so your team can focus on managing your portfolio, not chasing artisans.\n          <\/p>\n          <div class=\"jp-hero-cta\">\n            <button type=\"button\" class=\"jp-btn-primary jp-open-lead-modal\">\n              <svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M17 8l4 4m0 0l-4 4m4-4H3\"\/><\/svg>\n              Become a Partner\n            <\/button>\n            <a href=\"#jp-how-anchor\" class=\"jp-btn-outline\">How It Works<\/a>\n          <\/div>\n          <div class=\"jp-hero-note\">\n            <svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 12l2 2 4-4\"\/><path d=\"M12 3l7 4v5c0 5-3 8-7 9-4-1-7-4-7-9V7l7-4z\"\/><\/svg>\n            Principal stays in control of approvals, spend and reporting at every step.\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- PROOF STRIP -->\n  <section class=\"jp-proof-strip\" aria-label=\"Why partners trust Juspropa\">\n    <div class=\"jp-container\">\n      <div class=\"jp-proof-grid\">\n        <article class=\"jp-proof-card\">\n          <div class=\"jp-proof-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><\/div>\n          <h3 class=\"jp-proof-title\">24\/7 Intake<\/h3>\n          <p class=\"jp-proof-copy\">Your office has a maintenance desk that never closes, even when the problem starts after hours.<\/p>\n        <\/article>\n        <article class=\"jp-proof-card\">\n          <div class=\"jp-proof-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M12 3l7 4v5c0 5-3 8-7 9-4-1-7-4-7-9V7l7-4z\"\/><path d=\"M9 12l2 2 4-4\"\/><\/svg><\/div>\n          <h3 class=\"jp-proof-title\">Principal-Led Approvals<\/h3>\n          <p class=\"jp-proof-copy\">Quotes and instructions stay with the landlord, trustee or manager, keeping authority exactly where it belongs.<\/p>\n        <\/article>\n        <article class=\"jp-proof-card\">\n          <div class=\"jp-proof-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M14.7 6.3a1 1 0 010 1.4l-7 7a1 1 0 01-1.4 0l-3-3a1 1 0 111.4-1.4L7 12.59l6.3-6.29a1 1 0 011.4 0z\"\/><path d=\"M17 7h3v13H7v-3\"\/><\/svg><\/div>\n          <h3 class=\"jp-proof-title\">Certified Trades<\/h3>\n          <p class=\"jp-proof-copy\">Only vetted plumbers and electricians are dispatched, reducing repeat call-outs and workmanship disputes.<\/p>\n        <\/article>\n        <article class=\"jp-proof-card\">\n          <div class=\"jp-proof-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"8\" y1=\"13\" x2=\"16\" y2=\"13\"\/><line x1=\"8\" y1=\"17\" x2=\"13\" y2=\"17\"\/><\/svg><\/div>\n          <h3 class=\"jp-proof-title\">Documented Closure<\/h3>\n          <p class=\"jp-proof-copy\">Every job closes with reports, photos, quotes and invoices that strengthen your audit trail.<\/p>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- TRUST STRIP -->\n  <div class=\"jp-trust\">\n    <div class=\"jp-container\">\n      <div class=\"jp-trust-inner\">\n        <span class=\"jp-trust-label\">Trusted by<\/span>\n        <div class=\"jp-trust-logos\">\n          <span class=\"jp-trust-logo\">Apex Property Group<\/span>\n          <span class=\"jp-trust-logo\">Meridian Estates<\/span>\n          <span class=\"jp-trust-logo\">Summit Sectional<\/span>\n          <span class=\"jp-trust-logo\">Cornerstone Realty<\/span>\n          <span class=\"jp-trust-logo\">Pinnacle HOA Management<\/span>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <!-- PARTNERS -->\n  <section class=\"jp-section jp-partners\">\n    <div class=\"jp-container\">\n      <div class=\"jp-partners-layout\">\n        <div class=\"jp-section-head\">\n          <div class=\"jp-label\">We Partner With<\/div>\n          <h2 class=\"jp-h2\">Built for agencies, trustees and portfolio principals who need order.<\/h2>\n          <p class=\"jp-body\">Juspropa fits formal property operations where approvals, reporting and accountability matter just as much as the repair itself.<\/p>\n        <\/div>\n        <div class=\"jp-partners-highlights\">\n          <div class=\"jp-partners-stat\">\n            <strong>Principal-led<\/strong>\n            <span>Approvals and instructions stay at office level so authority remains with the landlord, trustee or manager.<\/span>\n          <\/div>\n          <div class=\"jp-partners-stat\">\n            <strong>Photo-backed<\/strong>\n            <span>Site reports and invoices are filed for every job, giving your team stronger visibility and audit confidence.<\/span>\n          <\/div>\n        <\/div>\n      <\/div>\n      <div class=\"jp-partners-grid\">\n        <article class=\"jp-partners-card\">\n          <div class=\"jp-partners-card-top\">\n            <div class=\"jp-partners-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.7\"><path d=\"M3 9l9-7 9 7v11a2 2 0 01-2 2H5a2 2 0 01-2-2V9z\"\/><polyline points=\"9 22 9 12 15 12 15 22\"\/><\/svg><\/div>\n            <div><div class=\"jp-partners-name\">Estate Agents<\/div><p class=\"jp-partners-desc\">Residential &amp; commercial mandates.<\/p><\/div>\n          <\/div>\n        <\/article>\n        <article class=\"jp-partners-card\">\n          <div class=\"jp-partners-card-top\">\n            <div class=\"jp-partners-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.7\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\"\/><path d=\"M16 3H8a2 2 0 00-2 2v2h12V5a2 2 0 00-2-2z\"\/><\/svg><\/div>\n            <div><div class=\"jp-partners-name\">Body Corporates<\/div><p class=\"jp-partners-desc\">Sectional title schemes &amp; trustees.<\/p><\/div>\n          <\/div>\n        <\/article>\n        <article class=\"jp-partners-card\">\n          <div class=\"jp-partners-card-top\">\n            <div class=\"jp-partners-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.7\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 00-3-3.87\"\/><path d=\"M16 3.13a4 4 0 010 7.75\"\/><\/svg><\/div>\n            <div><div class=\"jp-partners-name\">Homeowners&#8217; Associations<\/div><p class=\"jp-partners-desc\">HOA portfolios &amp; managing agents.<\/p><\/div>\n          <\/div>\n        <\/article>\n        <article class=\"jp-partners-card\">\n          <div class=\"jp-partners-card-top\">\n            <div class=\"jp-partners-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.7\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0118 0z\"\/><circle cx=\"12\" cy=\"10\" r=\"3\"\/><\/svg><\/div>\n            <div><div class=\"jp-partners-name\">Property Portfolio Managers<\/div><p class=\"jp-partners-desc\">Multi-property investment portfolios.<\/p><\/div>\n          <\/div>\n        <\/article>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- OPERATING MODEL -->\n  <section class=\"jp-flow\">\n    <div class=\"jp-container\">\n      <div class=\"jp-flow-wrap\">\n        <div class=\"jp-flow-head\">\n          <div class=\"jp-label\">Our Operating Model<\/div>\n          <h2 class=\"jp-flow-title\">We report to you, not your tenants.<\/h2>\n          <p class=\"jp-flow-copy\">Every instruction, quote and payment stays routed through the principal while Juspropa coordinates the operational heavy lifting.<\/p>\n        <\/div>\n        <div class=\"jp-flow-inner\">\n          <div class=\"jp-flow-node\">\n            <div class=\"jp-flow-bubble tenant\">\n              <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"white\" stroke-width=\"1.7\" width=\"28\" height=\"28\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><\/svg>\n              <span class=\"jp-flow-bubble-label\">TENANT<\/span>\n            <\/div>\n            <div class=\"jp-flow-node-name\">Resident \/ Occupant<\/div>\n          <\/div>\n          <div class=\"jp-flow-arrow\">\n            <div class=\"jp-flow-arrow-label\">Maintenance Request<\/div>\n            <div class=\"jp-flow-arrow-line\">\n              <div class=\"jp-flow-divider-dot\"><\/div>\n              <div class=\"jp-flow-divider\"><\/div>\n              <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"#E8000A\"><polygon points=\"0,0 10,5 0,10\"\/><\/svg>\n            <\/div>\n          <\/div>\n          <div class=\"jp-flow-node\">\n            <div class=\"jp-flow-bubble principal\">\n              <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"white\" stroke-width=\"1.7\" width=\"28\" height=\"28\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\"\/><path d=\"M16 3H8a2 2 0 00-2 2v2h12V5a2 2 0 00-2-2z\"\/><\/svg>\n              <span class=\"jp-flow-bubble-label\">PRINCIPAL<\/span>\n            <\/div>\n            <div class=\"jp-flow-node-name\">Landlord \/ Manager \/ HOA<\/div>\n          <\/div>\n          <div class=\"jp-flow-arrow\">\n            <div class=\"jp-flow-arrow-label\">Approves &amp; Coordinates<\/div>\n            <div class=\"jp-flow-arrow-line\">\n              <div class=\"jp-flow-divider-dot\"><\/div>\n              <div class=\"jp-flow-divider\"><\/div>\n              <svg width=\"10\" height=\"10\" viewBox=\"0 0 10 10\" fill=\"#E8000A\"><polygon points=\"0,0 10,5 0,10\"\/><\/svg>\n            <\/div>\n          <\/div>\n          <div class=\"jp-flow-node\">\n            <div class=\"jp-flow-bubble accent\">\n              <svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"#080808\" stroke-width=\"2\" width=\"28\" height=\"28\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg>\n              <span class=\"jp-flow-bubble-label\">JUSPROPA<\/span>\n            <\/div>\n            <div class=\"jp-flow-node-name\">Service Provider<\/div>\n          <\/div>\n        <\/div>\n        <p class=\"jp-flow-caption\">All quotes, approvals, instructions and payments flow through the principal. Tenants interact only with their landlord or manager.<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- PAIN POINTS -->\n  <section class=\"jp-section jp-pain\" id=\"jp-pain-anchor\">\n    <div class=\"jp-container\">\n      <div class=\"jp-section-head\">\n        <div class=\"jp-label\">The Problem We Solve<\/div>\n        <h2 class=\"jp-h2\">Managing maintenance is costing you more than money.<\/h2>\n        <p class=\"jp-body\">For estate agents, property managers and landlords, coordinating plumbing and electrical issues is a constant drain on time, resources and relationships.<\/p>\n      <\/div>\n      <div class=\"jp-pain-grid\">\n        <div class=\"jp-pain-card\">\n          <div class=\"jp-pain-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">Endless Back-and-Forth<\/h3>\n          <p class=\"jp-body-sm\">Coordinating between tenants, artisans and suppliers means your inbox never clears. Every job spawns a chain of WhatsApp messages, missed calls and conflicting updates.<\/p>\n        <\/div>\n        <div class=\"jp-pain-card\">\n          <div class=\"jp-pain-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M9 14s-1-1-1-4 1-4 1-4\"\/><path d=\"M15 14s1-1 1-4-1-4-1-4\"\/><path d=\"M12 20h.01\"\/><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">Unqualified Artisans<\/h3>\n          <p class=\"jp-body-sm\">Finding certified, reliable tradespeople for every job is time-consuming. Unreliable contractors lead to repeat call-outs, complaints and disputes over workmanship.<\/p>\n        <\/div>\n        <div class=\"jp-pain-card\">\n          <div class=\"jp-pain-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"\/><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"\/><polyline points=\"10 9 9 9 8 9\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">No Paper Trail<\/h3>\n          <p class=\"jp-body-sm\">Without proper documentation, quotes go unsigned and jobs lack on-site evidence. Disputes over scope, costs and completion become impossible to resolve cleanly.<\/p>\n        <\/div>\n        <div class=\"jp-pain-card\">\n          <div class=\"jp-pain-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">Payment &amp; Invoice Chaos<\/h3>\n          <p class=\"jp-body-sm\">Tracking who approved what, who was paid and what invoices are outstanding across multiple properties is a financial management nightmare with no clear audit trail.<\/p>\n        <\/div>\n        <div class=\"jp-pain-card\">\n          <div class=\"jp-pain-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 10.8 19.79 19.79 0 012 2.18 2 2 0 014 0h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 7.91\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">After-Hours Emergencies<\/h3>\n          <p class=\"jp-body-sm\">Burst pipes and electrical faults don&#8217;t respect business hours. Without 24\/7 support, weekend emergencies fall on the landlord or manager to resolve personally.<\/p>\n        <\/div>\n        <div class=\"jp-pain-card\">\n          <div class=\"jp-pain-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">Tenant Escalation Risk<\/h3>\n          <p class=\"jp-body-sm\">Slow maintenance response is one of the top causes of lease disputes and early terminations. Every delay to a repair is a risk to your tenant retention and reputation.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- HEAVY LIFTING -->\n  <section class=\"jp-section jp-lift\">\n    <div class=\"jp-container\">\n      <div class=\"jp-section-head center\" style=\"max-width:620px;\">\n        <div class=\"jp-label\">The Juspropa Advantage<\/div>\n        <h2 class=\"jp-h2\" style=\"color:white;\">We carry the weight of maintenance management \u2014 so you don&#8217;t have to.<\/h2>\n        <p class=\"jp-body\" style=\"margin-top:16px; color:rgba(255,255,255,0.58);\">Every touchpoint in the maintenance cycle is owned by Juspropa. Your role is simply to approve, receive reports and settle invoices.<\/p>\n      <\/div>\n      <div class=\"jp-lift-grid\">\n        <div class=\"jp-lift-card\">\n          <div class=\"jp-lift-card-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.8\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">Certified, Vetted Professionals<\/h3>\n          <p class=\"jp-body-sm\">Every plumber and electrician in our network is verified and certified. You receive qualified workmanship with compliance documentation \u2014 no guesswork on artisan credentials.<\/p>\n        <\/div>\n        <div class=\"jp-lift-card\">\n          <div class=\"jp-lift-card-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.8\"><circle cx=\"12\" cy=\"12\" r=\"10\"\/><polyline points=\"12 6 12 12 16 14\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">24\/7 Call Centre Support<\/h3>\n          <p class=\"jp-body-sm\">Emergencies happen at midnight and on public holidays. Our dedicated call centre operates around the clock, ensuring no maintenance issue \u2014 however urgent \u2014 falls through the cracks.<\/p>\n        <\/div>\n        <div class=\"jp-lift-card\">\n          <div class=\"jp-lift-card-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.8\"><path d=\"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z\"\/><polyline points=\"14 2 14 8 20 8\"\/><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"12\"\/><line x1=\"9\" y1=\"15\" x2=\"15\" y2=\"15\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">Complete Documentation Trail<\/h3>\n          <p class=\"jp-body-sm\">Site reports, photographs, job notes, quotes, approvals and invoices are all filed systematically. Every job has a full audit trail \u2014 invaluable when disputes or insurance claims arise.<\/p>\n        <\/div>\n        <div class=\"jp-lift-card\">\n          <div class=\"jp-lift-card-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.8\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"\/><path d=\"M17 5H9.5a3.5 3.5 0 000 7h5a3.5 3.5 0 010 7H6\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">Structured Quote &amp; Approval Workflow<\/h3>\n          <p class=\"jp-body-sm\">Nothing proceeds without your sign-off. Quotes are prepared by our office, presented to you clearly and only actioned once you formally approve \u2014 giving you full financial control at every step.<\/p>\n        <\/div>\n        <div class=\"jp-lift-card\">\n          <div class=\"jp-lift-card-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.8\"><path d=\"M17 21v-2a4 4 0 00-4-4H5a4 4 0 00-4 4v2\"\/><circle cx=\"9\" cy=\"7\" r=\"4\"\/><path d=\"M23 21v-2a4 4 0 00-3-3.87\"\/><path d=\"M16 3.13a4 4 0 010 7.75\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">Single Point of Contact<\/h3>\n          <p class=\"jp-body-sm\">Instead of managing multiple artisans, suppliers and call-outs across a portfolio, your team deals with one professional service partner \u2014 Juspropa. We consolidate and simplify your maintenance operations.<\/p>\n        <\/div>\n        <div class=\"jp-lift-card\">\n          <div class=\"jp-lift-card-icon\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"1.8\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"\/><\/svg><\/div>\n          <h3 class=\"jp-h3\">Scalable Across Your Portfolio<\/h3>\n          <p class=\"jp-body-sm\">Whether you manage five units or five hundred, our system scales without adding complexity to your team. As your portfolio grows, Juspropa absorbs the operational load \u2014 not your staff.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- BENEFITS -->\n  <section class=\"jp-section jp-benefits\">\n    <div class=\"jp-container\">\n      <div class=\"jp-section-head\" style=\"max-width:640px;\">\n        <div class=\"jp-label\">Why Partners Choose Juspropa<\/div>\n        <h2 class=\"jp-h2\">Real, measurable value for your portfolio and your team.<\/h2>\n      <\/div>\n      <div class=\"jp-benefits-layout\">\n        <div class=\"jp-benefits-intro\">\n          <p class=\"jp-body\">Partnering with Juspropa means more than outsourcing maintenance calls. It means gaining a structured, reliable system that protects your assets, your relationships and your reputation as a professional principal.<\/p>\n          <div class=\"jp-stat-block\">\n            <div class=\"jp-stat-item\">\n              <div class=\"jp-stat-num\">24\/7<\/div>\n              <div class=\"jp-stat-desc\">Call centre coverage, every day of the year<\/div>\n            <\/div>\n            <div class=\"jp-stat-item\">\n              <div class=\"jp-stat-num\">100%<\/div>\n              <div class=\"jp-stat-desc\">Certified, vetted trade professionals<\/div>\n            <\/div>\n            <div class=\"jp-stat-item\">\n              <div class=\"jp-stat-num\">0<\/div>\n              <div class=\"jp-stat-desc\">Admin hours spent chasing artisans<\/div>\n            <\/div>\n            <div class=\"jp-stat-item\">\n              <div class=\"jp-stat-num\">1<\/div>\n              <div class=\"jp-stat-desc\">Single partner for plumbing &amp; electrical<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"jp-benefits-img\">\n            <img decoding=\"async\" src=\"https:\/\/www.juspropa.com\/za\/wp-content\/uploads\/2026\/05\/partner-handoff.png\" alt=\"Maintenance professional handing over completed work to property partners\" loading=\"lazy\">\n          <\/div>\n        <\/div>\n        <ul class=\"jp-benefit-list\">\n          <li class=\"jp-benefit-item\">\n            <div class=\"jp-benefit-check\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n            <div><h3 class=\"jp-h3\">Eliminate Administrative Burden<\/h3><p class=\"jp-body-sm\">Your team stops being maintenance coordinators and starts focusing on leasing, compliance and portfolio growth. Juspropa absorbs every step of the maintenance administration cycle.<\/p><\/div>\n          <\/li>\n          <li class=\"jp-benefit-item\">\n            <div class=\"jp-benefit-check\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n            <div><h3 class=\"jp-h3\">Full Cost Transparency &amp; Control<\/h3><p class=\"jp-body-sm\">Every quote is presented to you before work begins. No surprise invoices, no artisans working beyond scope. You remain in complete financial control of every maintenance spend.<\/p><\/div>\n          <\/li>\n          <li class=\"jp-benefit-item\">\n            <div class=\"jp-benefit-check\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n            <div><h3 class=\"jp-h3\">Protect Your Asset Value<\/h3><p class=\"jp-body-sm\">Timely, professional repairs prevent small faults from becoming costly structural problems. Consistent maintenance standards protect the long-term value of every property in your portfolio.<\/p><\/div>\n          <\/li>\n          <li class=\"jp-benefit-item\">\n            <div class=\"jp-benefit-check\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n            <div><h3 class=\"jp-h3\">Reduce Tenant Dispute Exposure<\/h3><p class=\"jp-body-sm\">With a documented, structured maintenance process and prompt response times, you reduce the risk of tenant complaints, rental withholds and lease disputes related to maintenance delays.<\/p><\/div>\n          <\/li>\n          <li class=\"jp-benefit-item\">\n            <div class=\"jp-benefit-check\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n            <div><h3 class=\"jp-h3\">Compliance-Ready Documentation<\/h3><p class=\"jp-body-sm\">Site reports, photos, completion certificates and invoices are filed for every job. When audits, insurance claims or CSOS proceedings arise, your maintenance records are ready and complete.<\/p><\/div>\n          <\/li>\n          <li class=\"jp-benefit-item\">\n            <div class=\"jp-benefit-check\"><svg fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg><\/div>\n            <div><h3 class=\"jp-h3\">Enhances Your Professional Standing<\/h3><p class=\"jp-body-sm\">Offering your landlords, trustees and investors a structured, professionally managed maintenance solution sets your agency or management company apart as a premium, trusted principal.<\/p><\/div>\n          <\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- TESTIMONIALS -->\n  <section class=\"jp-section jp-testimonials\">\n    <div class=\"jp-container\">\n      <div class=\"jp-section-head center\">\n        <div class=\"jp-label\">Google Reviews<\/div>\n        <h2 class=\"jp-h2\">Real customer feedback from Juspropa&#8217;s Google Business profile.<\/h2>\n      <\/div>\n      <div class=\"jp-testi-grid\">\n        <div class=\"jp-testi-card\">\n          <div class=\"jp-testi-stars\">\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n          <\/div>\n          <p class=\"jp-testi-quote\">They responded super quick and came &#8220;after hours&#8221; the team was respectful and answered all my questions. They kept in touch right up until my electricity crisis was handled.<\/p>\n          <div class=\"jp-testi-author\">\n            <div class=\"jp-testi-avatar jp-testi-initial\" aria-hidden=\"true\">PM<\/div>\n            <div>\n              <div class=\"jp-testi-name\">Palesa Motau<\/div>\n              <div class=\"jp-testi-role\">Google review &#8211; 5 stars<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"jp-testi-card\">\n          <div class=\"jp-testi-stars\">\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n          <\/div>\n          <p class=\"jp-testi-quote\">I used Juspropa to remove my window, demolish a piece of my wall to install a sliding door, as well as remove and close my existing entrance door. The work was done efficiently and very neatly.<\/p>\n          <div class=\"jp-testi-author\">\n            <div class=\"jp-testi-avatar jp-testi-initial\" aria-hidden=\"true\">NG<\/div>\n            <div>\n              <div class=\"jp-testi-name\">Natalia_ Govender<\/div>\n              <div class=\"jp-testi-role\">Google review &#8211; 5 stars<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div class=\"jp-testi-card\">\n          <div class=\"jp-testi-stars\">\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n            <svg viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"\/><\/svg>\n          <\/div>\n          <p class=\"jp-testi-quote\">The final installation demonstrates professional workmanship. I encountered issues immediately after installation&#8230; However, they resolved this quickly and got everything running as expected.<\/p>\n          <div class=\"jp-testi-author\">\n            <div class=\"jp-testi-avatar jp-testi-initial\" aria-hidden=\"true\">JS<\/div>\n            <div>\n              <div class=\"jp-testi-name\">Janko Schmidt<\/div>\n              <div class=\"jp-testi-role\">Google review &#8211; 5 stars<\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- FAQ -->\n  <section class=\"jp-section jp-faq\">\n    <div class=\"jp-container\">\n      <div class=\"jp-section-head center\">\n        <div class=\"jp-label\">Common Questions<\/div>\n        <h2 class=\"jp-h2\">What partners want to know before they sign on.<\/h2>\n      <\/div>\n      <div class=\"jp-faq-list\">\n        <div class=\"jp-faq-item\">\n          <button class=\"jp-faq-btn\" aria-expanded=\"false\">Do tenants contact Juspropa directly?<span class=\"jp-faq-chevron\" aria-hidden=\"true\"><svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/span><\/button>\n          <div class=\"jp-faq-body\">No. Juspropa&#8217;s relationship is exclusively with the principal \u2014 the landlord, managing agent, HOA or trustee. Tenants continue to report maintenance issues to their principal, who then contacts Juspropa. This keeps authority and communication firmly at office level.<\/div>\n        <\/div>\n        <div class=\"jp-faq-item\">\n          <button class=\"jp-faq-btn\" aria-expanded=\"false\">What types of maintenance does Juspropa handle?<span class=\"jp-faq-chevron\" aria-hidden=\"true\"><svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/span><\/button>\n          <div class=\"jp-faq-body\">Juspropa specialises in plumbing and electrical maintenance \u2014 the two most common, most urgent and most compliance-sensitive trades in residential and commercial property portfolios. Our certified professionals cover everything from leak detection and burst pipes to fault finding and compliance certificates.<\/div>\n        <\/div>\n        <div class=\"jp-faq-item\">\n          <button class=\"jp-faq-btn\" aria-expanded=\"false\">Can work proceed without my approval?<span class=\"jp-faq-chevron\" aria-hidden=\"true\"><svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/span><\/button>\n          <div class=\"jp-faq-body\">No. Every job follows a formal quote-and-approve workflow. Once our technician has assessed the property, we compile a detailed quote and present it directly to you. No repair work is authorised until you have provided formal approval. Your financial control is absolute at every step.<\/div>\n        <\/div>\n        <div class=\"jp-faq-item\">\n          <button class=\"jp-faq-btn\" aria-expanded=\"false\">How does the 24\/7 call centre work?<span class=\"jp-faq-chevron\" aria-hidden=\"true\"><svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/span><\/button>\n          <div class=\"jp-faq-body\">Our call centre operates around the clock, every day of the year. When a principal contacts Juspropa \u2014 whether at 2 am on a public holiday or during a busy Monday morning \u2014 we log the request, classify the fault and initiate the dispatch process. For true emergencies we escalate immediately. All calls are recorded and referenced in the job file.<\/div>\n        <\/div>\n        <div class=\"jp-faq-item\">\n          <button class=\"jp-faq-btn\" aria-expanded=\"false\">What documentation do we receive for each job?<span class=\"jp-faq-chevron\" aria-hidden=\"true\"><svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/span><\/button>\n          <div class=\"jp-faq-body\">Every completed job is accompanied by a full documentation package: on-site assessment report, photographs, scope-of-work summary, signed completion confirmation and final tax invoice. This record is filed and available to you \u2014 invaluable for disputes, CSOS proceedings, insurance claims or audits.<\/div>\n        <\/div>\n        <div class=\"jp-faq-item\">\n          <button class=\"jp-faq-btn\" aria-expanded=\"false\">Is there a minimum portfolio size to partner with Juspropa?<span class=\"jp-faq-chevron\" aria-hidden=\"true\"><svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"6 9 12 15 18 9\"\/><\/svg><\/span><\/button>\n          <div class=\"jp-faq-body\">No minimum portfolio size is required. We work with estate agencies managing a handful of units through to large property funds overseeing hundreds of properties. The partnership model scales without adding complexity \u2014 the workflow remains consistent as your portfolio grows.<\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- CTA -->\n  <section class=\"jp-cta\" id=\"jp-cta-anchor\">\n    <div class=\"jp-container\">\n      <div class=\"jp-cta-inner\">\n        <div class=\"jp-cta-copy\">\n          <div class=\"jp-label\" style=\"color:#000000;\">Ready to Partner?<\/div>\n          <h2 class=\"jp-h2\">Let Juspropa take maintenance off your plate \u2014 permanently.<\/h2>\n          <p class=\"jp-body\">Contact our corporate partnerships team to discuss how we can integrate with your portfolio management process.<\/p>\n          <div class=\"jp-cta-meta\">\n            <span class=\"jp-cta-chip\">Portfolio onboarding<\/span>\n            <span class=\"jp-cta-chip\">Principal-led approvals<\/span>\n            <span class=\"jp-cta-chip\">Plumbing &amp; electrical<\/span>\n          <\/div>\n        <\/div>\n        <div class=\"jp-cta-card\">\n          <div class=\"jp-cta-card-title\">What happens next<\/div>\n          <p class=\"jp-cta-card-copy\">A short conversation is all it takes to map the right partner workflow for your portfolio.<\/p>\n          <div class=\"jp-cta-steps\">\n            <div class=\"jp-cta-step\">\n              <div class=\"jp-cta-step-num\">1<\/div>\n              <div class=\"jp-cta-step-copy\"><strong>Intro call<\/strong>We understand how maintenance requests currently move through your team.<\/div>\n            <\/div>\n            <div class=\"jp-cta-step\">\n              <div class=\"jp-cta-step-num\">2<\/div>\n              <div class=\"jp-cta-step-copy\"><strong>Workflow alignment<\/strong>We map reporting, approvals and escalation paths around your operating model.<\/div>\n            <\/div>\n            <div class=\"jp-cta-step\">\n              <div class=\"jp-cta-step-num\">3<\/div>\n              <div class=\"jp-cta-step-copy\"><strong>Partner launch<\/strong>Your team starts routing plumbing and electrical maintenance through Juspropa.<\/div>\n            <\/div>\n          <\/div>\n          <div class=\"jp-cta-btns\">\n            <button type=\"button\" id=\"jp-git-btn\" class=\"jp-btn-dark\">\n              <svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"\/><polyline points=\"22,6 12,13 2,6\"\/><\/svg>\n              Get in Touch\n            <\/button>\n            <div class=\"jp-phone-link\">\n              <svg width=\"13\" height=\"13\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07A19.5 19.5 0 013.07 10.8 19.79 19.79 0 012 2.18 2 2 0 014 0h3a2 2 0 012 1.72c.127.96.361 1.903.7 2.81a2 2 0 01-.45 2.11L8.09 7.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0122 16.92z\"\/><\/svg>\n              Or call our 24\/7 line\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <!-- LEAD FORM MODAL -->\n  <div class=\"jp-modal-overlay\" id=\"jp-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"jp-modal-title\">\n    <div class=\"jp-modal\">\n      <div class=\"jp-modal-header\">\n        <div class=\"jp-modal-header-copy\">\n          <div class=\"jp-label\">Partner Enquiry<\/div>\n          <div class=\"jp-modal-title\" id=\"jp-modal-title\">Let&#8217;s talk about your portfolio<\/div>\n          <p class=\"jp-modal-sub\">Fill in the form and our corporate partnerships team will be in touch within one business day.<\/p>\n        <\/div>\n        <button type=\"button\" class=\"jp-modal-close\" id=\"jp-modal-close\" aria-label=\"Close\">\n          <svg width=\"14\" height=\"14\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"\/><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"\/><\/svg>\n        <\/button>\n      <\/div>\n      <div class=\"jp-modal-body\">\n        <form id=\"jp-lead-form\" novalidate>\n          <div class=\"jp-form-row\">\n            <div class=\"jp-form-group\">\n              <label class=\"jp-form-label\" for=\"jp-f-name\">Full Name<span>*<\/span><\/label>\n              <input class=\"jp-form-input\" id=\"jp-f-name\" name=\"name\" type=\"text\" required autocomplete=\"name\">\n            <\/div>\n            <div class=\"jp-form-group\">\n              <label class=\"jp-form-label\" for=\"jp-f-company\">Company \/ Organisation<span>*<\/span><\/label>\n              <input class=\"jp-form-input\" id=\"jp-f-company\" name=\"company\" type=\"text\" required autocomplete=\"organization\">\n            <\/div>\n          <\/div>\n          <div class=\"jp-form-row\">\n            <div class=\"jp-form-group\">\n              <label class=\"jp-form-label\" for=\"jp-f-email\">Email Address<span>*<\/span><\/label>\n              <input class=\"jp-form-input\" id=\"jp-f-email\" name=\"email\" type=\"email\" required autocomplete=\"email\">\n            <\/div>\n            <div class=\"jp-form-group\">\n              <label class=\"jp-form-label\" for=\"jp-f-phone\">Phone Number<\/label>\n              <input class=\"jp-form-input\" id=\"jp-f-phone\" name=\"phone\" type=\"tel\" autocomplete=\"tel\">\n            <\/div>\n          <\/div>\n          <div class=\"jp-form-row\">\n            <div class=\"jp-form-group\">\n              <label class=\"jp-form-label\" for=\"jp-f-role\">Your Role<\/label>\n              <select class=\"jp-form-select\" id=\"jp-f-role\" name=\"role\">\n                <option value=\"\" disabled selected>Select role\u2026<\/option>\n                <option>Estate Agent \/ Principal<\/option>\n                <option>Property Manager<\/option>\n                <option>Body Corporate Trustee<\/option>\n                <option>HOA Director \/ Manager<\/option>\n                <option>Private Landlord<\/option>\n                <option>Portfolio Investor<\/option>\n                <option>Other<\/option>\n              <\/select>\n            <\/div>\n            <div class=\"jp-form-group\">\n              <label class=\"jp-form-label\" for=\"jp-f-portfolio\">Portfolio Size<\/label>\n              <select class=\"jp-form-select\" id=\"jp-f-portfolio\" name=\"portfolio\">\n                <option value=\"\" disabled selected>Number of units\u2026<\/option>\n                <option>1 \u2013 10 units<\/option>\n                <option>11 \u2013 50 units<\/option>\n                <option>51 \u2013 200 units<\/option>\n                <option>201 \u2013 500 units<\/option>\n                <option>500+ units<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n          <div class=\"jp-form-divider\"><\/div>\n          <div class=\"jp-form-group\">\n            <label class=\"jp-form-label\" for=\"jp-f-message\">How can we help?<\/label>\n            <textarea class=\"jp-form-textarea\" id=\"jp-f-message\" name=\"message\"><\/textarea>\n          <\/div>\n          <button type=\"submit\" class=\"jp-btn-primary jp-form-submit\">\n            <svg width=\"16\" height=\"16\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M22 2L11 13\"\/><polygon points=\"22 2 15 22 11 13 2 9 22 2\"\/><\/svg>\n            Send Enquiry\n          <\/button>\n          <p class=\"jp-form-note\">By submitting you agree that Juspropa may contact you regarding this enquiry. We do not share your details with third parties.<\/p>\n        <\/form>\n        <div class=\"jp-form-success\" id=\"jp-form-success\">\n          <div class=\"jp-form-success-icon\">\n            <svg width=\"28\" height=\"28\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2.5\"><polyline points=\"20 6 9 17 4 12\"\/><\/svg>\n          <\/div>\n          <div class=\"jp-form-success-title\">Enquiry received!<\/div>\n          <p class=\"jp-form-success-copy\">Thank you \u2014 a member of our corporate partnerships team will be in touch within one business day.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n<\/div>\n<!-- END JUSPROPA PARTNER PAGE -->\n\n<script>\n(function () {\n  \/\/ MODAL\n  var overlay = document.getElementById('jp-modal');\n  var openBtn = document.getElementById('jp-git-btn') || document.querySelector('.jp-open-lead-modal, a[href=\"#jp-cta-anchor\"]');\n  var closeBtn = document.getElementById('jp-modal-close');\n  var leadForm = document.getElementById('jp-lead-form');\n  var savedScrollY = 0;\n  var bodyStyles = {};\n  var lastModalTrigger = openBtn;\n\n  function focusWithoutScroll(el) {\n    if (!el) return;\n    try {\n      el.focus({ preventScroll: true });\n    } catch (err) {\n      el.focus();\n    }\n  }\n\n  function openModal() {\n    savedScrollY = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n    bodyStyles = {\n      position: document.body.style.position,\n      top: document.body.style.top,\n      left: document.body.style.left,\n      right: document.body.style.right,\n      width: document.body.style.width,\n      overflow: document.body.style.overflow\n    };\n    overlay.classList.add('open');\n    document.body.style.position = 'fixed';\n    document.body.style.top = '-' + savedScrollY + 'px';\n    document.body.style.left = '0';\n    document.body.style.right = '0';\n    document.body.style.width = '100%';\n    document.body.style.overflow = 'hidden';\n    setTimeout(function () { focusWithoutScroll(closeBtn); }, 50);\n  }\n  function closeModal() {\n    overlay.classList.remove('open');\n    document.body.style.position = bodyStyles.position || '';\n    document.body.style.top = bodyStyles.top || '';\n    document.body.style.left = bodyStyles.left || '';\n    document.body.style.right = bodyStyles.right || '';\n    document.body.style.width = bodyStyles.width || '';\n    document.body.style.overflow = bodyStyles.overflow || '';\n    if (typeof window.scrollTo === 'function') {\n      window.scrollTo(0, savedScrollY);\n    }\n    document.documentElement.scrollTop = savedScrollY;\n    document.body.scrollTop = savedScrollY;\n    focusWithoutScroll(lastModalTrigger || openBtn);\n  }\n\n  closeBtn.addEventListener('click', closeModal);\n  overlay.addEventListener('click', function (e) { if (e.target === overlay) closeModal(); });\n  document.addEventListener('keydown', function (e) { if (e.key === 'Escape' && overlay.classList.contains('open')) closeModal(); });\n\n  \/\/ Also wire any other \"Become a Partner\" buttons\n  document.querySelectorAll('#jp-git-btn, a[href=\"#jp-cta-anchor\"], .jp-open-lead-modal').forEach(function (a) {\n    a.addEventListener('click', function (e) {\n      e.preventDefault();\n      e.stopPropagation();\n      lastModalTrigger = a;\n      openModal();\n    });\n  });\n\n  leadForm.addEventListener('submit', function (e) {\n    e.preventDefault();\n\n    function fallbackRef() {\n      var dt = new Date();\n      var y = dt.getFullYear();\n      var m = String(dt.getMonth() + 1).padStart(2, '0');\n      var d = String(dt.getDate()).padStart(2, '0');\n      var n = String(Math.floor(Math.random() * 10000)).padStart(4, '0');\n      return 'JP-' + y + m + d + '-' + n;\n    }\n\n    \/\/ Client-side validation\n    var valid = true;\n    leadForm.querySelectorAll('[required]').forEach(function (field) {\n      field.style.borderColor = '';\n      var empty = !field.value.trim();\n      var badEmail = field.type === 'email' && !\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(field.value);\n      if (empty || badEmail) {\n        field.style.borderColor = 'rgba(232,0,10,0.7)';\n        if (valid) { field.focus(); }\n        valid = false;\n      }\n    });\n    if (!valid) return;\n\n    \/\/ Disable submit button during request\n    var submitBtn = leadForm.querySelector('[type=\"submit\"]');\n    var originalText = submitBtn.innerHTML;\n    submitBtn.disabled = true;\n    submitBtn.innerHTML = '<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" style=\"animation:jp-spin 0.8s linear infinite\"><path d=\"M12 2a10 10 0 0 1 10 10\"\/><\/svg> Sending\u2026';\n\n    var payload = {\n      name:      leadForm.querySelector('#jp-f-name').value.trim(),\n      company:   leadForm.querySelector('#jp-f-company').value.trim(),\n      email:     leadForm.querySelector('#jp-f-email').value.trim(),\n      phone:     leadForm.querySelector('#jp-f-phone').value.trim(),\n      role:      leadForm.querySelector('#jp-f-role').value,\n      portfolio: leadForm.querySelector('#jp-f-portfolio').value,\n      message:   leadForm.querySelector('#jp-f-message').value.trim(),\n    };\n\n    fetch('\/api\/enquiry', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify(payload),\n    })\n    .then(function (res) { return res.json(); })\n    .then(function (data) {\n      if (data.ok) {\n        var ref = encodeURIComponent(data.leadReference || fallbackRef());\n        var nm = encodeURIComponent(payload.name || '');\n        var em = encodeURIComponent(payload.email || '');\n        window.location.href = '\/partners\/thank-you?ref=' + ref + '&name=' + nm + '&email=' + em;\n      } else {\n        alert('Sorry, there was a problem sending your enquiry: ' + (data.error || 'Unknown error') + '\\n\\nPlease try emailing us directly at partners@juspropa.com');\n        submitBtn.disabled = false;\n        submitBtn.innerHTML = originalText;\n      }\n    })\n    .catch(function () {\n      alert('Network error. Please check your connection or email us directly at partners@juspropa.com');\n      submitBtn.disabled = false;\n      submitBtn.innerHTML = originalText;\n    });\n  });\n\n  \/\/ FAQ\n  document.querySelectorAll('.jp-faq-btn').forEach(function (btn) {\n    btn.addEventListener('click', function () {\n      var item = btn.closest('.jp-faq-item');\n      var isOpen = item.classList.contains('open');\n      document.querySelectorAll('.jp-faq-item.open').forEach(function (el) {\n        el.classList.remove('open');\n        el.querySelector('.jp-faq-btn').setAttribute('aria-expanded', 'false');\n      });\n      if (!isOpen) { item.classList.add('open'); btn.setAttribute('aria-expanded', 'true'); }\n    });\n  });\n\n  if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {\n    var sel = '.jp-proof-card,.jp-partners-card,.jp-pain-card,.jp-lift-card,.jp-benefit-item,.jp-step,.jp-faq-item,.jp-testi-card';\n    document.querySelectorAll(sel).forEach(function (el, i) {\n      el.setAttribute('data-sr', '');\n      el.setAttribute('data-sr-delay', Math.min(i % 4, 4));\n    });\n    var io = new IntersectionObserver(function (entries) {\n      entries.forEach(function (e) {\n        if (e.isIntersecting) { e.target.classList.add('sr-visible'); io.unobserve(e.target); }\n      });\n    }, { threshold: 0.1 });\n    document.querySelectorAll('[data-sr]').forEach(function (el) { io.observe(el); });\n  }\n})();\n<\/script>\n\r\n\n","protected":false},"excerpt":{"rendered":"<p>Corporate Partnership Programme Become a Juspropa Maintenance Partner Juspropa removes the administrative burden of property maintenance \u2014 handling every step from the initial request through to final sign-off, so your team can focus on managing your portfolio, not chasing artisans. Become a Partner How It Works Principal stays in control of approvals, spend and reporting&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-10261","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.juspropa.com\/za\/wp-json\/wp\/v2\/pages\/10261","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.juspropa.com\/za\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.juspropa.com\/za\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.juspropa.com\/za\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.juspropa.com\/za\/wp-json\/wp\/v2\/comments?post=10261"}],"version-history":[{"count":10,"href":"https:\/\/www.juspropa.com\/za\/wp-json\/wp\/v2\/pages\/10261\/revisions"}],"predecessor-version":[{"id":10344,"href":"https:\/\/www.juspropa.com\/za\/wp-json\/wp\/v2\/pages\/10261\/revisions\/10344"}],"wp:attachment":[{"href":"https:\/\/www.juspropa.com\/za\/wp-json\/wp\/v2\/media?parent=10261"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}