{"title":"Outcome Section","description":null,"products":[{"product_id":"the-total-fitness-system","title":"Brute Camp Muscle Blueprint ( 8 weeks )","description":"\u003cmeta charset=\"utf-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1, viewport-fit=cover\"\u003e\n\u003ctitle\u003eBrute Camp | Your Goals. Your Plan. Your Transformation.\u003c\/title\u003e\n\u003cmeta name=\"description\" content=\"Build a fitness routine around your life with personalised workouts, practical nutrition guidance and a real coach. 20–25 minute sessions. From R1,499\/month.\"\u003e\n\u003cmeta name=\"theme-color\" content=\"#000000\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\u003e\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Manrope:wght@500;600;700;800\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\n\u003c!--\n BRUTE CAMP · LANDING PAGE v9 · 10-section campaign structure, mobile-first\n Edit the CONFIG block at the bottom (prices, checkout links, contact). Empty checkout links open WhatsApp.\n Only real, hosted Brute Camp assets are used. No invented testimonials.\n--\u003e\n\n\u003cstyle\u003e\n#brute-camp{--gold:#C9A44C;--gold-hi:#e8cf8f;--gold-lo:#9a7a2c;--line:rgba(201,164,76,.28);--bg:#000;--char:#0e0e0e;--char2:#171717;--soft:#d2d2d2;--muted:#9a9a9a;--font:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;--ease:cubic-bezier(.2,.8,.2,1);\nposition:relative;isolation:isolate;width:100%;background:var(--bg);color:#fff;font:500 16px\/1.55 var(--font);overflow-x:clip;text-align:left}\nhtml{scroll-behavior:smooth;scroll-padding-top:64px;-webkit-text-size-adjust:100%}\n#brute-camp *,#brute-camp *::before,#brute-camp *::after{box-sizing:border-box}\n#brute-camp,#brute-camp *{font-family:var(--font)!important}\n#brute-camp img,#brute-camp video{max-width:100%;display:block}\n#brute-camp h1,#brute-camp h2,#brute-camp h3,#brute-camp p,#brute-camp ul,#brute-camp ol,#brute-camp figure{margin:0;padding:0;list-style:none}\n#brute-camp h1,#brute-camp h2,#brute-camp h3{font-weight:800;letter-spacing:-.04em;line-height:1.08;text-wrap:balance}\n#brute-camp a{color:inherit}\n#brute-camp [hidden]{display:none!important}\n#brute-camp :focus-visible{outline:2px solid var(--gold);outline-offset:3px}\n#brute-camp .wrap{max-width:1160px;margin:0 auto;padding-inline:18px}\n#brute-camp section{padding-block:44px;position:relative}\n#brute-camp .alt{background:linear-gradient(180deg,#0a0a0a,#050505);border-block:1px solid rgba(255,255,255,.07)}\n#brute-camp .kicker{display:inline-block;padding:6px 14px;border:1px solid var(--line);border-radius:99px;background:rgba(201,164,76,.08);color:var(--gold);font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}\n#brute-camp .h2{font-size:clamp(28px,6.4cqi,46px);margin-top:12px}\n#brute-camp .h2 em,#brute-camp .h1 em{font-style:normal;color:var(--gold)}\n#brute-camp .lead{color:var(--soft);font-size:16.5px;margin-top:10px;max-width:620px}\n#brute-camp .head.c{text-align:center}#brute-camp .head.c .lead{margin-inline:auto}\n#brute-camp .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:12px 26px;border-radius:99px;border:1px solid rgba(255,255,255,.25);font-weight:800;font-size:15px;text-decoration:none;text-align:center;color:#fff;background:rgba(255,255,255,.04);cursor:pointer;transition:transform .2s,box-shadow .25s,border-color .2s}\n#brute-camp .btn:hover{border-color:var(--gold);transform:translateY(-2px)}\n#brute-camp .btn-gold{border:0;position:relative;overflow:hidden;text-shadow:0 1px 2px rgba(0,0,0,.5);background:linear-gradient(155deg,#b8923a,#8a6a22 60%,#6e5318);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 0 0 1px var(--gold),0 10px 28px rgba(0,0,0,.5)}\n#brute-camp .btn-gold::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);transform:translateX(-120%);animation:sheen 5s ease-in-out infinite}\n@keyframes sheen{0%,55%{transform:translateX(-120%)}85%,100%{transform:translateX(120%)}}\n#brute-camp .btn-gold:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 0 0 1px var(--gold-hi),0 14px 36px rgba(201,164,76,.28)}\n#brute-camp .card{border:1px solid rgba(255,255,255,.1);border-radius:22px;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.015));transition:transform .3s var(--ease),border-color .3s}\n#brute-camp .card:hover{border-color:var(--line)}\n#brute-camp .tag{color:var(--gold);font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}\n#brute-camp .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--ease),transform .7s var(--ease)}\n#brute-camp .reveal.in{opacity:1;transform:none}\n#brute-camp .num{font-weight:800;font-style:normal;color:transparent;-webkit-text-stroke:1px var(--gold);line-height:1}\n\n#brute-camp .bcq{container:bc \/ inline-size;width:100%;min-width:0}\n#brute-camp .hero-grid\u003e*,#brute-camp .exp\u003e*,#brute-camp .trust\u003e*,#brute-camp .who\u003e*,#brute-camp .plans\u003e*,#brute-camp .steps\u003e*,#brute-camp .prob-cards\u003e*,#brute-camp .split\u003e*,#brute-camp .fg\u003e*{min-width:0}\n#brute-camp .phone{flex:none}\n#brute-camp .hero-stage{width:100%;max-width:520px;margin-inline:auto}\n#brute-camp .plans{max-width:520px;margin-inline:auto}\n#brute-camp .faq{max-width:820px}\n\/* nav *\/\n#brute-camp .nav{position:sticky;top:0;z-index:50;background:rgba(0,0,0,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}\n#brute-camp .nav-in{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px}\n#brute-camp .brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;letter-spacing:.14em;font-size:12.5px}\n#brute-camp .brand img{width:38px;height:38px;border-radius:50%;object-fit:cover;border:1.5px solid var(--gold)}\n#brute-camp .nav .links{display:none;gap:22px;font-size:13.5px;font-weight:700;color:var(--soft)}\n#brute-camp .nav .links a{text-decoration:none}#brute-camp .nav .links a:hover{color:var(--gold)}\n#brute-camp .nav .btn{min-height:42px;padding:8px 18px;font-size:13px;white-space:nowrap}\n#brute-camp .nav .links a{white-space:nowrap}\n\n\/* 1 hero *\/\n#brute-camp .hero{padding:0;overflow:hidden}\n#brute-camp .hero-bg{position:absolute;inset:0;z-index:-1}\n#brute-camp .hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:.38;filter:grayscale(.3) contrast(1.1)}\n#brute-camp .hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55) 0%,rgba(0,0,0,.82) 55%,#000 100%),radial-gradient(circle at 80% 30%,rgba(201,164,76,.28),transparent 55%)}\n#brute-camp .hero-grid{display:grid;gap:22px;padding-block:30px 36px}\n#brute-camp .h1{font-size:clamp(36px,9.6cqi,68px);line-height:1.02;letter-spacing:-.055em;margin-top:14px}\n#brute-camp .h1 span{display:block}\n#brute-camp .h1 em{display:block;background:linear-gradient(100deg,#9a7a2c,#C9A44C 35%,#e8cf8f 55%,#C9A44C);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}\n#brute-camp .sub{color:var(--soft);font-size:17px;margin-top:14px;max-width:520px}\n#brute-camp .hero .btns{display:grid;gap:10px;margin-top:20px}\n#brute-camp .from{margin-top:12px;font-size:13.5px;color:var(--soft);font-weight:600}\n#brute-camp .from b{color:var(--gold);font-size:18px}\n#brute-camp .hero-stage{position:relative;display:flex;justify-content:center;align-items:center;min-height:400px}\n#brute-camp .phone{position:relative;width:205px;padding:7px;border:1px solid #6a6a6a;border-radius:36px;background:linear-gradient(140deg,#5a5a5a,#111 40%,#2c2c2c);box-shadow:0 40px 80px -30px #000,0 30px 80px -30px rgba(201,164,76,.55)}\n#brute-camp .phone::before{content:'';position:absolute;z-index:3;top:14px;left:50%;translate:-50% 0;width:54px;height:16px;border-radius:20px;background:#000}\n#brute-camp .phone.main{transform:rotate(-6deg);animation:float 6s ease-in-out infinite;z-index:2}\n@keyframes float{0%,100%{transform:rotate(-6deg) translateY(0)}50%{transform:rotate(-6deg) translateY(-9px)}}\n#brute-camp .phone.side{position:absolute;width:132px;opacity:.9;transform:rotate(9deg)}\n#brute-camp .phone.s1{right:-4px;top:8px}\n#brute-camp .phone.s2{left:-6px;bottom:0;transform:rotate(-12deg)}\n#brute-camp .screen{display:block;aspect-ratio:9\/19;border-radius:30px;overflow:hidden;background:#111}\n#brute-camp .screen img{width:100%;height:100%;object-fit:cover;object-position:top}\n#brute-camp .halo{position:absolute;left:50%;top:50%;width:120%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;z-index:0;pointer-events:none;background:conic-gradient(from 0deg,transparent 0 55%,rgba(201,164,76,.35) 75%,transparent);-webkit-mask-image:radial-gradient(circle,transparent 56%,#000 57%,#000 58.5%,transparent 59.5%);mask-image:radial-gradient(circle,transparent 56%,#000 57%,#000 58.5%,transparent 59.5%);animation:spin 28s linear infinite}\n@keyframes spin{to{rotate:360deg}}\n#brute-camp .proofbar{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-bottom:30px}\n#brute-camp .pb{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:16px;background:rgba(201,164,76,.07);font-size:12.5px;font-weight:800;line-height:1.3}\n#brute-camp .pb small{display:block;font-weight:500;color:#8d8d8d;font-size:11px}\n#brute-camp .ico{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);color:var(--gold);font-weight:800;font-size:13px;font-style:normal}\n\n\/* 2 problem *\/\n#brute-camp .prob-cards{display:grid;gap:10px;margin-top:22px}\n#brute-camp .pc{padding:16px 18px;display:flex;gap:14px;align-items:flex-start}\n#brute-camp .pc .old{display:block;color:#7d7d7d;font-size:13px;font-weight:700;text-decoration:line-through;text-decoration-color:var(--gold);text-decoration-thickness:2px}\n#brute-camp .pc .new{display:block;font-size:16.5px;font-weight:800;line-height:1.3;margin-top:2px}\n#brute-camp .split{display:grid;margin-top:18px;border-radius:22px;overflow:hidden;border:1px solid var(--line)}\n#brute-camp .sp{padding:18px;min-height:210px;position:relative}\n#brute-camp .sp.bad{background:#0b0b0b}\n#brute-camp .sp.good{background:linear-gradient(160deg,rgba(201,164,76,.16),#050505)}\n#brute-camp .sp .tag{display:block;margin-bottom:12px}\n#brute-camp .sp.bad .tag{color:#7a7a7a}\n#brute-camp .mess{display:flex;flex-wrap:wrap;gap:8px}\n#brute-camp .mess span{padding:7px 12px;border:1px dashed #444;border-radius:12px;font-size:12.5px;color:#888;transform:rotate(var(--r,0deg))}\n#brute-camp .mess span:nth-child(1){--r:-3deg}#brute-camp .mess span:nth-child(2){--r:4deg}#brute-camp .mess span:nth-child(3){--r:-2deg}#brute-camp .mess span:nth-child(4){--r:3deg}#brute-camp .mess span:nth-child(5){--r:-4deg}\n#brute-camp .plan-list{display:grid;gap:8px}\n#brute-camp .plan-list div{display:flex;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.5);font-size:13.5px;font-weight:700}\n#brute-camp .plan-list b{color:var(--gold)}\n#brute-camp .note{color:#8a8a8a;font-size:12.5px;margin-top:10px}\n\n\/* 3 experience *\/\n#brute-camp .exp{display:grid;gap:18px;margin-top:22px}\n#brute-camp .exp-img{position:relative;border-radius:22px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 60px -40px rgba(201,164,76,.6)}\n#brute-camp .exp-img img{width:100%;height:auto}\n#brute-camp .feat-list{display:grid;gap:10px}\n#brute-camp .feat{padding:14px 18px;display:flex;gap:14px;align-items:flex-start}\n#brute-camp .feat i{flex:none;color:var(--gold);font-style:normal;font-weight:800}\n#brute-camp .feat b{display:block;font-size:16px}\n#brute-camp .feat span{color:var(--muted);font-size:14px}\n\n\/* 4 receive *\/\n#brute-camp .rec{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}\n#brute-camp .rc{padding:12px;text-align:center}\n#brute-camp .rc .phone{width:100%;max-width:170px;margin:0 auto 12px;padding:6px;border-radius:30px}\n#brute-camp .rc .screen{border-radius:25px}\n#brute-camp .rc .phone::before{width:44px;height:13px;top:12px}\n#brute-camp .rc h3{font-size:15.5px}\n#brute-camp .rc p{color:var(--muted);font-size:12.5px;margin-top:3px;line-height:1.4}\n#brute-camp .wide-shot{margin-top:14px;border-radius:22px;overflow:hidden;border:1px solid var(--line)}\n#brute-camp .wide-shot img{width:100%;height:auto}\n#brute-camp .wide-shot figcaption{padding:14px 18px}\n#brute-camp .wide-shot h3{font-size:18px}\n#brute-camp .wide-shot p{color:var(--muted);font-size:13.5px;margin-top:3px}\n\n\/* 5 steps *\/\n#brute-camp .steps{display:grid;gap:12px;margin-top:22px}\n#brute-camp .step{padding:18px 20px;display:flex;gap:16px;align-items:flex-start}\n#brute-camp .step .num{font-size:40px;flex:none;width:56px}\n#brute-camp .step b{display:block;font-size:17px;margin-bottom:3px}\n#brute-camp .step p{color:var(--muted);font-size:14px}\n#brute-camp .step strong{color:var(--gold)}\n\n\/* 6 who *\/\n#brute-camp .who{display:grid;gap:14px;margin-top:22px}\n#brute-camp .wc{overflow:hidden}\n#brute-camp .wc .ph{position:relative;aspect-ratio:16\/10;overflow:hidden}\n#brute-camp .wc .ph img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}\n#brute-camp .wc:hover .ph img{transform:scale(1.05)}\n#brute-camp .wc .ph::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.85))}\n#brute-camp .wc .tx{padding:6px 20px 20px}\n#brute-camp .wc h3{font-size:23px;margin:6px 0}\n#brute-camp .wc p{color:var(--soft);font-size:14.5px}\n#brute-camp .wc ul{margin-top:10px;display:grid;gap:6px;font-size:14px;color:var(--soft)}\n#brute-camp .wc li{display:flex;gap:10px}\n#brute-camp .wc li::before{content:'✓';color:var(--gold);font-weight:800}\n#brute-camp .goals{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:18px}\n#brute-camp .goals span{padding:8px 14px;border:1px solid var(--line);border-radius:99px;background:rgba(201,164,76,.07);color:var(--soft);font-size:13px;font-weight:700}\n\n\/* 7 trust *\/\n#brute-camp .trust{display:grid;gap:16px;margin-top:22px}\n#brute-camp .coach img{width:100%;aspect-ratio:16\/10;object-fit:cover;object-position:center 25%}\n#brute-camp .coach{overflow:hidden}\n#brute-camp .coach .m{padding:16px 18px}\n#brute-camp .coach h3{font-size:26px;margin:4px 0 6px}\n#brute-camp .coach p{color:var(--soft);font-size:14.5px}\n#brute-camp .creds{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}\n#brute-camp .creds span{padding:7px 14px;border:1px solid var(--line);border-radius:99px;font-size:12px;font-weight:700;color:var(--soft)}\n#brute-camp .pv-stage{overflow:hidden;border-radius:22px;border:1px solid var(--line);background:#000}\n#brute-camp .pv-media video,#brute-camp .pv-media img{width:100%;height:auto;max-height:360px;object-fit:contain;background:#000}\n#brute-camp .cap{padding:10px 18px;border-top:1px solid rgba(255,255,255,.08)}\n#brute-camp .cap b{display:block;font-size:15px}#brute-camp .cap span{color:var(--muted);font-size:13px}\n#brute-camp .pv-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:10px}\n#brute-camp .pv-tab{min-height:44px;padding:8px 6px;border:1px solid rgba(255,255,255,.14);border-radius:12px;background:transparent;color:var(--soft);font-size:12.5px;font-weight:800;cursor:pointer;transition:.2s}\n#brute-camp .pv-tab:hover{border-color:var(--gold)}\n#brute-camp .pv-tab[aria-pressed=\"true\"]{background:#8a6a22;border-color:var(--gold);color:#fff}\n\n\/* 8 pricing *\/\n#brute-camp .plans{display:grid;gap:16px;margin-top:22px}\n#brute-camp .plan{position:relative;display:flex;flex-direction:column;padding:22px 20px}\n#brute-camp .plan.rec2{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),0 30px 70px -30px rgba(201,164,76,.6);background:linear-gradient(170deg,rgba(201,164,76,.18),#050505 70%)}\n#brute-camp .badge{align-self:flex-start;margin-bottom:8px;padding:5px 14px;border-radius:99px;background:#8a6a22;border:1px solid var(--gold);font-size:10px;font-weight:800;letter-spacing:.14em}\n#brute-camp .plan h3{font-size:26px;margin-top:2px}\n#brute-camp .plan .wh{color:var(--muted);font-size:14px;margin-top:4px}\n#brute-camp .price{margin:12px 0 2px;display:flex;align-items:baseline;gap:6px}\n#brute-camp .price b{font-size:44px;letter-spacing:-.05em;background:linear-gradient(100deg,#fff,var(--gold-hi));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}\n#brute-camp .price span{color:var(--muted);font-size:14px}\n#brute-camp .perday{color:var(--gold);font-size:12.5px;font-weight:700}\n#brute-camp .plan ul{margin:14px 0;display:grid;gap:9px;font-size:14px;color:var(--soft);flex:1}\n#brute-camp .plan li{display:flex;gap:11px}\n#brute-camp .plan li::before{content:'✓';color:var(--gold);font-weight:800}\n#brute-camp .plan li:first-child{color:#fff;font-weight:700}\n#brute-camp .plan .btn{width:100%}\n#brute-camp .plan .hint{text-align:center;color:var(--muted);font-size:12px;margin:8px 0 12px}\n#brute-camp .plan .btn-wa{min-height:46px;font-size:14px;font-weight:700;background:transparent;border-color:var(--line);color:var(--gold-hi)}\n#brute-camp .gstrip{display:flex;flex-direction:column;gap:14px;margin-top:18px;padding:18px 20px;border-color:var(--line)}\n#brute-camp .gseal{width:66px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;text-align:center;border:1.5px solid var(--gold);color:var(--gold);font-weight:800;line-height:1;box-shadow:0 0 0 6px rgba(201,164,76,.1)}\n#brute-camp .gseal b{font-size:26px;display:block}#brute-camp .gseal span{font-size:9px;letter-spacing:.14em}\n#brute-camp .gstrip b{display:block;font-size:16px;margin-bottom:2px}\n#brute-camp .gstrip p{font-size:13.5px;color:var(--soft)}\n\n\/* 9 faq *\/\n#brute-camp .faq{display:grid;gap:10px;margin-top:22px;max-width:820px;margin-inline:auto}\n#brute-camp .fi{border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(255,255,255,.03);overflow:hidden;transition:border-color .3s}\n#brute-camp .fi.open{border-color:var(--gold)}\n#brute-camp .fq{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:56px;padding:12px 16px;background:none;border:0;color:#fff;font-size:15px;font-weight:700;text-align:left;cursor:pointer;line-height:1.4}\n#brute-camp .fq svg{width:20px;height:20px;flex:none;color:var(--gold);transition:transform .3s}\n#brute-camp .fi.open .fq svg{transform:rotate(45deg)}\n#brute-camp .fa{display:grid;grid-template-rows:0fr;transition:grid-template-rows .35s var(--ease)}\n#brute-camp .fi.open .fa{grid-template-rows:1fr}\n#brute-camp .fa\u003ediv{overflow:hidden}\n#brute-camp .fa p{padding:0 16px 16px;color:var(--muted);font-size:14.5px}\n\n\/* 10 final + footer *\/\n#brute-camp .final{text-align:center;overflow:hidden;background:radial-gradient(ellipse at 50% 0%,rgba(201,164,76,.2),transparent 62%)}\n#brute-camp .final .btns{display:grid;gap:10px;margin-top:20px;max-width:420px;margin-inline:auto}\n#brute-camp .risk{margin-top:12px;color:var(--gold);font-size:13px;font-weight:800}\n#brute-camp footer{border-top:1px solid var(--line);background:#030303;padding:28px 0}\n#brute-camp .fg{display:grid;gap:20px}\n#brute-camp footer h4{margin:0 0 10px;font-size:12px;letter-spacing:.16em;color:var(--gold);text-transform:uppercase}\n#brute-camp footer ul{list-style:none;margin:0;padding:0}\n#brute-camp footer li{margin-bottom:6px;font-size:13.5px;color:var(--soft)}\n#brute-camp footer a{text-decoration:none}#brute-camp footer a:hover{color:var(--gold)}\n#brute-camp .fb p{margin-top:10px;color:var(--muted);font-size:13.5px;max-width:320px}\n#brute-camp .disc{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08);font-size:11.5px;color:#7a7a7a;line-height:1.65}\n\n\/* sticky mobile CTA *\/\n#brute-camp .sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,rgba(0,0,0,.92) 35%);transform:translateY(120%);transition:transform .35s var(--ease)}\n#brute-camp .sticky.on{transform:none}\n#brute-camp .sticky .btn{width:100%;min-height:52px}\n\n@container bc (min-width:560px){\n #brute-camp .hero .btns{display:flex;flex-wrap:wrap}\n #brute-camp .final .btns{display:flex;justify-content:center;max-width:none}\n #brute-camp .fg{grid-template-columns:1.3fr 1fr}\n #brute-camp .rec{gap:14px}\n #brute-camp .exp-img,#brute-camp .wide-shot{max-width:720px;margin-inline:auto}\n}\n@container bc (min-width:720px){\n #brute-camp section{padding-block:64px}\n #brute-camp .wrap{padding-inline:32px}\n #brute-camp .proofbar{grid-template-columns:repeat(4,1fr)}\n #brute-camp .prob-cards{grid-template-columns:repeat(3,1fr)}\n #brute-camp .pc{flex-direction:column}\n #brute-camp .split{grid-template-columns:1fr 1fr}\n #brute-camp .steps{grid-template-columns:repeat(3,1fr)}\n #brute-camp .step{flex-direction:column}\n #brute-camp .who{grid-template-columns:1fr 1fr}\n #brute-camp .plans.two{grid-template-columns:1fr 1fr;max-width:880px}\n #brute-camp .gstrip{flex-direction:row;align-items:center}\n #brute-camp .gstrip\u003ediv:nth-child(2){flex:1}\n #brute-camp .pv-tabs{grid-template-columns:repeat(3,1fr)}\n #brute-camp .rec{grid-template-columns:repeat(2,1fr);max-width:560px;margin-inline:auto}\n #brute-camp .rec.rec{margin-top:22px}\n}\n@container bc (min-width:900px){\n #brute-camp .nav .links{display:flex}\n #brute-camp .hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:32px;padding-block:56px}\n #brute-camp .hero-stage{min-height:500px;max-width:none}\n #brute-camp .phone{width:230px}#brute-camp .phone.side{width:160px}\n #brute-camp .exp{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center}\n #brute-camp .exp-img{max-width:none}\n #brute-camp .rec{grid-template-columns:repeat(4,1fr);max-width:none}\n #brute-camp .trust{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start}\n #brute-camp .fg{grid-template-columns:1.3fr 1fr 1fr 1fr}\n}\n@container bc (min-width:1180px){\n #brute-camp .wrap{padding-inline:40px}\n #brute-camp .hero-stage{min-height:560px}\n #brute-camp .phone{width:260px}#brute-camp .phone.side{width:180px}\n #brute-camp .phone.s1{right:6%}#brute-camp .phone.s2{left:6%}\n}\n@supports not (container-type:inline-size){\n@media(min-width:560px){\n #brute-camp .hero .btns{display:flex;flex-wrap:wrap}\n #brute-camp .final .btns{display:flex;justify-content:center;max-width:none}\n #brute-camp .fg{grid-template-columns:1.3fr 1fr}\n #brute-camp .rec{gap:14px}\n #brute-camp .exp-img,#brute-camp .wide-shot{max-width:720px;margin-inline:auto}\n}\n@media(min-width:720px){\n #brute-camp section{padding-block:64px}\n #brute-camp .wrap{padding-inline:32px}\n #brute-camp .proofbar{grid-template-columns:repeat(4,1fr)}\n #brute-camp .prob-cards{grid-template-columns:repeat(3,1fr)}\n #brute-camp .pc{flex-direction:column}\n #brute-camp .split{grid-template-columns:1fr 1fr}\n #brute-camp .steps{grid-template-columns:repeat(3,1fr)}\n #brute-camp .step{flex-direction:column}\n #brute-camp .who{grid-template-columns:1fr 1fr}\n #brute-camp .plans.two{grid-template-columns:1fr 1fr;max-width:880px}\n #brute-camp .gstrip{flex-direction:row;align-items:center}\n #brute-camp .gstrip\u003ediv:nth-child(2){flex:1}\n #brute-camp .pv-tabs{grid-template-columns:repeat(3,1fr)}\n #brute-camp .rec{grid-template-columns:repeat(2,1fr);max-width:560px;margin-inline:auto}\n #brute-camp .rec.rec{margin-top:22px}\n}\n@media(min-width:900px){\n #brute-camp .nav .links{display:flex}\n #brute-camp .hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:32px;padding-block:56px}\n #brute-camp .hero-stage{min-height:500px;max-width:none}\n #brute-camp .phone{width:230px}#brute-camp .phone.side{width:160px}\n #brute-camp .exp{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center}\n #brute-camp .exp-img{max-width:none}\n #brute-camp .rec{grid-template-columns:repeat(4,1fr);max-width:none}\n #brute-camp .trust{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start}\n #brute-camp .fg{grid-template-columns:1.3fr 1fr 1fr 1fr}\n}\n@media(min-width:1180px){\n #brute-camp .wrap{padding-inline:40px}\n #brute-camp .hero-stage{min-height:560px}\n #brute-camp .phone{width:260px}#brute-camp .phone.side{width:180px}\n #brute-camp .phone.s1{right:6%}#brute-camp .phone.s2{left:6%}\n}\n}\n#brute-camp .sticky{display:block}\n@media(min-width:720px){#brute-camp .sticky{display:none}}\n@media(prefers-reduced-motion:reduce){#brute-camp *,#brute-camp *::before,#brute-camp *::after{animation:none!important;transition:none!important}#brute-camp .reveal{opacity:1;transform:none}}\n\n\/* Responsive comfort: reflow content without squeezing cards or controls. *\/\n#brute-camp{overflow-wrap:break-word}\n#brute-camp .copy{container:hero-copy \/ inline-size;min-width:0}\n#brute-camp .h1{font-size:clamp(30px,9vw,68px);font-size:clamp(30px,10.8cqi,68px)}\n#brute-camp .h2{font-size:clamp(28px,6.4vw,46px);font-size:clamp(28px,6.4cqi,46px)}\n#brute-camp .nav-in{flex-wrap:wrap;padding-block:8px}\n#brute-camp .brand{min-width:0}\n#brute-camp .brand img{flex-shrink:0}\n#brute-camp .nav .btn{white-space:normal;max-width:100%;flex-shrink:0}\n#brute-camp .btn{max-width:100%;min-width:0;white-space:normal}\n#brute-camp .final .btns{flex-wrap:wrap}\n#brute-camp .proofbar{grid-template-columns:repeat(2,minmax(0,1fr))}\n#brute-camp .pb\u003ediv{min-width:0}\n#brute-camp .steps{grid-template-columns:1fr}\n#brute-camp .step{flex-direction:row}\n#brute-camp .step\u003ediv{min-width:0}\n#brute-camp .rec{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}\n#brute-camp .rc .phone{max-width:230px}\n#brute-camp .rc h3{font-size:16px}\n#brute-camp .rc p{font-size:14px}\n#brute-camp .plans.two{grid-template-columns:1fr;max-width:520px}\n#brute-camp .gstrip{flex-wrap:wrap}\n#brute-camp .gstrip\u003ediv:nth-child(2){min-width:0}\n#brute-camp .gseal{flex-shrink:0}\n#brute-camp .hero-stage{container:hero-art \/ inline-size;max-width:520px}\n#brute-camp .hero-stage\u003e.phone.main{width:clamp(190px,60cqi,260px);max-width:72%}\n#brute-camp .hero-stage\u003e.phone.side{width:34%;max-width:180px}\n#brute-camp .hero-stage\u003e.phone.s1{right:3%}\n#brute-camp .hero-stage\u003e.phone.s2{left:3%}\n#brute-camp footer a{overflow-wrap:anywhere}\n@container bc (max-width:399px){\n #brute-camp .nav-in{justify-content:center;gap:8px}\n #brute-camp .proofbar{grid-template-columns:1fr}\n #brute-camp .hero-stage\u003e.phone.side{display:none}\n #brute-camp section[id]{scroll-margin-top:48px}\n}\n@container bc (max-width:559px){\n #brute-camp .rec{grid-template-columns:1fr;max-width:360px}\n}\n@container bc (min-width:800px){\n #brute-camp .plans.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:880px}\n}\n@container bc (min-width:1000px){\n #brute-camp .proofbar{grid-template-columns:repeat(4,minmax(0,1fr))}\n #brute-camp .steps{grid-template-columns:repeat(3,minmax(0,1fr))}\n #brute-camp .step{flex-direction:column}\n}\n@container bc (min-width:1040px){\n #brute-camp .rec{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none}\n}\n@supports not (container-type:inline-size){\n @media(min-width:1040px){#brute-camp .rec{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none}}\n @media(max-width:399px){\n  #brute-camp .nav-in{justify-content:center;gap:8px}\n  #brute-camp .proofbar{grid-template-columns:1fr}\n  #brute-camp .hero-stage\u003e.phone.side{display:none}\n #brute-camp section[id]{scroll-margin-top:48px}\n }\n @media(max-width:559px){#brute-camp .rec{grid-template-columns:1fr;max-width:360px}}\n @media(min-width:800px){#brute-camp .plans.two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:880px}}\n @media(min-width:1000px){\n  #brute-camp .proofbar{grid-template-columns:repeat(4,minmax(0,1fr))}\n  #brute-camp .steps{grid-template-columns:repeat(3,minmax(0,1fr))}\n  #brute-camp .step{flex-direction:column}\n }\n}\n@supports not (font-size:1cqi){\n @media(min-width:900px){#brute-camp .h1{font-size:clamp(34px,4.5vw,60px)}}\n}\n@media(max-width:719px){\n #brute-camp footer{padding-bottom:calc(100px + env(safe-area-inset-bottom,0px))}\n}\n\n\u003c\/style\u003e\n\n\u003cdiv id=\"brute-camp\"\u003e\n\u003cdiv class=\"bcq\"\u003e\n\n\u003cheader class=\"nav\"\u003e\n  \u003cdiv class=\"wrap nav-in\"\u003e\n    \u003ca class=\"brand\" href=\"#top\" aria-label=\"Brute Camp home\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/Gemini_Generated_Image_nwgvr5nwgvr5nwgv.jpg?v=1791809513\" alt=\"Brute Camp logo\" width=\"38\" height=\"38\"\u003e\u003cspan\u003eBRUTE CAMP\u003c\/span\u003e\u003c\/a\u003e\n    \u003cnav class=\"links\" aria-label=\"Main\"\u003e\u003ca href=\"#experience\"\u003eThe experience\u003c\/a\u003e\u003ca href=\"#how\"\u003eHow it works\u003c\/a\u003e\u003ca href=\"#coach\"\u003eYour coach\u003c\/a\u003e\u003ca href=\"#plans\"\u003ePricing\u003c\/a\u003e\u003ca href=\"#faq\"\u003eFAQ\u003c\/a\u003e\u003c\/nav\u003e\n    \u003ca class=\"btn btn-gold\" href=\"#plans\" data-cta=\"nav\"\u003e\u003cspan\u003eChoose my plan\u003c\/span\u003e\u003c\/a\u003e\n  \u003c\/div\u003e\n\u003c\/header\u003e\n\n\u003cmain\u003e\n\n\u003c!-- 1 HERO --\u003e\n\u003csection class=\"hero\" id=\"top\"\u003e\n  \u003cdiv class=\"hero-bg\" aria-hidden=\"true\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/Gemini_Generated_Image_weycbxweycbxweyc.jpg?v=1790681718\" alt=\"\" fetchpriority=\"high\"\u003e\u003c\/div\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"hero-grid\"\u003e\n      \u003cdiv class=\"copy\"\u003e\n        \u003cp class=\"kicker reveal\"\u003eBrute Transformation\u003c\/p\u003e\n        \u003ch1 class=\"h1 reveal\"\u003e\n\u003cspan\u003eYour Goals.\u003c\/span\u003e\u003cspan\u003eYour Plan.\u003c\/span\u003e\u003cem\u003eYour Transformation.\u003c\/em\u003e\n\u003c\/h1\u003e\n        \u003cp class=\"sub reveal\"\u003eOpen the app knowing what to do next. Get workouts built around your goals, practical nutrition guidance and a real coach to help you stay consistent around work and life.\u003c\/p\u003e\n        \u003cdiv class=\"btns reveal\"\u003e\n          \u003ca class=\"btn btn-gold\" href=\"#plans\" data-cta=\"hero\"\u003e\u003cspan\u003eSTART MY TRANSFORMATION\u003c\/span\u003e\u003c\/a\u003e\n          \u003ca class=\"btn\" href=\"#receive\" data-cta=\"hero-see\"\u003eSee what's included\u003c\/a\u003e\n        \u003c\/div\u003e\n        \u003cp class=\"from reveal\"\u003eFrom \u003cb data-price-from\u003eR1,499\u003c\/b\u003e \/month · ZAR · cancel anytime\u003c\/p\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"hero-stage reveal\" aria-label=\"Brute Camp app preview\"\u003e\n        \u003cspan class=\"halo\" aria-hidden=\"true\"\u003e\u003c\/span\u003e\n        \u003cdiv class=\"phone side s2\" aria-hidden=\"true\"\u003e\u003cdiv class=\"screen\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/IMG_1745.png?v=1791970198\" alt=\"\" loading=\"lazy\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n        \u003cdiv class=\"phone main\"\u003e\u003cdiv class=\"screen\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/IMG_1744.png?v=1791970181\" alt=\"Brute Camp app dashboard showing your day and progress\" width=\"390\" height=\"820\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n        \u003cdiv class=\"phone side s1\" aria-hidden=\"true\"\u003e\u003cdiv class=\"screen\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/IMG_1747.png?v=1791970233\" alt=\"\" loading=\"lazy\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"proofbar\"\u003e\n      \u003cdiv class=\"pb\"\u003e\n\u003ci class=\"ico\" aria-hidden=\"true\"\u003e1\u003c\/i\u003e\u003cdiv\u003eCoached by Kemi\u003csmall\u003eSupport from your coach\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"pb\"\u003e\n\u003ci class=\"ico\" aria-hidden=\"true\"\u003e25\u003c\/i\u003e\u003cdiv\u003e20–25 min sessions\u003csmall\u003eFits between meetings\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"pb\"\u003e\n\u003ci class=\"ico\" aria-hidden=\"true\"\u003eR\u003c\/i\u003e\u003cdiv\u003eClear ZAR pricing\u003csmall\u003eNo contracts\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"pb\"\u003e\n\u003ci class=\"ico\" aria-hidden=\"true\" data-g-days\u003e7\u003c\/i\u003e\u003cdiv\u003e\n\u003cspan data-g-days\u003e7\u003c\/span\u003e-day guarantee\u003csmall\u003eOn your first payment\u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- 2 PROBLEM --\u003e\n\u003csection id=\"problem\" class=\"alt\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"head c reveal\"\u003e\n      \u003cp class=\"kicker\"\u003eSound familiar?\u003c\/p\u003e\n      \u003ch2 class=\"h2\"\u003eStop Starting Over. \u003cem\u003eStart With A Plan.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003cp class=\"lead\"\u003eSpend less time deciding what to do and more time following a plan built around you. Clear sessions and coaching check-ins help turn good intentions into a routine.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"prob-cards\"\u003e\n      \u003cdiv class=\"card pc reveal\"\u003e\n\u003ci class=\"ico\" aria-hidden=\"true\"\u003e1\u003c\/i\u003e\u003cdiv\u003e\n\u003cspan class=\"old\"\u003eNo structure\u003c\/span\u003e\u003cspan class=\"new\"\u003eWorkouts matched to your goals\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"card pc reveal\"\u003e\n\u003ci class=\"ico\" aria-hidden=\"true\"\u003e2\u003c\/i\u003e\u003cdiv\u003e\n\u003cspan class=\"old\"\u003eNo consistency\u003c\/span\u003e\u003cspan class=\"new\"\u003eA clear plan to follow, every session\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"card pc reveal\"\u003e\n\u003ci class=\"ico\" aria-hidden=\"true\"\u003e3\u003c\/i\u003e\u003cdiv\u003e\n\u003cspan class=\"old\"\u003eNo accountability\u003c\/span\u003e\u003cspan class=\"new\"\u003eA coach to help you stay on track\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"split reveal\"\u003e\n      \u003cdiv class=\"sp bad\"\u003e\n\u003cspan class=\"tag\"\u003eWithout a plan\u003c\/span\u003e\u003cdiv class=\"mess\"\u003e\n\u003cspan\u003eWhat do I train today?\u003c\/span\u003e\u003cspan\u003eRandom YouTube workout\u003c\/span\u003e\u003cspan\u003eSkipped. Again.\u003c\/span\u003e\u003cspan\u003eIs this even working?\u003c\/span\u003e\u003cspan\u003eStart over Monday\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"sp good\"\u003e\n\u003cspan class=\"tag\"\u003eWith Brute Camp\u003c\/span\u003e\u003cdiv class=\"plan-list\"\u003e\n\u003cdiv\u003e\n\u003cspan\u003ePress start\u003c\/span\u003e\u003cb\u003eToday's workout\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cspan\u003eSets, reps, technique video\u003c\/span\u003e\u003cb\u003e20–25 min\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cspan\u003eMeals \u0026amp; macro guidance\u003c\/span\u003e\u003cb\u003eDone\u003c\/b\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cspan\u003eProgress you can see\u003c\/span\u003e\u003cb\u003eTracked\u003c\/b\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- 3 EXPERIENCE --\u003e\n\u003csection id=\"experience\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"head c reveal\"\u003e\n      \u003cp class=\"kicker\"\u003eThe Brute experience\u003c\/p\u003e\n      \u003ch2 class=\"h2\"\u003eMore Than \u003cem\u003eA Workout Plan.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003cp class=\"lead\"\u003eYour training, nutrition and progress in one place, with AI tools for day-to-day tracking and a real coach to help you stay focused.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"exp\"\u003e\n      \u003cfigure class=\"exp-img reveal\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/ChatGPT_Image_Oct_23_2026_08_05_51_PM.png?v=1792778959\" alt=\"Brute Camp AI features: AI check-ins, AI food analysis and smarter habit tracking\" loading=\"lazy\" decoding=\"async\"\u003e\u003c\/figure\u003e\n      \u003cdiv class=\"feat-list\"\u003e\n        \u003cdiv class=\"card feat reveal\"\u003e\n\u003ci\u003e✓\u003c\/i\u003e\u003cdiv\u003e\n\u003cb\u003eTraining built around your goals\u003c\/b\u003e\u003cspan\u003eKnow what to work on with sessions matched to your goals, experience and equipment.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"card feat reveal\"\u003e\n\u003ci\u003e✓\u003c\/i\u003e\u003cdiv\u003e\n\u003cb\u003eTrain with more confidence\u003c\/b\u003e\u003cspan\u003eFollow exercise demonstrations so you can approach each session with clear guidance.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"card feat reveal\"\u003e\n\u003ci\u003e✓\u003c\/i\u003e\u003cdiv\u003e\n\u003cb\u003eNutrition that fits real life\u003c\/b\u003e\u003cspan\u003eMake everyday food choices easier with practical guidance you can use.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"card feat reveal\"\u003e\n\u003ci\u003e✓\u003c\/i\u003e\u003cdiv\u003e\n\u003cb\u003eSee the work you're putting in\u003c\/b\u003e\u003cspan\u003eLog your sessions and track your progress, so you can see how your training develops.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"card feat reveal\"\u003e\n\u003ci\u003e✓\u003c\/i\u003e\u003cdiv\u003e\n\u003cb\u003eSupport to keep you moving\u003c\/b\u003e\u003cspan\u003eUse your coaching support and scheduled check-ins to stay focused on your goals.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n        \u003cdiv class=\"card feat reveal\"\u003e\n\u003ci\u003e✓\u003c\/i\u003e\u003cdiv\u003e\n\u003cb\u003eA plan that evolves with you\u003c\/b\u003e\u003cspan\u003eKeep your training relevant with programme reviews and adjustments according to your package.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- 4 WHAT YOU RECEIVE --\u003e\n\u003csection id=\"receive\" class=\"alt\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"head c reveal\"\u003e\n      \u003cp class=\"kicker\"\u003eWhat you receive\u003c\/p\u003e\n      \u003ch2 class=\"h2\"\u003eYour Whole Plan. \u003cem\u003eIn Your Pocket.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003cp class=\"lead\"\u003eYour sessions, schedule and progress in one place. See the real Brute Camp app below.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"rec\"\u003e\n      \u003cdiv class=\"card rc reveal\"\u003e\n\u003cdiv class=\"phone\"\u003e\u003cdiv class=\"screen\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/IMG_1747.png?v=1791970233\" alt=\"Brute Camp workout scheduled for today\" loading=\"lazy\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003ch3\u003eToday's workout\u003c\/h3\u003e\n\u003cp\u003eKnow your next session. Open it and train.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"card rc reveal\"\u003e\n\u003cdiv class=\"phone\"\u003e\u003cdiv class=\"screen\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/IMG_1744.png?v=1791970181\" alt=\"Brute Camp progress dashboard\" loading=\"lazy\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003ch3\u003eProgress dashboard\u003c\/h3\u003e\n\u003cp\u003eTrack your effort and see your progress.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"card rc reveal\"\u003e\n\u003cdiv class=\"phone\"\u003e\u003cdiv class=\"screen\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/IMG_1745.png?v=1791970198\" alt=\"Brute Camp calendar of planned sessions\" loading=\"lazy\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003ch3\u003eTraining calendar\u003c\/h3\u003e\n\u003cp\u003ePlan your training around the week ahead.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"card rc reveal\"\u003e\n\u003cdiv class=\"phone\"\u003e\u003cdiv class=\"screen\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/IMG_1743.png?v=1791970166\" alt=\"Brute Camp sign-up screen\" loading=\"lazy\"\u003e\u003c\/div\u003e\u003c\/div\u003e\n\u003ch3\u003eEasy sign-up\u003c\/h3\u003e\n\u003cp\u003eTake the first step towards your own plan.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cfigure class=\"wide-shot card reveal\"\u003e\n      \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/ChatGPT_Image_Oct_23_2026_08_07_05_PM.png?v=1792778951\" alt=\"Brute Camp food recommendations from Day 1 to Day 30\" loading=\"lazy\" decoding=\"async\"\u003e\n      \u003cfigcaption\u003e\u003cspan class=\"tag\"\u003e30 days of food\u003c\/span\u003e\u003ch3\u003eDay 1 to Day 30. Already planned.\u003c\/h3\u003e\n\u003cp\u003eSpend less time wondering what to eat, with meal ideas built around foods you already buy and cook.\u003c\/p\u003e\u003c\/figcaption\u003e\n    \u003c\/figure\u003e\n    \u003cp style=\"text-align:center;margin-top:20px\" class=\"reveal\"\u003e\u003ca class=\"btn btn-gold\" href=\"#plans\" data-cta=\"receive\"\u003e\u003cspan\u003eChoose my coaching plan\u003c\/span\u003e\u003c\/a\u003e\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- 5 HOW IT WORKS --\u003e\n\u003csection id=\"how\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"head c reveal\"\u003e\n      \u003cp class=\"kicker\"\u003eHow it works\u003c\/p\u003e\n      \u003ch2 class=\"h2\"\u003eYour Coach. Your Programme. \u003cem\u003eYour Pocket.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003c\/div\u003e\n    \u003col class=\"steps\"\u003e\n      \u003cli class=\"card step reveal\"\u003e\n\u003ci class=\"num\"\u003e01\u003c\/i\u003e\u003cdiv\u003e\n\u003cb\u003eChoose your plan\u003c\/b\u003e\u003cp\u003eChoose the level of coaching and accountability that fits your goals.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n      \u003cli class=\"card step reveal\"\u003e\n\u003ci class=\"num\"\u003e02\u003c\/i\u003e\u003cdiv\u003e\n\u003cb\u003eComplete onboarding, get your programme\u003c\/b\u003e\u003cp\u003eShare your goals, experience, schedule and equipment so your coach can build your programme around you. \u003cstrong id=\"turnaround\"\u003e\u003c\/strong\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n      \u003cli class=\"card step reveal\"\u003e\n\u003ci class=\"num\"\u003e03\u003c\/i\u003e\u003cdiv\u003e\n\u003cb\u003eTrain, track and review\u003c\/b\u003e\u003cp\u003eOpen your next session, log your progress and use your scheduled coach check-ins to review how you're doing.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/li\u003e\n    \u003c\/ol\u003e\n    \u003cp class=\"note\" style=\"text-align:center\"\u003eTrain at home or in the gym, depending on your programme and equipment.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- 6 WHO IT'S FOR --\u003e\n\u003csection id=\"who\" class=\"alt\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"head c reveal\"\u003e\n      \u003cp class=\"kicker\"\u003eWho it's for\u003c\/p\u003e\n      \u003ch2 class=\"h2\"\u003eBuilt For \u003cem\u003eYour Starting Point.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"who\"\u003e\n      \u003carticle class=\"card wc reveal\"\u003e\n        \u003cdiv class=\"ph\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/IMG_1825.jpg?v=1792261348\" alt=\"Coach Kemi building a client's personalised plan\" loading=\"lazy\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"tx\"\u003e\n\u003cspan class=\"tag\"\u003eIf you're a beginner\u003c\/span\u003e\u003ch3\u003eA clear starting point.\u003c\/h3\u003e\n\u003cp\u003eStart with clear sessions and exercise guidance, so you can build confidence one workout at a time.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eTechnique videos for every exercise\u003c\/li\u003e\n\u003cli\u003eTrain at home or in the gym\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n      \u003carticle class=\"card wc reveal\"\u003e\n        \u003cdiv class=\"ph\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/Gemini_Generated_Image_weycbxweycbxweyc.jpg?v=1790681718\" alt=\"Man doing a strength training session\" loading=\"lazy\"\u003e\u003c\/div\u003e\n        \u003cdiv class=\"tx\"\u003e\n\u003cspan class=\"tag\"\u003eIf you already train\u003c\/span\u003e\u003ch3\u003eGive your effort more direction.\u003c\/h3\u003e\n\u003cp\u003eMake your training more purposeful with a structured programme, progress tracking and coaching reviews.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eWeight, rep and body-stat tracking\u003c\/li\u003e\n\u003cli\u003eReviews and adjustments as you progress\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"goals reveal\"\u003e\n\u003cspan\u003eReturning to fitness? Rebuild your routine\u003c\/span\u003e\u003cspan\u003eBusy schedule? Train around your time\u003c\/span\u003e\u003cspan\u003eYour effort, with a clear direction\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- 7 TRUST --\u003e\n\u003csection id=\"coach\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"head c reveal\"\u003e\n      \u003cp class=\"kicker\"\u003eYour journey. Your progress.\u003c\/p\u003e\n      \u003ch2 class=\"h2\"\u003eMeet Your Coach: \u003cem\u003eKemi.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"trust\"\u003e\n      \u003carticle class=\"card coach reveal\"\u003e\n        \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/a25a4aecbb2a4f09ddfb3e4175fb402d_tplv-tiktokx-cropcenter_1080_1080_1_5dff9693-e7bd-4a24-9dc6-0c2c60accfc2.jpg?v=1792057565\" alt=\"Coach Kemi, founder and coach at Brute Camp\" loading=\"lazy\" width=\"720\" height=\"450\"\u003e\n        \u003cdiv class=\"m\"\u003e\n\u003cspan class=\"tag\"\u003eFounder \u0026amp; coach\u003c\/span\u003e\u003ch3\u003eCoach Kemi\u003c\/h3\u003e\n\u003cp id=\"founderStory\"\u003e\u003c\/p\u003e\n\u003cdiv class=\"creds\" id=\"creds\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n      \u003cdiv class=\"reveal\"\u003e\n        \u003cdiv class=\"pv-stage\"\u003e\n          \u003cdiv class=\"pv-media\" id=\"pvMedia\"\u003e\n            \u003cvideo data-pv=\"0\" controls playsinline preload=\"metadata\" poster=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/IMG_1742.png?v=1791970159\" aria-label=\"Brute Camp onboarding walkthrough\"\u003e\u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/a859b2f291b343e6a2ce022e3eaf23ab.mp4\" type=\"video\/mp4\"\u003e\u003c\/video\u003e\n            \u003cvideo data-pv=\"1\" controls playsinline preload=\"none\" hidden aria-label=\"Your plan in the notes\"\u003e\u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/2c8848fd90f547aab60a4a87cfc5ca31.mov\"\u003e\u003c\/video\u003e\n            \u003cvideo data-pv=\"2\" controls playsinline preload=\"none\" hidden aria-label=\"A community-led class\"\u003e\u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/dadb531761384a1d9e8f9c574f438b2d.mov\"\u003e\u003c\/video\u003e\n            \u003cimg data-pv=\"3\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/IMG_1921.jpg?v=1792519936\" alt=\"Weight scale reading shared openly\" loading=\"lazy\" hidden\u003e\n            \u003cvideo data-pv=\"4\" controls playsinline preload=\"none\" hidden aria-label=\"A braai meal\"\u003e\u003csource src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/e138576e07ad4a6db44c940b6cfac6bc.mov\"\u003e\u003c\/video\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"cap\"\u003e\n\u003cb id=\"pvTitle\"\u003eOnboarding, start to finish\u003c\/b\u003e\u003cspan id=\"pvText\"\u003eSee what happens after you join.\u003c\/span\u003e\n\u003c\/div\u003e\n        \u003c\/div\u003e\n        \u003cdiv class=\"pv-tabs\" role=\"group\" aria-label=\"Choose what to look at\"\u003e\n          \u003cbutton class=\"pv-tab\" type=\"button\" aria-pressed=\"true\" data-title=\"Onboarding, start to finish\" data-text=\"See what happens after you join.\"\u003eOnboarding\u003c\/button\u003e\n          \u003cbutton class=\"pv-tab\" type=\"button\" aria-pressed=\"false\" data-title=\"Your plan, in the notes\" data-text=\"See how your goals become a clear training plan.\"\u003eYour plan\u003c\/button\u003e\n          \u003cbutton class=\"pv-tab\" type=\"button\" aria-pressed=\"false\" data-title=\"Train with the community\" data-text=\"A class led by one of our community leads.\"\u003eCommunity\u003c\/button\u003e\n          \u003cbutton class=\"pv-tab\" type=\"button\" aria-pressed=\"false\" data-title=\"Real numbers, shared openly\" data-text=\"A real scale reading. Results vary.\"\u003eReal numbers\u003c\/button\u003e\n          \u003cbutton class=\"pv-tab\" type=\"button\" aria-pressed=\"false\" data-title=\"The braai stays\" data-text=\"Practical nutrition that leaves room for foods you enjoy.\"\u003eThe braai\u003c\/button\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv id=\"testiBox\" hidden\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- 8 OFFER --\u003e\n\u003csection id=\"plans\" class=\"alt\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"head c reveal\"\u003e\n      \u003cp class=\"kicker\"\u003eTransparent pricing\u003c\/p\u003e\n      \u003ch2 class=\"h2\"\u003eChoose Your \u003cem\u003eLevel of Coaching.\u003c\/em\u003e\n\u003c\/h2\u003e\n      \u003cp class=\"lead\"\u003eChoose the support that fits you: monthly check-ins with Brute Transformation, or weekly check-ins and priority support with Brute Elite. Both are billed monthly.\u003c\/p\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"plans two\"\u003e\n      \u003carticle class=\"card plan rec2 reveal\" data-plan=\"coaching\"\u003e\n        \u003cspan class=\"badge\"\u003eMOST POPULAR\u003c\/span\u003e\u003cspan class=\"tag\"\u003eMonthly coaching\u003c\/span\u003e\u003ch3\u003eBrute Transformation\u003c\/h3\u003e\n\u003cp class=\"wh\"\u003eA personalised plan and monthly check-ins to help you build a consistent routine.\u003c\/p\u003e\n        \u003cdiv class=\"price\"\u003e\n\u003cb data-price=\"coaching\"\u003eR1,499\u003c\/b\u003e\u003cspan\u003e\/month\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"perday\" data-perday=\"coaching\"\u003e\u003c\/p\u003e\n        \u003cul data-feat=\"coaching\"\u003e\u003c\/ul\u003e\n        \u003ca class=\"btn btn-gold\" href=\"#\" data-checkout=\"coaching\"\u003e\u003cspan\u003eStart my coaching plan\u003c\/span\u003e\u003c\/a\u003e\n        \u003cp class=\"hint\" data-hint=\"coaching\"\u003eSecure online checkout\u003c\/p\u003e\n        \u003ca class=\"btn btn-wa\" href=\"#\" data-planwa=\"coaching\" target=\"_blank\" rel=\"noopener\"\u003eQuestions first? WhatsApp Kemi\u003c\/a\u003e\n      \u003c\/article\u003e\n      \u003carticle class=\"card plan reveal\" data-plan=\"elite\"\u003e\n        \u003cspan class=\"tag\"\u003eHigher-touch coaching\u003c\/span\u003e\u003ch3\u003eBrute Elite\u003c\/h3\u003e\n\u003cp class=\"wh\"\u003eWeekly check-ins and priority support for closer guidance as you work towards your goals.\u003c\/p\u003e\n        \u003cdiv class=\"price\"\u003e\n\u003cb data-price=\"elite\"\u003eR2,499\u003c\/b\u003e\u003cspan\u003e\/month\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cp class=\"perday\" data-perday=\"elite\"\u003e\u003c\/p\u003e\n        \u003cul data-feat=\"elite\"\u003e\u003c\/ul\u003e\n        \u003ca class=\"btn\" href=\"#\" data-checkout=\"elite\"\u003eJoin Brute Elite via WhatsApp\u003c\/a\u003e\n        \u003cp class=\"hint\" data-hint=\"elite\"\u003eSecure online checkout\u003c\/p\u003e\n        \u003ca class=\"btn btn-wa\" href=\"#\" data-planwa=\"elite\" target=\"_blank\" rel=\"noopener\"\u003eQuestions first? WhatsApp Kemi\u003c\/a\u003e\n      \u003c\/article\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"card gstrip reveal\"\u003e\n      \u003cdiv class=\"gseal\" aria-hidden=\"true\"\u003e\u003cdiv\u003e\n\u003cb data-g-days\u003e7\u003c\/b\u003e\u003cspan\u003eDAY\u003c\/span\u003e\n\u003c\/div\u003e\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003cb\u003eNo-risk promise: \u003cspan data-g-days\u003e7\u003c\/span\u003e-day guarantee. Cancel anytime.\u003c\/b\u003e\u003cp id=\"gLine\"\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003ca class=\"btn\" href=\"#\" data-wa=\"plans\" target=\"_blank\" rel=\"noopener\"\u003eAsk Coach Kemi\u003c\/a\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- 9 FAQ --\u003e\n\u003csection id=\"faq\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"head c reveal\"\u003e\n      \u003cp class=\"kicker\"\u003eStraight answers\u003c\/p\u003e\n      \u003ch2 class=\"h2\"\u003eQuestions Busy People \u003cem\u003eAsk First.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"faq\" id=\"faqList\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- 10 FINAL CTA --\u003e\n\u003csection class=\"final\" id=\"start\"\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cp class=\"kicker reveal\"\u003eBuilt through consistency. Driven by purpose.\u003c\/p\u003e\n    \u003ch2 class=\"h2 reveal\"\u003eYour Next Level \u003cem\u003eStarts Here.\u003c\/em\u003e\n\u003c\/h2\u003e\n    \u003cp class=\"lead reveal\" style=\"margin-inline:auto\"\u003eGive your goals a clear next step. Get a plan built around you, practical nutrition guidance and a coach to help you keep showing up.\u003c\/p\u003e\n    \u003cdiv class=\"btns reveal\"\u003e\n      \u003ca class=\"btn btn-gold\" href=\"#plans\" data-cta=\"final\"\u003e\u003cspan\u003eSTART MY TRANSFORMATION\u003c\/span\u003e\u003c\/a\u003e\n      \u003ca class=\"btn\" href=\"#\" data-wa=\"final\" target=\"_blank\" rel=\"noopener\"\u003eAsk Coach Kemi first\u003c\/a\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"risk reveal\"\u003eCancel anytime · No contracts · Prices in ZAR\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\u003c\/main\u003e\n\n\u003cfooter\u003e\n  \u003cdiv class=\"wrap\"\u003e\n    \u003cdiv class=\"fg\"\u003e\n      \u003cdiv class=\"fb\"\u003e\n\u003ca class=\"brand\" href=\"#top\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/Gemini_Generated_Image_nwgvr5nwgvr5nwgv.jpg?v=1791809513\" alt=\"Brute Camp logo\" width=\"38\" height=\"38\" loading=\"lazy\"\u003e\u003cspan\u003eBRUTE CAMP\u003c\/span\u003e\u003c\/a\u003e\u003cp\u003eOnline training, nutrition and coaching for busy professionals in South Africa.\u003c\/p\u003e\n\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003ch4\u003eBusiness\u003c\/h4\u003e\n\u003cul id=\"fBiz\"\u003e\u003c\/ul\u003e\n\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003ch4\u003eContact\u003c\/h4\u003e\n\u003cul id=\"fContact\"\u003e\u003c\/ul\u003e\n\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003ch4\u003eLegal\u003c\/h4\u003e\n\u003cul id=\"fLegal\"\u003e\u003c\/ul\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cp class=\"disc\"\u003eBrute Camp provides fitness and nutrition coaching, not medical advice. Consult a healthcare professional before starting a new exercise or nutrition programme or changing your calorie intake, especially if you have a medical condition, are pregnant or breastfeeding, have a history of disordered eating, or have an injury. Results vary by individual and depend on consistency, starting point, nutrition, sleep and other factors; no specific result is guaranteed. Personal information is processed in line with POPIA. © \u003cspan id=\"yr\"\u003e\u003c\/span\u003e Brute Camp. All rights reserved.\u003c\/p\u003e\n  \u003c\/div\u003e\n\u003c\/footer\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"sticky\" id=\"sticky\"\u003e\u003ca class=\"btn btn-gold\" href=\"#plans\" data-cta=\"sticky\"\u003e\u003cspan\u003eSTART MY TRANSFORMATION\u003c\/span\u003e\u003c\/a\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(() =\u003e {\n\/* ============ CONFIG: edit here. Empty fields are hidden. ============ *\/\nconst CONFIG = {\n  prices: { coaching: \"R1,499\", elite: \"R2,499\" },\n  checkout: { coaching: \"https:\/\/brutecamp.co.za\/checkouts\/cn\/hWNIUCAzuSsunw8qR6DUGnQo\/en-za?_r=AQABIeQH5ldQmJcJOMBCuBAV96e0qX275PoBYG1bBf1m5ryug5qp\", elite: \"\" }, \/\/ empty = that plan's button opens WhatsApp instead\n  features: {\n    coaching: [\"Personalised workouts for your goals and equipment\",\"Exercise guidance and tracking for each session\",\"Practical nutrition guidance for everyday choices\",\"Monthly progress check-in to review how you’re doing\",\"Scheduled programme review to keep your plan on track\",\"Standard coaching support to help you stay focused\"],\n    elite: [\"Everything in Brute Transformation, plus:\",\"More tailored nutrition guidance for your goals\",\"Weekly progress check-ins for closer accountability\",\"More frequent programme reviews as you progress\",\"Priority coaching support\"]\n  },\n  turnaround: \"Programme ready in about 3 hours.\",\n  guarantee: { days: \"7\", line: \"Not for you? WhatsApp Coach Kemi within 7 days for a refund of your first payment (usually 48–72 hours). Prices in ZAR, billed monthly.\" },\n  credentials: [\"5+ years coaching experience\"],\n  founderStory: \"You shouldn't have to figure out fitness on your own. I help you turn your goals into a practical training plan, with coaching and check-ins to keep you focused. You bring the effort. I'll help you understand what to do next and build a routine you can keep.\",\n  testimonials: [], \/\/ real, permitted client results only: [{caption:\"...\", image:\"...\", quote:\"...\", result:\"...\"}]\n  faq: [\n    [\"Do I need gym experience?\",\"No. Start at your current level, with a programme matched to your experience, goals and equipment. Exercise demonstrations help you follow your sessions with more confidence.\"],\n    [\"Can I train at home?\",\"Often, yes. Tell us what equipment you have during onboarding so your coach can take it into account when building your programme.\"],\n    [\"How do I access my programme?\",\"Your programme lives in the coaching app, so you can see your next session and follow along. You'll receive access instructions after onboarding, and your programme is ready in about 3 hours.\"],\n    [\"Is nutrition guidance included?\",\"Yes. Brute Elite adds more tailored guidance. It is not a substitute for medical nutrition care.\"],\n    [\"When will I see results?\",\"Results vary with your starting point, consistency, training, nutrition and recovery. No specific outcome or timeline is guaranteed.\"],\n    [\"How much support do I receive?\",\"Brute Transformation includes a monthly check-in and standard support. Brute Elite adds weekly check-ins, more frequent reviews and priority support.\"],\n    [\"How do payments and cancellation work?\",\"Both plans are monthly subscriptions in ZAR. WhatsApp Coach Kemi within 7 days for a refund of your first payment (usually 48–72 hours), and you can cancel any time the same way.\"],\n    [\"Is Brute Camp suitable for everyone?\",\"Your training should suit your health and abilities. If you have a medical condition or injury, get professional advice before starting.\"]\n  ],\n  business: { name: \"Brute Camp\", reg: \"\", address: \"11 Pearl Street, Riviera Park\", email: \"kemi@brutecamp.co.za\", phone: \"072 579 1560\" },\n  legal: {\n    privacy: \"https:\/\/checkout.shopify.com\/78785183849\/policies\/41154347113.html?locale=en\",\n    terms: \"https:\/\/checkout.shopify.com\/78785183849\/policies\/42134798441.html?locale=en\",\n    refund: \"https:\/\/checkout.shopify.com\/78785183849\/policies\/42134831209.html?locale=en\"\n  },\n  tracking: { ga4: \"\", metaPixel: \"\" }\n};\n\nconst root=document.getElementById('brute-camp'), C=CONFIG;\nconst $=(s,r=root)=\u003er.querySelector(s), $$=(s,r=root)=\u003e[...r.querySelectorAll(s)];\nconst reduce=matchMedia('(prefers-reduced-motion: reduce)').matches;\nconst esc=t=\u003eString(t).replace(\/\u0026\/g,'\u0026amp;').replace(\/\u003c\/g,'\u0026lt;').replace(\/\u003e\/g,'\u0026gt;').replace(\/\"\/g,'\u0026quot;').replace(\/'\/g,'\u0026#39;');\nconst names={coaching:'Brute Transformation',elite:'Brute Elite'};\nconst num=p=\u003eparseFloat(String(p).replace(\/[^0-9.]\/g,''))||Infinity;\n\n\/* tracking *\/\nwindow.dataLayer=window.dataLayer||[];\nconst load=s=\u003e{const e=document.createElement('script');e.async=true;e.src=s;document.head.appendChild(e);};\nif(C.tracking.ga4){load('https:\/\/www.googletagmanager.com\/gtag\/js?id='+C.tracking.ga4);window.gtag=function(){dataLayer.push(arguments)};gtag('js',new Date());gtag('config',C.tracking.ga4);}\nif(C.tracking.metaPixel){!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,document,'script','https:\/\/connect.facebook.net\/en_US\/fbevents.js');fbq('init',C.tracking.metaPixel);fbq('track','PageView');}\nfunction track(n,p){p=p||{};try{dataLayer.push(Object.assign({event:n},p))}catch(e){}try{if(window.gtag\u0026\u0026C.tracking.ga4)gtag('event',n,p)}catch(e){}try{if(window.fbq\u0026\u0026C.tracking.metaPixel){n==='begin_checkout'?fbq('track','InitiateCheckout',{content_name:p.plan}):fbq('trackCustom',n,p)}}catch(e){}}\ntrack('landing_view',{product:'Brute Camp'});\n\n\/* content *\/\nconst nums=Object.values(C.prices).filter(Boolean);\nif(nums.length){const low=nums.reduce((a,b)=\u003enum(a)\u003c=num(b)?a:b);$$('[data-price-from]').forEach(e=\u003ee.textContent=low);}\nObject.entries(C.prices).forEach(([k,v])=\u003e{if(!v)return;const e=$(`[data-price=\"${k}\"]`);if(e)e.textContent=v;const d=$(`[data-perday=\"${k}\"]`);if(d\u0026\u0026isFinite(num(v)))d.textContent='About R'+Math.round(num(v)\/30)+' a day';});\nObject.entries(C.features).forEach(([k,a])=\u003e{const u=$(`[data-feat=\"${k}\"]`);if(u\u0026\u0026a.length)u.innerHTML=a.map(t=\u003e`\u003cli\u003e${esc(t)}\u003c\/li\u003e`).join('');});\nif(C.turnaround)$('#turnaround').textContent=C.turnaround;\nif(C.guarantee.days)$$('[data-g-days]').forEach(e=\u003ee.textContent=C.guarantee.days);\nif(C.guarantee.line)$('#gLine').textContent=C.guarantee.line;\n$('#creds').innerHTML=C.credentials.map(t=\u003e`\u003cspan\u003e${esc(t)}\u003c\/span\u003e`).join('');\n$('#founderStory').textContent=C.founderStory;\n$('#faqList').innerHTML=C.faq.map(([q,a])=\u003e`\u003cdiv class=\"fi\"\u003e\u003cbutton type=\"button\" class=\"fq\" aria-expanded=\"false\"\u003e${esc(q)}\u003csvg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2.4\" stroke-linecap=\"round\"\u003e\u003cpath d=\"M12 5v14M5 12h14\"\/\u003e\u003c\/svg\u003e\u003c\/button\u003e\u003cdiv class=\"fa\"\u003e\u003cdiv\u003e\u003cp\u003e${esc(a)}\u003c\/p\u003e\u003c\/div\u003e\u003c\/div\u003e\u003c\/div\u003e`).join('');\n\nconst b=C.business;\n$('#fBiz').innerHTML=[b.name,b.reg\u0026\u0026('Reg. '+b.reg),b.address].filter(Boolean).map(t=\u003e`\u003cli\u003e${esc(t)}\u003c\/li\u003e`).join('');\nconst wa=b.phone?b.phone.replace(\/\\D\/g,'').replace(\/^0\/,'27'):'';\nconst waLink=m=\u003e`https:\/\/wa.me\/${wa}?text=${encodeURIComponent(m)}`;\n$('#fContact').innerHTML=[b.email\u0026\u0026`\u003cli\u003e\u003ca href=\"mailto:${esc(b.email)}\"\u003e${esc(b.email)}\u003c\/a\u003e\u003c\/li\u003e`,wa\u0026\u0026`\u003cli\u003e\u003ca href=\"${waLink('Hi Coach Kemi, I have a question about Brute Camp.')}\" target=\"_blank\" rel=\"noopener\"\u003eWhatsApp ${esc(b.phone)}\u003c\/a\u003e\u003c\/li\u003e`,`\u003cli\u003e\u003ca href=\"https:\/\/brutecamp.co.za\" rel=\"noopener\"\u003ebrutecamp.co.za\u003c\/a\u003e\u003c\/li\u003e`].filter(Boolean).join('');\nconst ln={privacy:'Privacy policy',terms:'Terms \u0026amp; subscription billing',refund:'Cancellation \u0026amp; refunds'};\n$('#fLegal').innerHTML=Object.entries(ln).filter(([k])=\u003eC.legal[k]).map(([k,n])=\u003e`\u003cli\u003e\u003ca href=\"${esc(C.legal[k])}\"\u003e${n}\u003c\/a\u003e\u003c\/li\u003e`).join('');\n$('#yr').textContent=new Date().getFullYear();\n\n$$('[data-wa]').forEach(a=\u003e{if(!wa){a.remove();return;}a.href=waLink('Hi Coach Kemi, I have a question about Brute Camp before I join.');a.addEventListener('click',()=\u003etrack('whatsapp_click',{location:a.dataset.wa}));});\nObject.keys(names).forEach(k=\u003e{const a=$(`[data-checkout=\"${k}\"]`);if(!a)return;\n  if(C.checkout[k])a.href=C.checkout[k];\n  else if(wa){a.href=waLink(`Hi Coach Kemi, I'd like to join Brute Camp on the ${names[k]} plan.`);a.target='_blank';a.rel='noopener';}\n  else a.addEventListener('click',e=\u003ee.preventDefault());\n  a.addEventListener('click',()=\u003etrack('begin_checkout',{plan:names[k],value:num(C.prices[k]),currency:'ZAR'}));});\nObject.keys(names).forEach(k=\u003e{\n  const w=$(`[data-planwa=\"${k}\"]`),h=$(`[data-hint=\"${k}\"]`);\n  if(!C.checkout[k]){if(w)w.remove();if(h)h.remove();return;}\n  if(w){if(!wa){w.remove();return;}w.href=waLink(`Hi Coach Kemi, I'm interested in ${names[k]} and have a question before I join.`);w.addEventListener('click',()=\u003etrack('whatsapp_click',{location:'plan_'+k}));}\n});\n$$('[data-cta]').forEach(a=\u003ea.addEventListener('click',()=\u003etrack('cta_click',{location:a.dataset.cta})));\n\n\/* reveal *\/\nif('IntersectionObserver' in window\u0026\u0026!reduce){const io=new IntersectionObserver(es=\u003ees.forEach(e=\u003e{if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target)}}),{threshold:.1,rootMargin:'0px 0px -40px 0px'});$$('.reveal').forEach(el=\u003eio.observe(el));}\nelse $$('.reveal').forEach(el=\u003eel.classList.add('in'));\n\n\/* sticky mobile CTA: show after hero, hide at pricing\/final\/footer *\/\nif('IntersectionObserver' in window){\n  const st=$('#sticky');let heroOut=false;\n  const visibleSections=new Set();\n  const upd=()=\u003est.classList.toggle('on',heroOut\u0026\u0026visibleSections.size===0);\n  new IntersectionObserver(e=\u003e{heroOut=!e[0].isIntersecting;upd()},{threshold:0}).observe($('#top'));\n  const pi=new IntersectionObserver(es=\u003e{\n    es.forEach(e=\u003e{if(e.isIntersecting)visibleSections.add(e.target);else visibleSections.delete(e.target);});\n    upd();\n    if(es.some(e=\u003ee.isIntersecting\u0026\u0026e.target.id==='plans'))track('view_plans');\n  },{threshold:0});\n  pi.observe($('#plans'));pi.observe($('#start'));pi.observe($('footer'));\n}\n\n\/* proof viewer *\/\nconst pt=$$('.pv-tab'),pm=$$('#pvMedia [data-pv]');\npt.forEach((tb,n)=\u003etb.addEventListener('click',()=\u003e{\n  pt.forEach((x,i)=\u003ex.setAttribute('aria-pressed',String(i===n)));\n  pm.forEach((m,i)=\u003e{m.hidden=i!==n;if(i!==n\u0026\u0026m.pause)m.pause();});\n  $('#pvTitle').textContent=tb.dataset.title;$('#pvText').textContent=tb.dataset.text;\n  track('proof_tab',{item:tb.dataset.title});\n}));\nif(C.testimonials.length){const tb=$('#testiBox');tb.style.marginTop='22px';\n  tb.innerHTML='\u003cdiv style=\"display:flex;flex-wrap:wrap;gap:18px;justify-content:center\"\u003e'+C.testimonials.map(x=\u003e`\u003cfigure class=\"card\" style=\"padding:16px;max-width:360px;width:100%\"\u003e${x.image?`\u003cimg src=\"${esc(x.image)}\" alt=\"${esc(x.caption||'Client message')}\" loading=\"lazy\" style=\"width:100%;height:auto;border-radius:14px\"\u003e`:''}${x.quote?`\u003cp style=\"color:var(--soft);margin-top:12px\"\u003e\"${esc(x.quote)}\"\u003c\/p\u003e`:''}${x.result?`\u003cp class=\"perday\" style=\"margin-top:8px\"\u003e${esc(x.result)}\u003c\/p\u003e`:''}\u003cfigcaption class=\"note\" style=\"text-align:center\"\u003e${esc(x.caption||'')}\u003c\/figcaption\u003e\u003c\/figure\u003e`).join('')+'\u003c\/div\u003e';tb.hidden=false;}\n\n\/* FAQ *\/\n$$('.fi').forEach(it=\u003e{const q=$('.fq',it);q.addEventListener('click',()=\u003e{const o=it.classList.toggle('open');q.setAttribute('aria-expanded',String(o));$$('.fi').forEach(x=\u003e{if(x!==it){x.classList.remove('open');$('.fq',x).setAttribute('aria-expanded','false')}})})});\n})();\n\u003c\/script\u003e","brand":"Brute Camp","offers":[{"title":"Default Title","offer_id":67729818124393,"sku":null,"price":1499.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0787\/8518\/3849\/files\/ChatGPT_Image_Oct_30_2026_02_02_49_PM.png?v=1793361807"}],"url":"https:\/\/brutecamp.co.za\/collections\/outcome-section.oembed","provider":"Brute Camp","version":"1.0","type":"link"}