COCAHING
Events & Programs
Upcoming events and HT event based programs or distance based programs. From .
Program Finder
for your event.
Type your race or event.
We'll match you to the right program from our catalogue.
If your event is not there yet, we'll recommend the closest fit.
Distance
<!-- ═══════════════════════════════════════════════════════════════ Her Trails: Race+Train (Trailhead) BLOCK 03: Programs (Event Based + Distance Based + Community Runs) Tabs: Event Based | Distance Based | Community Group Runs Anchor IDs: rt-event-programs, rt-distance-programs Popup: no dedicated program = recommend closest + coaching notes Kajabi-ready: inline styles only, flex-wrap, no grid Kajabi setup: set section background to #f8f5f2 ═══════════════════════════════════════════════════════════════ --> <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;1,400;1,700&family=Work+Sans:wght@400;500;600;700&display=swap" rel="stylesheet"> <!-- Anchor targets for the intent selector (Block 02) --><div id="rt-calendar"></div><div id="rt-event-programs"></div> <div style="background-color:#f8f5f2;box-sizing:border-box;"> <!-- SECTION HEADER --> <div style=" background-color:#2c3e50; background-image: radial-gradient(circle,transparent 67px,rgba(248,245,242,.06) 68px,rgba(248,245,242,.06) 69px,transparent 70px), radial-gradient(circle,transparent 51px,rgba(248,245,242,.06) 52px,rgba(248,245,242,.06) 53px,transparent 54px), radial-gradient(circle,transparent 37px,rgba(248,245,242,.06) 38px,rgba(248,245,242,.06) 39px,transparent 40px); background-size:160px 160px;background-position:center; padding:clamp(40px,6vw,64px) clamp(24px,6vw,80px);box-sizing:border-box;"> <div style="max-width:1000px;margin:0 auto;"> <div style="font-family:'Work Sans',Helvetica,Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#c45c33;margin:0 0 12px 0;display:block;">Programs</div> <!-- Use div not h2 — Kajabi strips h2 inline styles --> <div style="font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:clamp(28px,4.5vw,44px);color:#f8f5f2;line-height:1.1;margin:0 0 10px 0;display:block;">Find your program.</div> <div style="font-family:'Work Sans',Helvetica,Arial,sans-serif;font-size:15px;color:rgba(248,245,242,.6);line-height:1.65;margin:0;max-width:560px;display:block;">Your event. Our catalogue. Sign up at any point — Community Hub, Coaching Corner and Week 1 unlock immediately.</div> </div> </div> <!-- TAB + CONTENT --> <div style="background:#f8f5f2;padding:0 clamp(24px,6vw,80px) clamp(48px,7vw,80px);box-sizing:border-box;"> <div style="max-width:1000px;margin:0 auto;"> <!-- TABS — using spans not buttons so Kajabi can't override styles --> <div style="display:flex;flex-wrap:wrap;border-bottom:2px solid #e2d9d2;margin-bottom:32px;"> <span id="rtTab-Events" onclick="rtTab('Events',this)" style="padding:14px 22px;background:transparent;border-bottom:3px solid #c45c33;margin-bottom:-2px;font-family:'Work Sans',Helvetica,Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#c45c33;cursor:pointer;display:inline-block;">Event Based</span> <span id="rtTab-Distance" onclick="rtTab('Distance',this)" style="padding:14px 22px;background:transparent;border-bottom:3px solid transparent;margin-bottom:-2px;font-family:'Work Sans',Helvetica,Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#aaa;cursor:pointer;display:inline-block;">Distance Based</span> <span id="rtTab-Runs" onclick="rtTab('Runs',this)" style="padding:14px 22px;background:transparent;border-bottom:3px solid transparent;margin-bottom:-2px;font-family:'Work Sans',Helvetica,Arial,sans-serif;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#aaa;cursor:pointer;display:inline-block;">Community Runs</span> </div> <!-- PANEL: EVENTS CALENDAR --> <div id="rtPanel-Events"> <!-- View toggle — spans, not buttons --> <div style="display:inline-flex;gap:0;border:1px solid #e2d9d2;border-radius:4px;overflow:hidden;margin-bottom:18px;"> <span id="rtViewBtn-event" onclick="rtSetView('event',this)" style="padding:7px 16px;background:#1d1d1d;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#f8f5f2;cursor:pointer;display:inline-block;border-right:1px solid #3a3a3a;">Event date</span> <span id="rtViewBtn-start" onclick="rtSetView('start',this)" style="padding:7px 16px;background:#fff;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#aaa;cursor:pointer;display:inline-block;">Training start</span> </div> <!-- Filter row 1: Distance + Location --> <div style="display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;align-items:center;"> <span style="font-family:'Work Sans',sans-serif;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#bbb;margin-right:2px;min-width:52px;">Distance</span> <span onclick="rtEvType('all',this)" class="rtFT" style="display:inline-block;padding:4px 10px;background:#c45c33;border:1px solid #c45c33;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:600;color:#f8f5f2;cursor:pointer;white-space:nowrap;">All</span> <span onclick="rtEvType('Trail Ultra (100km+)',this)" class="rtFT" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">100km+</span> <span onclick="rtEvType('Trail Ultra (50-100km)',this)" class="rtFT" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">50-100km</span> <span onclick="rtEvType('Trail (30-50km)',this)" class="rtFT" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">30-50km</span> <span onclick="rtEvType('Trail (<30km)',this)" class="rtFT" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;"><30km</span> <span onclick="rtEvType('Road Marathon',this)" class="rtFT" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">Road</span> <span onclick="rtEvType('Stage Race',this)" class="rtFT" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">Staged/Relay</span> <span style="font-family:'Work Sans',sans-serif;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#bbb;margin-left:6px;margin-right:2px;">Location</span> <span onclick="rtEvCtry('all',this)" class="rtFC" style="display:inline-block;padding:4px 10px;background:#c45c33;border:1px solid #c45c33;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:600;color:#f8f5f2;cursor:pointer;white-space:nowrap;">All</span> <span onclick="rtEvCtry('Australia',this)" class="rtFC" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">AU</span> <span onclick="rtEvCtry('New Zealand',this)" class="rtFC" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">NZ</span> </div> <!-- Filter row 2: Terrain --> <div style="display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;align-items:center;"> <span style="font-family:'Work Sans',sans-serif;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#bbb;margin-right:2px;min-width:52px;">Terrain</span> <span onclick="rtEvTerrain('all',this)" class="rtFN" style="display:inline-block;padding:4px 10px;background:#c45c33;border:1px solid #c45c33;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:600;color:#f8f5f2;cursor:pointer;white-space:nowrap;">All</span> <span onclick="rtEvTerrain('mountain',this)" class="rtFN" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">Mountain</span> <span onclick="rtEvTerrain('coastal',this)" class="rtFN" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">Coastal</span> <span onclick="rtEvTerrain('forest',this)" class="rtFN" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">Forest</span> <span onclick="rtEvTerrain('desert',this)" class="rtFN" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">Desert</span> <span onclick="rtEvTerrain('mixed',this)" class="rtFN" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">Mixed</span> </div> <!-- Month jump pills --> <div id="rtMonthPills" style="display:flex;flex-wrap:wrap;gap:5px;margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid #e2d9d2;"></div> <div id="rtEvOut"></div> </div> <!-- PANEL: DISTANCE BASED PROGRAMS --> <div id="rtPanel-Distance" style="display:none;"> <div id="rt-distance-programs" style="height:0;overflow:hidden;"></div> <div style="background:#fff;border:1px solid #e2d9d2;border-left:3px solid #597b52;border-radius:0 6px 6px 0;padding:14px 18px;margin-bottom:28px;"> <p style="font-family:'Work Sans',sans-serif;font-size:13px;font-weight:600;color:#1d1d1d;margin:0 0 4px 0;">No specific race? Train toward a distance.</p> <p style="font-family:'Work Sans',sans-serif;font-size:12px;color:#666;line-height:1.6;margin:0;">Distance programs give you complete structure toward a goal distance, road or trail. Same progressive phases, same strength integration, same coaching support. When you have a race in mind later, your coach can build in specific race notes for your event.</p> </div> <div style="display:flex;flex-wrap:wrap;gap:6px;margin-bottom:28px;align-items:center;"> <span style="font-family:'Work Sans',sans-serif;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#bbb;margin-right:2px;">Terrain</span> <span onclick="rtDistTerrain('all',this)" class="rtFD" style="display:inline-block;padding:4px 10px;background:#c45c33;border:1px solid #c45c33;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:600;color:#f8f5f2;cursor:pointer;white-space:nowrap;">All</span> <span onclick="rtDistTerrain('trail',this)" class="rtFD" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">Trail</span> <span onclick="rtDistTerrain('road',this)" class="rtFD" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">Road</span> </div> <div id="rtDistOut"></div> </div> <!-- PANEL: GROUP RUNS --> <div id="rtPanel-Runs" style="display:none;"> <div style="display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px;align-items:center;"> <span style="font-family:'Work Sans',sans-serif;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#bbb;margin-right:2px;">State</span> <span onclick="rtRunSt('all',this)" class="rtFR" style="display:inline-block;padding:4px 10px;background:#c45c33;border:1px solid #c45c33;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:600;color:#f8f5f2;cursor:pointer;white-space:nowrap;">All</span> <span onclick="rtRunSt('VIC',this)" class="rtFR" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">VIC</span> <span onclick="rtRunSt('NSW',this)" class="rtFR" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">NSW</span> <span onclick="rtRunSt('QLD',this)" class="rtFR" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">QLD</span> <span onclick="rtRunSt('WA',this)" class="rtFR" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">WA</span> <span onclick="rtRunSt('SA',this)" class="rtFR" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">SA</span> <span onclick="rtRunSt('TAS',this)" class="rtFR" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">TAS</span> <span onclick="rtRunSt('ACT',this)" class="rtFR" style="display:inline-block;padding:4px 10px;background:#fff;border:1px solid #e2d9d2;border-radius:3px;font-family:'Work Sans',sans-serif;font-size:10px;font-weight:500;color:#777;cursor:pointer;white-space:nowrap;">ACT</span> </div> <div style="background:#fff;border:1px solid #e2d9d2;border-left:3px solid #c45c33;border-radius:0 6px 6px 0;padding:14px 18px;margin-bottom:24px;"> <p style="font-family:'Work Sans',sans-serif;font-size:12px;font-weight:600;color:#1d1d1d;margin:0 0 3px 0;">Already tracking on Strava?</p> <p style="font-family:'Work Sans',sans-serif;font-size:12px;color:#666;margin:0;line-height:1.6;">Group runs appear in your Strava feed automatically when led by a Her Trails maven. Join a run, track it, share it.</p> </div> <div style="display:flex;flex-wrap:wrap;gap:14px;" id="rtRunOut"></div> </div> </div> </div> <!-- POPUP --> <div id="rtOverlay" onclick="rtClosePopup()" style="display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(26,26,26,.6);z-index:9999;"></div> <div id="rtPopup" style="display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:min(460px,92vw);background:#fff;border-radius:6px;padding:36px;z-index:10000;box-shadow:0 20px 60px rgba(0,0,0,.25);box-sizing:border-box;"> <button onclick="rtClosePopup()" style="position:absolute;top:14px;right:16px;background:none;border:none;font-size:22px;color:#aaa;cursor:pointer;line-height:1;">×</button> <p id="rtPopLbl" style="font-family:'Work Sans',sans-serif;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#c45c33;margin:0 0 10px 0;"></p> <h3 id="rtPopTitle" style="font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:20px;color:#1d1d1d;line-height:1.25;margin:0 0 14px 0;"></h3> <p id="rtPopBody" style="font-family:'Work Sans',sans-serif;font-size:14px;color:#555;line-height:1.65;margin:0 0 22px 0;"></p> <div style="display:flex;flex-direction:column;gap:10px;"> <a id="rtPopJoin" href="https://www.hertrails.com/all-in-member" style="display:block;padding:13px 20px;background:#c45c33;color:#f8f5f2;border-radius:4px;font-family:'Work Sans',sans-serif;font-size:13px;font-weight:600;text-decoration:none;text-align:center;">Join All In to access all programs</a> <a href="mailto:[email protected]" style="display:block;padding:12px 20px;border:1.5px solid #e2d9d2;color:#1d1d1d;border-radius:4px;font-family:'Work Sans',sans-serif;font-size:13px;font-weight:600;text-decoration:none;text-align:center;">Email us at [email protected]</a> </div> <p style="font-family:'Work Sans',sans-serif;font-size:11px;color:#aaa;text-align:center;margin:14px 0 0 0;">Join at any point. Community Hub, Coaching Corner and Week 1 are available immediately.</p> </div> </div> <!-- STYLES: paste into Kajabi > Custom Code > CSS field --><style>/* ── Her Trails Race+Train filter buttons ── All !important to prevent Kajabi's global button CSS from overriding */.rtFT,.rtFC,.rtFST,.rtFSC,.rtFR,.rtFD,.rtFN { padding: 6px 14px !important; border: 1.5px solid #e2d9d2 !important; border-radius: 3px !important; font-family: 'Work Sans', sans-serif !important; font-size: 11px !important; font-weight: 500 !important; color: #555 !important; cursor: pointer !important; background: #fff !important; text-transform: none !important; letter-spacing: 0 !important; line-height: 1.4 !important; box-shadow: none !important; display: inline-block !important;}.rtFOn { background: #c45c33 !important; border-color: #c45c33 !important; color: #f8f5f2 !important; font-weight: 600 !important;}/* Month jump pills */.rtFM { padding: 5px 12px !important; border: 1.5px solid #e2d9d2 !important; border-radius: 3px !important; font-family: 'Work Sans', sans-serif !important; font-size: 11px !important; font-weight: 500 !important; color: #777 !important; cursor: pointer !important; background: #f8f5f2 !important; text-transform: none !important; letter-spacing: 0 !important; box-shadow: none !important; display: inline-block !important;}.rtFMOn { background: #1d1d1d !important; border-color: #1d1d1d !important; color: #f8f5f2 !important; font-weight: 600 !important;}/* Tab buttons — also need !important protection */#rtTab-Events, #rtTab-Distance, #rtTab-Runs,#rtViewBtn-event, #rtViewBtn-start { text-transform: uppercase !important; letter-spacing: .1em !important; font-family: 'Work Sans', sans-serif !important; font-size: 11px !important; font-weight: 700 !important; box-shadow: none !important;}</style> <script>// ── DATA ──────────────────────────────────────────────────────────────// offer_url: present = joinable now. Empty = not yet available (Coming Soon / In Dev).var _rtEv=[ // terrain values: "mountain" | "coastal" | "forest" | "desert" | "mixed" {name:"Mt Buller SkyRun: 45km",race_date_iso:"2025-12-07",race_date:"7 Dec 2025",race_month:"December 2025",program_start_iso:"",program_start:"",state:"VIC",country:"Australia",location:"Mount Buller",distance:"44.1km",type:"Trail (<30km)",terrain:"mountain",weeks:"",offer_url:""}, {name:"Mt Buller SkyRun: 22km",race_date_iso:"2025-12-07",race_date:"7 Dec 2025",race_month:"December 2025",program_start_iso:"",program_start:"",state:"VIC",country:"Australia",location:"Mount Buller",distance:"22km",type:"Trail (<30km)",terrain:"mountain",weeks:"",offer_url:""}, {name:"Kilcunda Trail Running Festival: 21km",race_date_iso:"2026-02-01",race_date:"1 Feb 2026",race_month:"February 2026",program_start_iso:"",program_start:"",state:"VIC",country:"Australia",location:"Kilcunda",distance:"21km",type:"Trail (<30km)",terrain:"coastal",weeks:"",offer_url:""}, {name:"Kilcunda Trail Running Festival: 10km",race_date_iso:"2026-02-01",race_date:"1 Feb 2026",race_month:"February 2026",program_start_iso:"",program_start:"",state:"VIC",country:"Australia",location:"Kilcunda",distance:"10km",type:"Trail (<30km)",terrain:"coastal",weeks:"",offer_url:""}, {name:"Alpine Challenge: 100km",race_date_iso:"2026-04-10",race_date:"Apr 2026",race_month:"April 2026",program_start_iso:"",program_start:"",state:"VIC",country:"Australia",location:"Falls Creek",distance:"100km",type:"Trail Ultra (100km+)",terrain:"mountain",weeks:"",offer_url:""}, {name:"Alpine Challenge: Marathon 35km",race_date_iso:"2026-04-10",race_date:"Apr 2026",race_month:"April 2026",program_start_iso:"",program_start:"",state:"VIC",country:"Australia",location:"Falls Creek",distance:"35km",type:"Trail (30-50km)",terrain:"mountain",weeks:"",offer_url:""}, {name:"Alpine Challenge: 25km",race_date_iso:"2026-04-10",race_date:"Apr 2026",race_month:"April 2026",program_start_iso:"",program_start:"",state:"VIC",country:"Australia",location:"Falls Creek",distance:"25km",type:"Trail (<30km)",terrain:"mountain",weeks:"",offer_url:""}, {name:"Wilsons Prom 100km",race_date_iso:"2026-05-02",race_date:"2 May 2026",race_month:"May 2026",program_start_iso:"2025-12-08",program_start:"8 Dec 2025",state:"VIC",country:"Australia",location:"Wilsons Promontory",distance:"96.6km",type:"Trail Ultra (100km+)",terrain:"coastal",weeks:"20",offer_url:""}, {name:"Ultra-Trail Australia: UTA11",race_date_iso:"2026-05-14",race_date:"14 May 2026",race_month:"May 2026",program_start_iso:"2026-02-09",program_start:"9 Feb 2026",state:"NSW",country:"Australia",location:"Blue Mountains",distance:"11.5km",type:"Trail (<30km)",terrain:"mixed",weeks:"14",offer_url:"https://www.hertrails.com/offers/SpddxDBE/checkout"}, {name:"Ultra-Trail Australia: UTA22",race_date_iso:"2026-05-15",race_date:"15 May 2026",race_month:"May 2026",program_start_iso:"2026-01-26",program_start:"26 Jan 2026",state:"NSW",country:"Australia",location:"Blue Mountains",distance:"22km",type:"Trail (<30km)",terrain:"mixed",weeks:"16",offer_url:"https://www.hertrails.com/offers/SpddxDBE/checkout"}, {name:"65km Standley Monster",race_date_iso:"2026-05-16",race_date:"16 May 2026",race_month:"May 2026",program_start_iso:"2025-12-29",program_start:"29 Dec 2025",state:"NT",country:"Australia",location:"Alice Springs",distance:"65km",type:"Trail Ultra (50-100km)",terrain:"desert",weeks:"20",offer_url:"https://www.hertrails.com/offers/rEke2LPA/checkout"}, {name:"Ultra-Trail Australia: UTA50",race_date_iso:"2026-05-16",race_date:"16 May 2026",race_month:"May 2026",program_start_iso:"2025-12-29",program_start:"29 Dec 2025",state:"NSW",country:"Australia",location:"Blue Mountains",distance:"51km",type:"Trail Ultra (50-100km)",terrain:"mixed",weeks:"20",offer_url:"https://www.hertrails.com/offers/nwL5wZpR"}, {name:"Ultra-Trail Australia: UTA100",race_date_iso:"2026-05-16",race_date:"16 May 2026",race_month:"May 2026",program_start_iso:"2025-12-29",program_start:"29 Dec 2025",state:"NSW",country:"Australia",location:"Blue Mountains",distance:"101km",type:"Trail Ultra (100km+)",terrain:"mixed",weeks:"20",offer_url:"https://www.hertrails.com/offers/vnpzvHhr/checkout"}, {name:"ASICS Runaway Hawke's Bay Marathon",race_date_iso:"2026-05-16",race_date:"16 May 2026",race_month:"May 2026",program_start_iso:"2026-01-26",program_start:"26 Jan 2026",state:"NZ",country:"New Zealand",location:"Hawke's Bay",distance:"42.2km",type:"Road Marathon",terrain:"mixed",weeks:"16",offer_url:"https://www.hertrails.com/offers/UsejcnH5/checkout"}, {name:"Brisbane Marathon Festival",race_date_iso:"2026-06-07",race_date:"7 Jun 2026",race_month:"June 2026",program_start_iso:"2026-02-16",program_start:"16 Feb 2026",state:"QLD",country:"Australia",location:"Brisbane",distance:"42.2km",type:"Road Marathon",terrain:"mixed",weeks:"16",offer_url:"https://www.hertrails.com/offers/UsejcnH5/checkout"}, {name:"Gazley Volkswagen Wellington Marathon",race_date_iso:"2026-06-28",race_date:"28 Jun 2026",race_month:"June 2026",program_start_iso:"2026-03-09",program_start:"9 Mar 2026",state:"NZ",country:"New Zealand",location:"Wellington",distance:"42.2km",type:"Road Marathon",terrain:"coastal",weeks:"16",offer_url:"https://www.hertrails.com/offers/UsejcnH5/checkout"}, {name:"Gold Coast Marathon",race_date_iso:"2026-07-05",race_date:"5 Jul 2026",race_month:"July 2026",program_start_iso:"2026-03-16",program_start:"16 Mar 2026",state:"QLD",country:"Australia",location:"Gold Coast",distance:"42.2km",type:"Road Marathon",terrain:"coastal",weeks:"16",offer_url:"https://www.hertrails.com/offers/pCjFmhUy/checkout"}, {name:"Cairns Marathon",race_date_iso:"2026-07-12",race_date:"12 Jul 2026",race_month:"July 2026",program_start_iso:"2026-03-23",program_start:"23 Mar 2026",state:"QLD",country:"Australia",location:"Cairns",distance:"42.2km",type:"Road Marathon",terrain:"mixed",weeks:"16",offer_url:"https://www.hertrails.com/offers/UsejcnH5/checkout"}, {name:"The Guzzler Ultra: 50km",race_date_iso:"2026-07-18",race_date:"18 Jul 2026",race_month:"July 2026",program_start_iso:"",program_start:"",state:"QLD",country:"Australia",location:"Brisbane",distance:"52km",type:"Trail Ultra (50-100km)",terrain:"forest",weeks:"",offer_url:""}, {name:"The Guzzler Ultra: 100km",race_date_iso:"2026-07-18",race_date:"18 Jul 2026",race_month:"July 2026",program_start_iso:"",program_start:"",state:"QLD",country:"Australia",location:"Brisbane",distance:"105km",type:"Trail Ultra (100km+)",terrain:"forest",weeks:"",offer_url:""}, {name:"The Guzzler Ultra: 21.1km",race_date_iso:"2026-07-19",race_date:"19 Jul 2026",race_month:"July 2026",program_start_iso:"",program_start:"",state:"QLD",country:"Australia",location:"Brisbane",distance:"21km",type:"Trail (<30km)",terrain:"forest",weeks:"",offer_url:""}, {name:"Outback Marathon",race_date_iso:"2026-07-25",race_date:"25 Jul 2026",race_month:"July 2026",program_start_iso:"2026-04-06",program_start:"6 Apr 2026",state:"NT",country:"Australia",location:"Uluru",distance:"42.2km",type:"Road Marathon",terrain:"desert",weeks:"16",offer_url:""}, {name:"Speight's Taupo Marathon",race_date_iso:"2026-08-01",race_date:"1 Aug 2026",race_month:"August 2026",program_start_iso:"2026-04-13",program_start:"13 Apr 2026",state:"NZ",country:"New Zealand",location:"Waikato",distance:"42.2km",type:"Road Marathon",terrain:"mixed",weeks:"16",offer_url:"https://www.hertrails.com/offers/UsejcnH5/checkout"}, {name:"Sunshine Coast Marathon",race_date_iso:"2026-08-02",race_date:"2 Aug 2026",race_month:"August 2026",program_start_iso:"2026-04-13",program_start:"13 Apr 2026",state:"QLD",country:"Australia",location:"Sunshine Coast",distance:"42.2km",type:"Road Marathon",terrain:"coastal",weeks:"16",offer_url:"https://www.hertrails.com/offers/UsejcnH5/checkout"}, {name:"Townsville Running Festival",race_date_iso:"2026-08-02",race_date:"2 Aug 2026",race_month:"August 2026",program_start_iso:"2026-04-13",program_start:"13 Apr 2026",state:"QLD",country:"Australia",location:"Townsville",distance:"42.2km",type:"Road Marathon",terrain:"coastal",weeks:"16",offer_url:"https://www.hertrails.com/offers/UsejcnH5/checkout"}, {name:"Run the Forest (Rotorua): Half Marathon",race_date_iso:"2026-08-08",race_date:"8 Aug 2026",race_month:"August 2026",program_start_iso:"2026-05-18",program_start:"18 May 2026",state:"NZ",country:"New Zealand",location:"Bay of Plenty",distance:"21km",type:"Trail (<30km)",terrain:"forest",weeks:"12",offer_url:""}, {name:"TCS Sydney Marathon",race_date_iso:"2026-08-30",race_date:"30 Aug 2026",race_month:"August 2026",program_start_iso:"2026-05-11",program_start:"11 May 2026",state:"NSW",country:"Australia",location:"Sydney",distance:"42.2km",type:"Road Marathon",terrain:"coastal",weeks:"16",offer_url:"https://www.hertrails.com/offers/jm2v3dU4"}, {name:"Coastal Classic: 30km",race_date_iso:"2026-09-05",race_date:"5 Sep 2026",race_month:"September 2026",program_start_iso:"2026-06-14",program_start:"14 Jun 2026",state:"NSW",country:"Australia",location:"Royal National Park",distance:"30km",type:"Trail (30-50km)",terrain:"coastal",weeks:"12",offer_url:"https://www.hertrails.com/offers/hPq8tLEj/checkout"}, {name:"Hounslow Classic: Marathon 43km",race_date_iso:"2026-09-12",race_date:"12 Sep 2026",race_month:"September 2026",program_start_iso:"2026-05-24",program_start:"24 May 2026",state:"NSW",country:"Australia",location:"Blue Mountains",distance:"43km",type:"Trail (30-50km)",terrain:"mountain",weeks:"16",offer_url:"https://www.hertrails.com/offers/NxhdsKNz/checkout"}, {name:"Surf Coast Century: 50K",race_date_iso:"2026-09-12",race_date:"12 Sep 2026",race_month:"September 2026",program_start_iso:"2026-04-27",program_start:"27 Apr 2026",state:"VIC",country:"Australia",location:"Anglesea",distance:"50km",type:"Trail Ultra (50-100km)",terrain:"coastal",weeks:"20",offer_url:"https://www.hertrails.com/offers/SzNwzaMT/checkout"}, {name:"Surf Coast Century: 100K",race_date_iso:"2026-09-12",race_date:"12 Sep 2026",race_month:"September 2026",program_start_iso:"2026-04-27",program_start:"27 Apr 2026",state:"VIC",country:"Australia",location:"Anglesea",distance:"100km",type:"Trail Ultra (50-100km)",terrain:"coastal",weeks:"20",offer_url:"https://www.hertrails.com/offers/rJjwfsLU/checkout"}, {name:"Surf Coast Century: 100K Relay (team of 2)",race_date_iso:"2026-09-12",race_date:"12 Sep 2026",race_month:"September 2026",program_start_iso:"2026-04-27",program_start:"27 Apr 2026",state:"VIC",country:"Australia",location:"Anglesea",distance:"50km",type:"Stage Race",terrain:"coastal",weeks:"20",offer_url:"https://www.hertrails.com/offers/gAcgvSV2/checkout"}, {name:"Surf Coast Century: 100K Relay (team of 4)",race_date_iso:"2026-09-12",race_date:"12 Sep 2026",race_month:"September 2026",program_start_iso:"2026-06-22",program_start:"22 Jun 2026",state:"VIC",country:"Australia",location:"Anglesea",distance:"25km",type:"Stage Race",terrain:"coastal",weeks:"12",offer_url:"https://www.hertrails.com/offers/Rsjwtzg9/checkout"}, {name:"Nike Melbourne Marathon Festival",race_date_iso:"2026-10-11",race_date:"11 Oct 2026",race_month:"October 2026",program_start_iso:"2026-06-22",program_start:"22 Jun 2026",state:"VIC",country:"Australia",location:"Melbourne",distance:"42.2km",type:"Road Marathon",terrain:"coastal",weeks:"16",offer_url:"https://hertrails.kajabi.com/offers/2150430855/checkout"}, {name:"Roller Coaster Run: 23km Loop",race_date_iso:"2026-10-17",race_date:"17 Oct 2026",race_month:"October 2026",program_start_iso:"2026-06-29",program_start:"29 Jun 2026",state:"VIC",country:"Australia",location:"Dandenong Ranges",distance:"23km",type:"Trail (<30km)",terrain:"forest",weeks:"16",offer_url:"https://www.hertrails.com/offers/PVSmTNyD/checkout"}, {name:"Roller Coaster Run: 12km Twilight",race_date_iso:"2026-10-17",race_date:"17 Oct 2026",race_month:"October 2026",program_start_iso:"2026-07-11",program_start:"11 Jul 2026",state:"VIC",country:"Australia",location:"Dandenong Ranges",distance:"12.4km",type:"Trail (<30km)",terrain:"forest",weeks:"14",offer_url:"https://www.hertrails.com/offers/Hyt9pBcU/checkout"}, {name:"Roller Coaster Run: 46K Double Loop",race_date_iso:"2026-10-17",race_date:"17 Oct 2026",race_month:"October 2026",program_start_iso:"2026-06-15",program_start:"15 Jun 2026",state:"VIC",country:"Australia",location:"Dandenong Ranges",distance:"46km",type:"Trail (30-50km)",terrain:"forest",weeks:"18",offer_url:"https://www.hertrails.com/offers/D9FEuqZs"}, {name:"Heysen Trail Ultra: 115km",race_date_iso:"2026-10-24",race_date:"24 Oct 2026",race_month:"October 2026",program_start_iso:"2026-05-10",program_start:"10 May 2026",state:"SA",country:"Australia",location:"Fleurieu Peninsula",distance:"115km",type:"Trail Ultra (100km+)",terrain:"mixed",weeks:"24",offer_url:""}, {name:"Bondi to Manly 80km",race_date_iso:"2026-10-24",race_date:"24 Oct 2026",race_month:"October 2026",program_start_iso:"2026-06-20",program_start:"20 Jun 2026",state:"NSW",country:"Australia",location:"Sydney",distance:"80km",type:"Trail Ultra (50-100km)",terrain:"coastal",weeks:"18",offer_url:"https://www.hertrails.com/offers/9fEZusRx/checkout"}, {name:"Bondi to Manly 80km Relay (team of 4)",race_date_iso:"2026-10-24",race_date:"24 Oct 2026",race_month:"October 2026",program_start_iso:"2026-08-01",program_start:"1 Aug 2026",state:"NSW",country:"Australia",location:"Sydney",distance:"20km",type:"Stage Race",terrain:"coastal",weeks:"12",offer_url:"https://www.hertrails.com/offers/YNjZFpBR/checkout"}, {name:"Grampians Peaks Trail Ultra: 50K",race_date_iso:"2026-11-07",race_date:"7 Nov 2026",race_month:"November 2026",program_start_iso:"2026-06-22",program_start:"22 Jun 2026",state:"VIC",country:"Australia",location:"Mount Zero to Halls Gap",distance:"49.5km",type:"Trail Ultra (50-100km)",terrain:"mountain",weeks:"20",offer_url:"https://www.hertrails.com/offers/oRMF7jGe/checkout"}, {name:"Grampians Peaks Trail Ultra: 100 Mile Solo",race_date_iso:"2026-11-07",race_date:"7 Nov 2026",race_month:"November 2026",program_start_iso:"2026-06-22",program_start:"22 Jun 2026",state:"VIC",country:"Australia",location:"Grampians",distance:"162km",type:"Trail Ultra (100km+)",terrain:"mountain",weeks:"20",offer_url:"https://www.hertrails.com/offers/pJ4bCcNM/checkout"}, {name:"Grampians Peaks Trail Ultra: 100 Mile Team Staged",race_date_iso:"2026-11-07",race_date:"7 Nov 2026",race_month:"November 2026",program_start_iso:"2026-07-20",program_start:"20 Jul 2026",state:"VIC",country:"Australia",location:"Grampians",distance:"162km",type:"Stage Race",terrain:"mountain",weeks:"16",offer_url:"https://www.hertrails.com/offers/ey5okEmT"}, {name:"Grampians Peaks Trail: 30km",race_date_iso:"2026-11-08",race_date:"8 Nov 2026",race_month:"November 2026",program_start_iso:"",program_start:"",state:"VIC",country:"Australia",location:"Dunkeld",distance:"33km",type:"Trail (30-50km)",terrain:"mountain",weeks:"",offer_url:""}, {name:"GSER: 56K",race_date_iso:"2026-11-14",race_date:"14 Nov 2026",race_month:"November 2026",program_start_iso:"2026-06-29",program_start:"29 Jun 2026",state:"VIC",country:"Australia",location:"Grampians",distance:"55.6km",type:"Trail Ultra (50-100km)",terrain:"mountain",weeks:"20",offer_url:"https://hertrails.kajabi.com/offers/2150492402/checkout"}, {name:"UTMB Kosci 32",race_date_iso:"2026-11-26",race_date:"26 Nov 2026",race_month:"November 2026",program_start_iso:"2026-08-24",program_start:"24 Aug 2026",state:"NSW",country:"Australia",location:"Snowy Mountains",distance:"32km",type:"Trail (30-50km)",terrain:"mountain",weeks:"14",offer_url:"https://www.hertrails.com/offers/Gt8bHS3M/checkout"}, {name:"UTMB Kosci 50km",race_date_iso:"2026-11-26",race_date:"26 Nov 2026",race_month:"November 2026",program_start_iso:"2026-07-13",program_start:"13 Jul 2026",state:"NSW",country:"Australia",location:"Snowy Mountains",distance:"50km",type:"Trail Ultra (50-100km)",terrain:"mountain",weeks:"20",offer_url:"https://www.hertrails.com/offers/TenXYSfk/checkout"}, {name:"UTMB Kosci 100km",race_date_iso:"2026-11-27",race_date:"27 Nov 2026",race_month:"November 2026",program_start_iso:"2026-07-13",program_start:"13 Jul 2026",state:"NSW",country:"Australia",location:"Snowy Mountains",distance:"102km",type:"Trail Ultra (50-100km)",terrain:"mountain",weeks:"20",offer_url:"https://www.hertrails.com/offers/frvKyC9N/checkout"}, {name:"Two Bays Trail Run 56km",race_date_iso:"2027-01-17",race_date:"17 Jan 2027",race_month:"January 2027",program_start_iso:"2026-10-12",program_start:"12 Oct 2026",state:"VIC",country:"Australia",location:"Cape Schanck",distance:"56km",type:"Trail Ultra (50-100km)",terrain:"coastal",weeks:"14",offer_url:"https://www.hertrails.com/offers/FurRFHQ4/checkout"}, {name:"Two Bays Trail Run 28km",race_date_iso:"2027-01-17",race_date:"17 Jan 2027",race_month:"January 2027",program_start_iso:"2026-10-26",program_start:"26 Oct 2026",state:"VIC",country:"Australia",location:"Dromana",distance:"28km",type:"Trail (<30km)",terrain:"coastal",weeks:"12",offer_url:"https://www.hertrails.com/offers/rodo5tLj/checkout"}, {name:"Coast to Coast Mountain Run: 30.5km",race_date_iso:"2027-02-12",race_date:"12 Feb 2027",race_month:"February 2027",program_start_iso:"2026-11-23",program_start:"23 Nov 2026",state:"NZ",country:"New Zealand",location:"Canterbury",distance:"30.5km",type:"Trail (30-50km)",terrain:"mountain",weeks:"16",offer_url:"https://www.hertrails.com/offers/LGNSkDAB"}, {name:"Tarawera Ultra-Trail: T21",race_date_iso:"2027-02-13",race_date:"13 Feb 2027",race_month:"February 2027",program_start_iso:"2026-11-23",program_start:"23 Nov 2026",state:"Bay of Plenty",country:"New Zealand",location:"Rotorua",distance:"23km",type:"Trail (<30km)",terrain:"forest",weeks:"12",offer_url:"https://www.hertrails.com/offers/PyRFfEpr/checkout"}, {name:"Tarawera Ultra-Trail: T50",race_date_iso:"2027-02-13",race_date:"13 Feb 2027",race_month:"February 2027",program_start_iso:"2026-09-28",program_start:"28 Sep 2026",state:"Bay of Plenty",country:"New Zealand",location:"Rotorua",distance:"52km",type:"Trail Ultra (50-100km)",terrain:"forest",weeks:"20",offer_url:"https://www.hertrails.com/offers/Y6Uwkd76/checkout"}, {name:"Tarawera Ultra-Trail: T102",race_date_iso:"2027-02-13",race_date:"13 Feb 2027",race_month:"February 2027",program_start_iso:"2026-09-28",program_start:"28 Sep 2026",state:"Bay of Plenty",country:"New Zealand",location:"Rotorua",distance:"102km",type:"Trail Ultra (100km+)",terrain:"forest",weeks:"20",offer_url:"https://www.hertrails.com/offers/t4sHWD7o"}, {name:"Noosa Ultra Trail: 100k",race_date_iso:"2027-03-01",race_date:"Mar 2027 (TBC)",race_month:"March 2027",program_start_iso:"2026-11-01",program_start:"Nov 2026 (TBC)",state:"QLD",country:"Australia",location:"Noosa",distance:"100km",type:"Trail Ultra (100km+)",terrain:"forest",weeks:"20",offer_url:"https://www.hertrails.com/offers/PyRFfEpr"}, {name:"Noosa Ultra-Trail: 50K",race_date_iso:"2027-03-01",race_date:"Mar 2027 (TBC)",race_month:"March 2027",program_start_iso:"2026-11-01",program_start:"Nov 2026 (TBC)",state:"QLD",country:"Australia",location:"Noosa",distance:"50km",type:"Trail Ultra (50-100km)",terrain:"forest",weeks:"18",offer_url:"https://www.hertrails.com/offers/xkjUA9MG"}, {name:"Noosa Ultra-Trail: 25K",race_date_iso:"2027-03-01",race_date:"Mar 2027 (TBC)",race_month:"March 2027",program_start_iso:"2026-12-01",program_start:"Dec 2026 (TBC)",state:"QLD",country:"Australia",location:"Noosa",distance:"25km",type:"Trail (<30km)",terrain:"forest",weeks:"12",offer_url:""}, {name:"Noosa Ultra-Trail: 30km Pomona Sundowner",race_date_iso:"2027-03-01",race_date:"Mar 2027 (TBC)",race_month:"March 2027",program_start_iso:"2026-12-01",program_start:"Dec 2026 (TBC)",state:"QLD",country:"Australia",location:"Noosa",distance:"30.1km",type:"Trail (30-50km)",terrain:"forest",weeks:"12",offer_url:""}, {name:"Kunanyi Mountain Run: Ultra Solo 66K",race_date_iso:"2027-03-01",race_date:"Mar 2027 (TBC)",race_month:"March 2027",program_start_iso:"2026-11-01",program_start:"Nov 2026 (TBC)",state:"TAS",country:"Australia",location:"Hobart",distance:"66.12km",type:"Trail Ultra (50-100km)",terrain:"mountain",weeks:"20",offer_url:"https://www.hertrails.com/offers/e3kYFrjo"}, {name:"Buffalo Stampede: Bright Ultra 100K",race_date_iso:"2027-03-20",race_date:"Mar 2027",race_month:"March 2027",program_start_iso:"2026-10-26",program_start:"26 Oct 2026",state:"VIC",country:"Australia",location:"Bright",distance:"101.6km",type:"Trail Ultra (100km+)",terrain:"mountain",weeks:"20",offer_url:"https://www.hertrails.com/offers/o4c2o8CL/checkout"}, {name:"Buffalo Stampede: SkyMarathon 42K",race_date_iso:"2027-03-21",race_date:"Mar 2027",race_month:"March 2027",program_start_iso:"2026-10-26",program_start:"26 Oct 2026",state:"VIC",country:"Australia",location:"Bright",distance:"42km",type:"Trail (30-50km)",terrain:"mountain",weeks:"20",offer_url:"https://www.hertrails.com/offers/FAq7LrTt/checkout"}, {name:"Buffalo Stampede: SkyRun 20K",race_date_iso:"2027-03-20",race_date:"Mar 2027",race_month:"March 2027",program_start_iso:"2026-11-30",program_start:"30 Nov 2026",state:"VIC",country:"Australia",location:"Bright",distance:"20km",type:"Trail (<30km)",terrain:"mountain",weeks:"16",offer_url:"https://www.hertrails.com/offers/jiB26aYn/checkout"}, {name:"Buffalo Stampede: Ultra 100K Relay",race_date_iso:"2027-03-20",race_date:"Mar 2027",race_month:"March 2027",program_start_iso:"2026-11-30",program_start:"30 Nov 2026",state:"VIC",country:"Australia",location:"Bright",distance:"25km",type:"Stage Race",terrain:"mountain",weeks:"16",offer_url:"https://www.hertrails.com/offers/UXgEzJoa/checkout"}]; var _rtRu=[ {area:"Croydon",city:"Melbourne",state:"VIC",day:"Wednesday",time:"7:30pm",distance:"5km",elevation:"Flat",frequency:"Weekly",maven:"@ashythomthom"}, {area:"Dandenong Ranges",city:"Melbourne",state:"VIC",day:"Sunday",time:"7:30am",distance:"10km",elevation:"350m gain",frequency:"Fortnightly",maven:"@kirstielequesne"}, {area:"Surf Coast",city:"Aireys Inlet",state:"VIC",day:"Sunday",time:"7:30am",distance:"10km",elevation:"150m gain",frequency:"Fortnightly",maven:"@ajcarps"}, {area:"Warrnambool",city:"Warrnambool",state:"VIC",day:"Sunday",time:"8:00am",distance:"10km",elevation:"80m gain",frequency:"Fortnightly",maven:"@kristie_crone"}, {area:"Perth / Hills",city:"Perth",state:"WA",day:"Saturday",time:"6:30am",distance:"10km",elevation:"217m gain",frequency:"Fortnightly",maven:"@roxycvisser"}, {area:"Adelaide Hills",city:"Adelaide",state:"SA",day:"Sunday",time:"7:00am",distance:"10km",elevation:"",frequency:"Fortnightly",maven:"@trailswithloz"}, {area:"Grampians",city:"Halls Gap",state:"VIC",day:"Sunday",time:"8:00am",distance:"8-10km",elevation:"150m gain",frequency:"Fortnightly",maven:"@emma_l_mac"}, {area:"Mt Coot-tha",city:"Brisbane",state:"QLD",day:"Sunday",time:"6:00am",distance:"11km",elevation:"",frequency:"Fortnightly",maven:"@jen_penelope_mudcrab"}, {area:"Knocklofty Reserve",city:"Hobart",state:"TAS",day:"Sunday",time:"7:30am",distance:"8-10km",elevation:"",frequency:"Fortnightly",maven:"@_keelycooper"}, {area:"Hinterland",city:"Gold Coast",state:"QLD",day:"Sunday",time:"7:00am",distance:"8km",elevation:"350m gain",frequency:"Fortnightly",maven:"@leigh.immi.amira"}, {area:"Canberra Trails",city:"Canberra",state:"ACT",day:"Sunday",time:"7:30am",distance:"8km loop",elevation:"",frequency:"Fortnightly",maven:"@belindabredell"}, {area:"Newcastle Trails",city:"Newcastle",state:"NSW",day:"Sunday",time:"7:00am",distance:"9km or 5km",elevation:"",frequency:"Fortnightly",maven:"@toria_c_"}, {area:"Blue Mountains",city:"Katoomba",state:"NSW",day:"Sunday",time:"7:30am",distance:"Cliff Walk loop",elevation:"",frequency:"Fortnightly",maven:"TBC"}]; // ── STATE ────────────────────────────────────────────────────────────var _rtEvT="all",_rtEvC="all",_rtEvN="all",_rtEvMonth="all",_rtView="event",_rtRunS="all";var _rtToday=(function(){var d=new Date();d.setHours(0,0,0,0);return d;})();var _rtMn=["January","February","March","April","May","June","July","August","September","October","November","December"]; // ── HELPERS ──────────────────────────────────────────────────────────function _rtIso(s){if(!s||s.length<8)return null;var p=s.replace(/-00/g,"").split("-");return p.length>=3?new Date(+p[0],+p[1]-1,+p[2]):null;}function _rtFuture(iso){if(!iso)return true;var d=_rtIso(iso);return!d||d>=_rtToday;} function _rtTypePill(t){ var m={"Trail Ultra (100km+)":["#fff3ee","#c45c33"],"Trail Ultra (50-100km)":["#fff3ee","#c45c33"],"Trail (30-50km)":["#edf3ec","#597b52"],"Trail (<30km)":["#edf3ec","#597b52"],"Road Marathon":["#f0ebe6","#555"]}; var p=m[t]||["#f0ebe6","#555"]; return'<span style="display:inline-block;background:'+p[0]+';color:'+p[1]+';font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:3px;">'+t+'</span>';} // Returns the unlock/access note for a card// 3 states: future start date | in progress | no start datefunction _rtAccessNote(e){ if(!e.program_start_iso) return ""; var d=_rtIso(e.program_start_iso); if(!d) return ""; if(d>_rtToday){ return '<p style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:#597b52;margin:0;line-height:1.5;background:#edf3ec;border-radius:3px;padding:6px 9px;">Join now: Community Hub, Coaching Corner and Week 1 unlock immediately. Full program opens '+e.program_start+'.</p>'; } else { return '<p style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:#c45c33;margin:0;line-height:1.5;background:#fff3ee;border-radius:3px;padding:6px 9px;">Training is underway. Join at any point. Community Hub and Coaching Corner are available immediately.</p>'; }} // Returns whether a program has already startedfunction _rtStarted(e){ if(!e.program_start_iso) return false; var d=_rtIso(e.program_start_iso); return d&&d<_rtToday;} // Builds the CTA block for a card// Primary: standalone offer link (if available) OR All In (if started with no offer) OR Coming soon// Secondary: "Or join via All In Membership" link (shown alongside standalone CTA)var _rtAllIn="https://www.hertrails.com/all-in-member";function _rtCTA(e){ var started=_rtStarted(e); if(e.offer_url){ return '<a href="'+e.offer_url+'" style="display:inline-block;padding:9px 18px;background:#c45c33;color:#f8f5f2;border-radius:3px;font-family:\'Work Sans\',sans-serif;font-size:11px;font-weight:600;text-decoration:none;margin-top:8px;">Join program</a>'+ '<br><a href="'+_rtAllIn+'" style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:#c45c33;font-weight:600;text-decoration:none;margin-top:6px;display:inline-block;">Or join via All In Membership →</a>'; } else if(started){ // Program has started but no standalone offer URL — direct to All In return '<a href="'+_rtAllIn+'" style="display:inline-block;padding:9px 18px;background:#c45c33;color:#f8f5f2;border-radius:3px;font-family:\'Work Sans\',sans-serif;font-size:11px;font-weight:600;text-decoration:none;margin-top:8px;">Join via All In Membership</a>'; } else { // Not started and no offer URL — coming soon return '<button onclick="rtPopup(\''+e.name.replace(/'/g,"\\'")+'\',\''+e.type+'\')" style="display:inline-block;padding:8px 16px;background:transparent;color:#999;border:1.5px solid #e2d9d2;border-radius:3px;font-family:\'Work Sans\',sans-serif;font-size:11px;font-weight:600;cursor:pointer;margin-top:8px;">Coming soon</button>'+ '<br><a href="'+_rtAllIn+'" style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:#aaa;font-weight:500;text-decoration:none;margin-top:6px;display:inline-block;">Join All In for early access →</a>'; }} function _rtGrp(items,isoKey,mKey){ var bm={},nd=[]; items.forEach(function(e){var mo=e[mKey]||"";if(!mo){nd.push(e);return;}if(!bm[mo])bm[mo]=[];bm[mo].push(e);}); var ord=Object.keys(bm).sort(function(a,b){return(bm[a][0][isoKey]||"9")<(bm[b][0][isoKey]||"9")?-1:1;}); return{bm:bm,ord:ord,nd:nd};}function _rtRenderGrp(g,cardFn,outId){ var html=""; if(!g.ord.length&&!g.nd.length){ document.getElementById(outId).innerHTML='<div style="text-align:center;padding:40px;color:#aaa;font-family:\'Work Sans\',sans-serif;font-size:14px;background:#faf9f6;border-radius:6px;">No programs match this filter.</div>'; return; } g.ord.forEach(function(m){ html+='<div style="margin-bottom:36px;">'+ '<div class="rtMonthHead" style="font-family:\'Playfair Display\',Georgia,serif;font-weight:700;font-size:18px;color:#1d1d1d;padding-bottom:12px;margin-bottom:16px;border-bottom:2px solid #e2d9d2;">'+m+'</div>'+ '<div style="display:flex;flex-wrap:wrap;gap:12px;">'; g.bm[m].forEach(function(e){html+=cardFn(e);}); html+='</div></div>'; }); if(g.nd.length){ html+='<div style="margin-bottom:36px;">'+ '<div class="rtMonthHead" style="font-family:\'Playfair Display\',Georgia,serif;font-weight:700;font-size:18px;color:#1d1d1d;padding-bottom:12px;margin-bottom:16px;border-bottom:2px solid #e2d9d2;">Date TBC</div>'+ '<div style="display:flex;flex-wrap:wrap;gap:12px;">'; g.nd.forEach(function(e){html+=cardFn(e);}); html+='</div></div>'; } document.getElementById(outId).innerHTML=html;} // ── POPUP ─────────────────────────────────────────────────────────────// Maps event type to the closest distance-based program recommendationvar _rtRec={ "Trail Ultra (100km+)": {label:"Trail Ultra 100km program",url:"https://www.hertrails.com/all-in-member"}, "Trail Ultra (50-100km)":{label:"Trail Ultra 50km program", url:"https://www.hertrails.com/all-in-member"}, "Trail (30-50km)": {label:"Trail 30-50km program", url:"https://www.hertrails.com/all-in-member"}, "Trail (<30km)": {label:"Trail Half Marathon program",url:"https://www.hertrails.com/all-in-member"}, "Road Marathon": {label:"Road Marathon program", url:"https://www.hertrails.com/offers/jm2v3dU4/checkout"}};function rtPopup(name,type){ var rec=_rtRec[type]||{label:"a Her Trails distance program",url:"https://www.hertrails.com/all-in-member"}; document.getElementById("rtPopLbl").textContent="Program recommendation"; document.getElementById("rtPopTitle").textContent=name; document.getElementById("rtPopBody").innerHTML= "We do not have a dedicated program for this event yet.<br><br>"+ "Based on the distance and terrain, the <strong>"+rec.label+"</strong> is the best match. Same terrain type, same weekly structure, same phase progression.<br><br>"+ "Once you are inside the coaching platform, your coach will provide specific notes for "+name+": course briefing, terrain preparation, pace targets and race-week guidance. Built around your actual event, not a generic template."; document.getElementById("rtPopJoin").href=rec.url; document.getElementById("rtPopJoin").textContent="Join recommended program"; document.getElementById("rtOverlay").style.display="block"; document.getElementById("rtPopup").style.display="block";}function rtClosePopup(){document.getElementById("rtOverlay").style.display="none";document.getElementById("rtPopup").style.display="none";} // ── SHARED PILL STYLE HELPERS — set inline styles directly, no CSS class dependency ──function _rtActivePill(el){el.style.background='#c45c33';el.style.borderColor='#c45c33';el.style.color='#f8f5f2';el.style.fontWeight='600';}function _rtInactivePill(el){el.style.background='#fff';el.style.borderColor='#e2d9d2';el.style.color='#777';el.style.fontWeight='500';} // ── TAB SWITCHING ─────────────────────────────────────────────────────function rtTab(tab,btn){ ["Events","Distance","Runs"].forEach(function(t){ var p=document.getElementById("rtPanel-"+t),b=document.getElementById("rtTab-"+t); if(p)p.style.display="none"; if(b){b.style.color="#aaa";b.style.borderBottomColor="transparent";} }); var panel=document.getElementById("rtPanel-"+tab); if(panel) panel.style.display="block"; if(btn){btn.style.color="#c45c33";btn.style.borderBottomColor="#c45c33";} // Render distance programs when tab first opens if(tab==="Distance") rtRenderDist();} // ── EVENT CARD ────────────────────────────────────────────────────────function _rtEvCard(e){ var loc=[e.location,e.state,e.country].filter(Boolean).join(", "); var started=_rtStarted(e); var hasOffer=!!e.offer_url; var cardBg=hasOffer||started?'#fff':'#fafaf8'; // Date strip — always show race date; show program start if available var dateStrip; if(e.program_start){ var startLabelCol=started?'#c45c33':'#597b52'; var startValCol=started?'#c45c33':'#1d1d1d'; dateStrip= '<div style="display:flex;gap:0;border:1px solid #e2d9d2;border-radius:4px;overflow:hidden;margin-bottom:2px;">'+ '<div style="flex:1;padding:9px 12px;border-right:1px solid #e2d9d2;background:#f8f5f2;">'+ '<p style="font-family:\'Work Sans\',sans-serif;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#aaa;margin:0 0 3px 0;">Race date</p>'+ '<p style="font-family:\'Work Sans\',sans-serif;font-size:12px;font-weight:600;color:#c45c33;margin:0;line-height:1.2;">'+(e.race_date||"TBC")+'</p>'+ '</div>'+ '<div style="flex:1;padding:9px 12px;background:#f8f5f2;">'+ '<p style="font-family:\'Work Sans\',sans-serif;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#aaa;margin:0 0 3px 0;">'+(started?'Training started':'Training starts')+'</p>'+ '<p style="font-family:\'Work Sans\',sans-serif;font-size:12px;font-weight:600;color:'+startValCol+';margin:0;line-height:1.2;">'+e.program_start+'</p>'+ '</div>'+ '</div>'; } else { // No program start date — just race date, smaller dateStrip='<p style="font-family:\'Work Sans\',sans-serif;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#c45c33;margin:0;">'+(e.race_date||"TBC")+'</p>'; } return '<div style="flex:1 1 260px;background:'+cardBg+';border:1px solid #e2d9d2;border-radius:6px;padding:18px;display:flex;flex-direction:column;gap:8px;">'+ dateStrip+ '<p style="font-family:\'Playfair Display\',Georgia,serif;font-weight:700;font-size:15px;color:#1d1d1d;line-height:1.3;margin:0;">'+e.name+'</p>'+ _rtTypePill(e.type)+ (loc?'<p style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:#888;margin:0;">'+loc+(e.distance?" · "+e.distance:"")+'</p>':"")+ (e.weeks?'<p style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:#aaa;margin:0;">'+e.weeks+' week program</p>':"")+ _rtAccessNote(e)+ _rtCTA(e)+ '</div>';} // ── START DATE CARD ───────────────────────────────────────────────────function _rtStCard(e){ var started=_rtStarted(e); var hasOffer=!!e.offer_url; var cardBg=hasOffer||started?'#fff':'#fafaf8'; var cardBorder=started?'#f5d0bf':'#e2d9d2'; var startColor=started?"#c45c33":"#1d1d1d"; return '<div style="flex:1 1 260px;background:'+cardBg+';border:1px solid '+cardBorder+';border-radius:6px;padding:18px;display:flex;flex-direction:column;gap:8px;">'+ '<p style="font-family:\'Work Sans\',sans-serif;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#aaa;margin:0;">Training starts</p>'+ '<p style="font-family:\'Playfair Display\',Georgia,serif;font-weight:700;font-size:22px;color:'+startColor+';margin:0;line-height:1.1;">'+e.program_start+'</p>'+ '<p style="font-family:\'Playfair Display\',Georgia,serif;font-weight:700;font-size:15px;color:#1d1d1d;line-height:1.3;margin:0;">'+e.name+'</p>'+ _rtTypePill(e.type)+ (e.race_date?'<p style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:#888;margin:0;">Race: '+e.race_date+(e.location?" · "+e.location:"")+'</p>':"")+ (e.weeks?'<p style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:#aaa;margin:0;">'+e.weeks+" weeks</p>":"")+ _rtAccessNote(e)+ _rtCTA(e)+ '</div>';} // ── RUN CARD ──────────────────────────────────────────────────────────function _rtRunCard(r){ var freqS=r.frequency==="Weekly"?'background:#edf3ec;color:#597b52;':'background:#f0ebe6;color:#888;'; return '<div style="flex:1 1 240px;background:#fff;border:1px solid #e2d9d2;border-radius:6px;overflow:hidden;">'+ '<div style="background:#3c5442;padding:14px 16px;">'+ '<p style="font-family:\'Playfair Display\',Georgia,serif;font-weight:700;font-size:15px;color:#f8f5f2;margin:0 0 2px 0;">'+r.area+'</p>'+ '<p style="font-family:\'Work Sans\',sans-serif;font-size:9px;color:rgba(248,245,242,.55);letter-spacing:.08em;text-transform:uppercase;margin:0;">'+r.city+', '+r.state+'</p>'+ '</div>'+ '<div style="padding:14px 16px;display:flex;flex-direction:column;gap:8px;">'+ '<div style="display:flex;gap:8px;"><span style="font-family:\'Work Sans\',sans-serif;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#aaa;min-width:68px;flex-shrink:0;">When</span><span style="font-family:\'Work Sans\',sans-serif;font-size:12px;color:#1d1d1d;">'+r.day+' '+r.time+'</span></div>'+ '<div style="display:flex;gap:8px;"><span style="font-family:\'Work Sans\',sans-serif;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#aaa;min-width:68px;flex-shrink:0;">Distance</span><span style="font-family:\'Work Sans\',sans-serif;font-size:12px;color:#1d1d1d;">'+r.distance+(r.elevation?" / "+r.elevation:"")+'</span></div>'+ '<div style="display:flex;gap:8px;align-items:center;"><span style="font-family:\'Work Sans\',sans-serif;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#aaa;min-width:68px;flex-shrink:0;">Frequency</span><span style="font-family:\'Work Sans\',sans-serif;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:2px;'+freqS+'">'+r.frequency+'</span></div>'+ '<div style="display:flex;gap:8px;"><span style="font-family:\'Work Sans\',sans-serif;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#aaa;min-width:68px;flex-shrink:0;">Led by</span><span style="font-family:\'Work Sans\',sans-serif;font-size:12px;color:#c45c33;font-weight:600;">'+r.maven+'</span></div>'+ '</div></div>';} // ── RENDER ─────────────────────────────────────────────────────────────function rtRenderEvents(){ // Precompute program start month for "training start" view _rtEv.forEach(function(e){ if(!e._psMonth&&e.program_start_iso){ var d=_rtIso(e.program_start_iso); e._psMonth=d?_rtMn[d.getMonth()]+" "+d.getFullYear():""; } }); var items=_rtEv.filter(function(e){ // Date filter: for "start" view use program_start_iso, for "event" use race_date_iso if(_rtView==="start"){ if(!e.program_start_iso)return false; if(!_rtFuture(e.program_start_iso)&&!_rtFuture(e.race_date_iso))return false; } else { if(!_rtFuture(e.race_date_iso))return false; } if(_rtEvT!=="all"&&e.type!==_rtEvT)return false; if(_rtEvC!=="all"&&e.country!==_rtEvC)return false; if(_rtEvN!=="all"&&e.terrain!==_rtEvN)return false; return true; }); if(_rtView==="start"){ items.sort(function(a,b){return(a.program_start_iso||"9")<(b.program_start_iso||"9")?-1:1;}); _rtRenderGrp(_rtGrp(items,"program_start_iso","_psMonth"),_rtEvCard,"rtEvOut",true); } else { _rtRenderGrp(_rtGrp(items,"race_date_iso","race_month"),_rtEvCard,"rtEvOut",false); } rtBuildMonthPills(items);}function rtRenderStarts(){ var items=_rtEv.filter(function(e){ if(!e.program_start_iso)return false; if(!_rtFuture(e.program_start_iso)&&!_rtFuture(e.race_date_iso))return false; if(_rtStT!=="all"&&e.type!==_rtStT)return false; if(_rtStC!=="all"&&e.country!==_rtStC)return false; return true; }); items.forEach(function(e){if(!e._psMonth){var d=_rtIso(e.program_start_iso);e._psMonth=d?_rtMn[d.getMonth()]+" "+d.getFullYear():""}}); items.sort(function(a,b){return(a.program_start_iso||"9")<(b.program_start_iso||"9")?-1:1;}); _rtRenderGrp(_rtGrp(items,"program_start_iso","_psMonth"),_rtStCard,"rtStOut");}function rtRenderRuns(){ var f=_rtRu.filter(function(r){return _rtRunS==="all"||r.state===_rtRunS;}); document.getElementById("rtRunOut").innerHTML=f.map(_rtRunCard).join("")|| '<div style="text-align:center;padding:40px;color:#aaa;font-family:\'Work Sans\',sans-serif;font-size:14px;background:#faf9f6;border-radius:6px;">No group runs in this state yet.</div>';} // ── FILTERS ──────────────────────────────────────────────────────────function rtEvType(t,b){_rtEvT=t;document.querySelectorAll(".rtFT").forEach(_rtInactivePill);_rtActivePill(b);rtRenderEvents();}function rtEvCtry(c,b){_rtEvC=c;document.querySelectorAll(".rtFC").forEach(_rtInactivePill);_rtActivePill(b);rtRenderEvents();}function rtEvTerrain(n,b){_rtEvN=n;document.querySelectorAll(".rtFN").forEach(_rtInactivePill);_rtActivePill(b);rtRenderEvents();} // ── VIEW TOGGLE ────────────────────────────────────────────────────────function rtSetView(view,btn){ _rtView=view;_rtEvMonth="all"; var evBtn=document.getElementById("rtViewBtn-event"),stBtn=document.getElementById("rtViewBtn-start"); evBtn.style.background=view==="event"?"#1d1d1d":"#fff"; evBtn.style.color=view==="event"?"#f8f5f2":"#aaa"; stBtn.style.background=view==="start"?"#1d1d1d":"#fff"; stBtn.style.color=view==="start"?"#f8f5f2":"#aaa"; rtRenderEvents();} // ── MONTH PILLS ───────────────────────────────────────────────────────var _inactiveMonthStyle='display:inline-block;padding:4px 10px;background:#f8f5f2;border:1px solid #e2d9d2;border-radius:3px;font-family:\'Work Sans\',sans-serif;font-size:10px;font-weight:500;color:#888;cursor:pointer;white-space:nowrap;';var _activeMonthStyle='display:inline-block;padding:4px 10px;background:#1d1d1d;border:1px solid #1d1d1d;border-radius:3px;font-family:\'Work Sans\',sans-serif;font-size:10px;font-weight:600;color:#f8f5f2;cursor:pointer;white-space:nowrap;'; function rtBuildMonthPills(items){ var seen={},months=[]; items.forEach(function(e){ var m=_rtView==="start"?(e._psMonth||""):(e.race_month||""); if(m&&!seen[m]){seen[m]=true;months.push(m);} }); var container=document.getElementById("rtMonthPills"); if(!container||!months.length){if(container)container.innerHTML="";return;} container.innerHTML= '<span style="font-family:\'Work Sans\',sans-serif;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#bbb;margin-right:4px;">Jump to</span>'+ '<span onclick="rtJumpMonth(\'all\',this)" style="'+(_rtEvMonth==="all"?_activeMonthStyle:_inactiveMonthStyle)+'">All</span>'+ months.map(function(m){ var short=m.replace(" 2026","").replace(" 2027","").replace(" 2025",""); return '<span onclick="rtJumpMonth(\''+m+'\',this)" style="'+(_rtEvMonth===m?_activeMonthStyle:_inactiveMonthStyle)+'">'+short+'</span>'; }).join('');} function rtJumpMonth(m,btn){ _rtEvMonth=m; // Update all month pill styles directly document.querySelectorAll("#rtMonthPills span[onclick]").forEach(function(x){x.style.cssText=_inactiveMonthStyle;}); if(btn) btn.style.cssText=_activeMonthStyle; if(m==="all"){rtRenderEvents();return;} setTimeout(function(){ var headings=document.querySelectorAll("#rtEvOut .rtMonthHead"); for(var i=0;i<headings.length;i++){ if(headings[i].textContent.indexOf(m.replace(" 2026","").replace(" 2027","").replace(" 2025",""))>-1){ headings[i].scrollIntoView({behavior:"smooth",block:"start"});break; } } },100);}function rtRunSt(s,b){_rtRunS=s;document.querySelectorAll(".rtFR").forEach(_rtInactivePill);_rtActivePill(b);rtRenderRuns();}function rtDistTerrain(t,b){_rtDistT=t;document.querySelectorAll(".rtFD").forEach(_rtInactivePill);_rtActivePill(b);rtRenderDist();} // ── DISTANCE BASED PROGRAMS ───────────────────────────────────────────// Update offer_url values when distance program pages are live in Kajabivar _rtDistProgs=[ // TRAIL {label:"Trail Ultra",distance:"100km+",terrain:"trail",weeks:"20",description:"High-distance mountain and trail terrain. Progressive elevation build, technical descent training, fuelling for long efforts and multi-day recovery. For runners building toward their first or next 100km.",offer_url:"https://www.hertrails.com/all-in-member",accent:"#c45c33"}, {label:"Trail Ultra",distance:"50km",terrain:"trail",weeks:"18",description:"Your first ultra or your next one. Strength integration, trail-specific long runs, back-to-back weekend sessions and the mental frameworks for going further than you have before.",offer_url:"https://www.hertrails.com/all-in-member",accent:"#c45c33"}, {label:"Trail",distance:"30-50km",terrain:"trail",weeks:"16",description:"The step between half and ultra. Technical terrain focus, progressive long run build and strength work that prepares the body for time on feet beyond the road marathon.",offer_url:"https://www.hertrails.com/all-in-member",accent:"#597b52"}, {label:"Trail",distance:"Half Marathon",terrain:"trail",weeks:"12",description:"All paces, all terrain types. Four sessions per week built around trail-specific movement, hill technique, and the confidence to move through technical ground with ease.",offer_url:"https://www.hertrails.com/all-in-member",accent:"#597b52"}, // ROAD {label:"Road",distance:"Marathon 42.2km",terrain:"road",weeks:"16",description:"16 weeks of progressive marathon build. Zone 2 foundations, tempo integration, long run progression and a full race-week plan. For first-timers and those chasing a new time.",offer_url:"https://www.hertrails.com/offers/UsejcnH5/checkout",accent:"#2c3e50"}, {label:"Road",distance:"Half Marathon",terrain:"road",weeks:"12",description:"12 weeks. Four sessions per week. A complete half marathon build with strength integration, pacing structure and a plan that fits around a full life.",offer_url:"https://www.hertrails.com/all-in-member",accent:"#2c3e50"}, {label:"Road",distance:"10km",terrain:"road",weeks:"8",description:"Build speed and confidence over 10 kilometres. Eight weeks of structured running, strength and recovery. A great start or a strong return.",offer_url:"https://www.hertrails.com/all-in-member",accent:"#2c3e50"},];var _rtDistT="all";var _rtDistRendered=false; function rtRenderDist(){ if(!document.getElementById("rtDistOut")) return; var items=_rtDistProgs.filter(function(p){ return _rtDistT==="all"||p.terrain===_rtDistT; }); if(!items.length){document.getElementById("rtDistOut").innerHTML='<div style="text-align:center;padding:40px;color:#aaa;font-family:\'Work Sans\',sans-serif;font-size:14px;">No programs match this filter.</div>';return;} document.getElementById("rtDistOut").innerHTML='<div style="display:flex;flex-wrap:wrap;gap:16px;">'+ items.map(function(p){ var cta=p.offer_url ?'<a href="'+p.offer_url+'" style="display:inline-block;padding:9px 18px;background:'+p.accent+';color:#f8f5f2;border-radius:3px;font-family:\'Work Sans\',sans-serif;font-size:11px;font-weight:600;text-decoration:none;margin-top:8px;">Join program</a>'+ '<br><a href="https://www.hertrails.com/all-in-member" style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:'+p.accent+';font-weight:600;text-decoration:none;margin-top:6px;display:inline-block;">Or join via All In Membership →</a>' :'<button style="display:inline-block;padding:8px 16px;background:transparent;color:#999;border:1.5px solid #e2d9d2;border-radius:3px;font-family:\'Work Sans\',sans-serif;font-size:11px;font-weight:600;cursor:not-allowed;margin-top:8px;">Coming soon</button>'; return '<div style="flex:1 1 280px;background:#fff;border:1px solid #e2d9d2;border-top:3px solid '+p.accent+';border-radius:0 0 6px 6px;padding:20px;display:flex;flex-direction:column;gap:8px;">'+ '<div style="display:flex;align-items:baseline;gap:8px;">'+ '<span style="font-family:\'Work Sans\',sans-serif;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:'+p.accent+';">'+p.label+'</span>'+ '<span style="font-family:\'Work Sans\',sans-serif;font-size:10px;color:#aaa;letter-spacing:.06em;text-transform:uppercase;">'+p.terrain+'</span>'+ '</div>'+ '<p style="font-family:\'Playfair Display\',Georgia,serif;font-weight:700;font-size:22px;color:#1d1d1d;margin:0;line-height:1.15;">'+p.distance+'</p>'+ '<p style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:#aaa;margin:0;">'+p.weeks+' weeks</p>'+ '<p style="font-family:\'Work Sans\',sans-serif;font-size:13px;color:#555;line-height:1.65;margin:0;">'+p.description+'</p>'+ '<p style="font-family:\'Work Sans\',sans-serif;font-size:11px;color:#597b52;background:#edf3ec;border-radius:3px;padding:6px 9px;margin:0;line-height:1.5;">Join now and get Community Hub, Coaching Corner and Week 1 immediately.</p>'+ cta+'</div>'; }).join('')+ '</div>'; _rtDistRendered=true;} (function(){rtRenderEvents();rtRenderRuns();})();</script> <!--════════════════════════════════════════KAJABI SETUP — BLOCK 02════════════════════════════════════════1. Paste HTML into a Kajabi Code block below Block 012. Section background: #f8f5f23. Move <style> block to Kajabi > Custom Code > CSS4. Access note logic (automatic, no action needed): - Program start date in future: green note "Intro + Week 1 available now. Full program opens [date]." - Program start date past: terracotta note "Training is underway. Join at any point." - No program start date: no note shown5. Cards without an offer_url show a "Coming soon" ghost button that opens the popup with nearest alternative program6. To make a program live: add its offer_url to the data array entry════════════════════════════════════════--> No specific race? Train toward a distance.
Distance programs give you complete structure toward a goal distance, road or trail. Same progressive phases, same strength integration, same coaching support. When you have a race in mind later, your coach can build in specific race notes for your event.
Already tracking on Strava?
Group runs appear in your Strava feed automatically when led by a Her Trails maven. Join a run, track it, share it.
Join at any point. Community Hub, Coaching Corner and Week 1 are available immediately.