1<!doctype html> 2<html lang="en"> 3 <head> 4 5 <meta name="csrf-param" content="authenticity_token"> 6 <meta name="csrf-token" content="sQGw-j4YiZ6ed2IDSdZUnTIJjgNHokYJNfz-dJnyA3RvVoTrnF0kOzPdHzDA79fzbF70nBhLg5TqhMwWOyGx0g"> 7 8 <title> 9 10 Join Made2Homeschool because you belong here! 11 12 </title> 13 <meta charset="utf-8" /> 14 <meta http-equiv="x-ua-compatible" content="ie=edge, chrome=1"> 15 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 16 17 <meta property="og:type" content="website"> 18<meta property="og:url" content="https://www.made2homeschool.com/values"> 19<meta name="twitter:card" content="summary_large_image"> 20 21<meta property="og:title" content="Join Made2Homeschool because you belong here!"> 22<meta name="twitter:title" content="Join Made2Homeschool because you belong here!"> 23 24 25 26<meta property="og:image" content="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/sites/2147636890/images/73bd6bd-60fc-2511-2bb6-a6f5f8c3d744_Premium_Membership_2_.png"> 27<meta name="twitter:image" content="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/sites/2147636890/images/73bd6bd-60fc-2511-2bb6-a6f5f8c3d744_Premium_Membership_2_.png"> 28 29 30 <link href="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/sites/2147636890/images/fbbcdac-f008-c071-eaa6-eaea874fed3_e1e6311f-652f-46a2-86a4-c47cfdd59a62.jpg?v=2" rel="shortcut icon" /> 31 32 <link rel="canonical" href="https://www.made2homeschool.com/values" /> 33 34 <!-- Google Fonts ====================================================== --> 35 36 <link href="//fonts.googleapis.com/css?family=Montserrat:400,700,400italic,700italic" rel="stylesheet" type="text/css"> 37 38 39 <!-- Kajabi CSS ======================================================== --> 40 <link rel="stylesheet" media="screen" href="https://kajabi-app-assets.kajabi-cdn.com/assets/core-bd7b26fa88233b0deec176501f76275fcd62a9785b79309a9e2b92fe02ba1903.css" /> 41 42 43 44 <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.2/css/all.css" crossorigin="anonymous"> 45 46 <link rel="stylesheet" media="screen" href="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/themes/2153655894/assets/styles.css?1788492246387407" /> 47 48 <!-- Customer CSS ====================================================== --> 49 <link rel="stylesheet" media="screen" href="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/themes/2153655894/assets/overrides.css?1788492246387407" /> 50 <style> 51 /* Custom CSS Added Via Theme Settings */ 52 header { 53 display: none; 54}
55<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
55 56 57</style> 58 59 <!-- Kajabi Editor Only CSS ============================================ --> 60 61 62 <!-- Header hook ======================================================= --> 63 <link rel="apple-touch-icon" href="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/sites/2147636890/images/fbbcdac-f008-c071-eaa6-eaea874fed3_e1e6311f-652f-46a2-86a4-c47cfdd59a62.jpg" />
63<script type="text/javascript"> 64 var Kajabi = Kajabi || {}; 65</script>
vendor: 1 bytes, line 65
65
66<script type="text/javascript"> 67 Kajabi.currentSiteUser = { 68 "id" : "-1", 69 "type" : "Guest", 70 "contactId" : "", 71 }; 72 73</script>
vendor: 1 bytes, line 73
73
74<script type="text/javascript"> 75 Kajabi.theme = { 76 activeThemeName: "Encore Page", 77 previewThemeId: null, 78 editor: false 79 }; 80</script>
80 81<meta name="turbo-prefetch" content="false"> 82<!-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 83 M2H FOUC CLOAK â paste into Kajabi â Settings â Site â Head Code, 84 RIGHT AFTER your existing "M2H Vibely SPA bootstrap"
84<script> block. 85 86 WHY: This runs at HTML parse time on the community/dashboard page, BEFORE 87 the native Vibely chrome paints. It throws up the M2H frosted loading 88 overlay instantly, so members never see the jarring 1-2s native sidebar 89 flash. The already-deployed runtime (vibely-runtime.js) lifts this SAME 90 overlay (shared id "m2h-cloak") once our restyle has applied. 91 92 GATING: only shows when (a) the URL is a community route AND (b) the 93 tester has localStorage m2h_mask = "1". Other members see nothing. 94 Self-clears after 6s no matter what (safety), so it can never get stuck. 95 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -->
96<script> 97(function () { 98 try { 99 if (location.pathname.indexOf('/products/communities/v2/') === -1) return; 100 var on = false; try { on = localStorage.getItem('m2h_mask') === '1'; } catch (e) { return; } 101 if (!on) return; 102 if (document.getElementById('m2h-cloak')) return; 103 104 var LOGO = 'https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2162333577/settings_images/ca5e2-d3fa-2ac2-1db3-006e887d1812_Made2Homeschool_Logo_teal_to_royal_gradient_true.png'; 105 106 var style = document.createElement('style'); 107 style.id = 'm2h-cloak-kf'; 108 style.textContent = 109 '@keyframes m2hCloakSpin{to{transform:rotate(360deg)}}' + 110 '#m2h-cloak{position:fixed;inset:0;z-index:2147483646;display:flex;align-items:center;justify-content:center;' + 111 'background:rgba(253,248,244,0.78);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);' + 112 'opacity:1;transition:opacity .35s ease;font-family:Poppins,system-ui,-apple-system,sans-serif;}' + 113 '#m2h-cloak .m2h-cloak-card{background:#fff;border:1px solid #DCEBED;border-radius:21px;' + 114 'box-shadow:0 18px 42px rgba(23,52,58,0.12);padding:30px 38px;display:flex;flex-direction:column;' + 115 'align-items:center;gap:14px;max-width:300px;}' + 116 '#m2h-cloak .m2h-cloak-spin{width:34px;height:34px;border-radius:50%;border:3px solid #E3F2F4;' + 117 'border-top-color:#2CC1D0;animation:m2hCloakSpin .8s linear infinite;}' + 118 '#m2h-cloak .m2h-cloak-msg{color:#5F767C;font-size:13px;font-weight:500;text-align:center;min-height:18px;}'; 119 (document.head || document.documentElement).appendChild(style); 120 121 var el = document.createElement('div'); 122 el.id = 'm2h-cloak'; 123 el.setAttribute('role', 'status'); 124 el.setAttribute('aria-live', 'polite'); 125 el.innerHTML = 126 '<div class="m2h-cloak-card">' + 127 '<img src="' + LOGO + '" alt="Made2Homeschool" style="height:34px;width:auto;display:block;">' + 128 '<div class="m2h-cloak-spin"></div>' + 129 '<div class="m2h-cloak-msg" id="m2h-cloak-msg">Setting up your space...</div>' + 130 '</div>'; 131 (document.documentElement || document).appendChild(el); 132 133 // Re-home into <body> once it exists, so it stays on top of the SPA content. 134 function rehome() { 135 if (document.body && el.parentNode !== document.body) { 136 try { document.body.appendChild(el); } catch (e) {} 137 } 138 } 139 if (document.body) { rehome(); } 140 else { document.addEventListener('DOMContentLoaded', rehome, { once: true }); } 141 142 // Rotating messages. 143 var msgs = ['Setting up your space...', 'Loading your community...', 'Almost there...']; 144 var i = 0; 145 var msgInt = setInterval(function () { 146 i = (i + 1) % msgs.length; 147 var m = document.getElementById('m2h-cloak-msg'); 148 if (m) m.textContent = msgs[i]; 149 }, 1100); 150 151 // Safety: always remove after 6s even if the runtime never loads. 152 setTimeout(function () { 153 try { clearInterval(msgInt); } catch (e) {} 154 var c = document.getElementById('m2h-cloak'); 155 if (c) { c.style.opacity = '0'; setTimeout(function () { try { c.remove(); } catch (e) {} }, 400); } 156 }, 6000); 157 158 // Expose the interval id so the runtime's hideCloak can clear it too. 159 window.__m2hCloakMsgInt = msgInt; 160 } catch (e) {} 161})(); 162</script>
162 163<!-- Google tag (gtag.js) for Google Analytics -->
vendor: 65 bytes, lines 163-164
163 164<script async src="https://www.googletagmanager.com/gtag/js?id=
164G-ZYP1LT06JJ
vendor: 13 bytes, line 164
164"></script>
165<script> 166
vendor: 138 bytes, lines 166-170
166window.dataLayer = window.dataLayer || []; 167 function gtag(){dataLayer.push(arguments);} 168 gtag('js', new Date()); 169 170 gtag('config', '
170G-ZYP1LT06JJ
vendor: 5 bytes, line 170
170');
171</script>
171 172 173<!-- =========================================================================== 174 M2H PWA - SITE-WIDE HEAD BLOCK (v6.20, 2026-05-16) 175 =========================================================================== 176 v6.14: nav bar Partners button now drives the dashboard's own 177 Partner Discounts pill (iframe-internal click) so the bundle stays 178 alive and the upgrade modal fires. Upgrade modal restyled (M2H teal 179 gradient, backdrop blur). Manifest link rolled back -- Chrome was 180 hiding the basic install option, and Kajabi cannot host /sw.js so 181 the real PWA install path is not reachable right now anyway. 182 REPLACES any earlier M2H PWA site-wide head block. 183 =========================================================================== --> 184 185<!-- Theme + status bar --> 186<meta name="theme-color" content="#ffffff" /> 187 188<!-- iOS: treat the bookmarked site as a standalone app --> 189<meta name="apple-mobile-web-app-capable" content="yes" /> 190<meta name="apple-mobile-web-app-status-bar-style" content="default" /> 191<meta name="apple-mobile-web-app-title" content="M2H" /> 192<meta name="mobile-web-app-capable" content="yes" /> 193 194<!-- iOS Home Screen icons (apple-touch-icon) --> 195<link rel="apple-touch-icon" sizes="180x180" href="https://m2h-pwa-icons.pages.dev/icons/apple-touch-icon-180.png" /> 196<link rel="apple-touch-icon" sizes="167x167" href="https://m2h-pwa-icons.pages.dev/icons/apple-touch-icon-167.png" /> 197<link rel="apple-touch-icon" sizes="152x152" href="https://m2h-pwa-icons.pages.dev/icons/apple-touch-icon-152.png" /> 198<link rel="apple-touch-icon" sizes="120x120" href="https://m2h-pwa-icons.pages.dev/icons/apple-touch-icon-120.png" /> 199<link rel="apple-touch-icon" href="https://m2h-pwa-icons.pages.dev/icons/apple-touch-icon-180.png" /> 200 201<!-- Favicon (browser tab icon) --> 202<link rel="icon" type="image/png" sizes="32x32" href="https://m2h-pwa-icons.pages.dev/icons/favicon-32.png" /> 203<link rel="icon" type="image/png" sizes="16x16" href="https://m2h-pwa-icons.pages.dev/icons/favicon-16.png" /> 204<link rel="shortcut icon" href="https://m2h-pwa-icons.pages.dev/icons/favicon-32.png" /> 205 206<!-- iOS splash screens - 13 device-specific images. --> 207<link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-se-portrait.png" /> 208<link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-8plus-portrait.png" /> 209<link rel="apple-touch-startup-image" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-x-portrait.png" /> 210<link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-xr-portrait.png" /> 211<link rel="apple-touch-startup-image" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-xsmax-portrait.png" /> 212<link rel="apple-touch-startup-image" media="(device-width: 390px) and (device-height: 844px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-12-portrait.png" /> 213<link rel="apple-touch-startup-image" media="(device-width: 428px) and (device-height: 926px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-12promax-portrait.png" /> 214<link rel="apple-touch-startup-image" media="(device-width: 393px) and (device-height: 852px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-14pro-portrait.png" /> 215<link rel="apple-touch-startup-image" media="(device-width: 430px) and (device-height: 932px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-14promax-portrait.png" /> 216<link rel="apple-touch-startup-image" media="(device-width: 402px) and (device-height: 874px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-16pro-portrait.png" /> 217<link rel="apple-touch-startup-image" media="(device-width: 440px) and (device-height: 956px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/iphone-16promax-portrait.png" /> 218<link rel="apple-touch-startup-image" media="(device-width: 820px) and (device-height: 1180px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/ipad-air-portrait.png" /> 219<link rel="apple-touch-startup-image" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)" href="https://m2h-pwa-icons.pages.dev/splash/ipad-pro-12-portrait.png" /> 220 221<!-- ===== Script 1: install modal (non-PWA visitors only) ===== -->
222<script> 223/** 224 * M2H "Add to Home Screen" Install Modal â PWA / Web injection 225 * 226 * NOT ported from iOS source â this is net-new. The iOS Capacitor app never 227 * needed it (users had already installed from the App Store). This modal is the 228 * thing that teaches iOS Safari visitors how to install the PWA. 229 * 230 * ======================================================================== 231 * GATING â this is the ONE injection that runs for NON-standalone visitors, 232 * because its whole job is to reach people who have NOT installed yet. 233 * Shows when: iOS (iPhone/iPad) + Safari + NOT standalone + not recently dismissed 234 * Android Chrome (not in app): shows a Play Store badge instead (separate, lighter) 235 * Desktop / already-installed PWA / inside Android app: shows nothing 236 * ======================================================================== 237 * 238 * CSS-SAFETY: this runs on regular (non-PWA) pages, so it is held to the 239 * strictest standard. It is purely ADDITIVE â it appends one overlay element 240 * and never modifies any existing page element. All inline styles, no CSS 241 * rules, every id/class prefixed m2h-pwa-. An overlay cannot collide with 242 * anything because it touches nothing that already exists. 243 * 244 * Copy is in Brandon's voice (warm, low-pressure, "no big deal" framing) per 245 * memory/brandons-voice-samples.md. 246 */ 247 248(function () { 249 'use strict'; 250 251 // ===== FRAME GATE: only ever run at the top level, never inside an iframe ===== 252 // Defense-in-depth (added 2026-05-14 after Katie's iPhone test). A stray copy of 253 // this code loaded inside any frame (e.g. the /Communityhome dashboard iframe) 254 // stays completely inert. The bundle is meant to run ONCE, in the top window. 255 if (window.self !== window.top) return; 256 257 // ---- Detection ---- 258 var ua = navigator.userAgent || ''; 259 var isIOS = /iPad|iPhone|iPod/.test(ua) || 260 (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1); 261 var isSafari = /^((?!chrome|android|crios|fxios|edgios).)*safari/i.test(ua); 262 var isAndroid = /Android/.test(ua); 263 var isChrome = /Chrome/.test(ua) && !/Edg|OPR/.test(ua); 264 var isStandalone = window.matchMedia('(display-mode: standalone)').matches || 265 window.navigator.standalone === true; 266 var isInAndroidApp = typeof window.Capacitor !== 'undefined'; 267 268 // Already installed, or inside the native app: nothing to do. 269 if (isStandalone || isInAndroidApp) return; 270 271 // ---- Dismissal cooldown (30 days) ---- 272 var DISMISS_KEY = 'm2h_pwa_install_dismissed_at'; 273 var REPROMPT_DAYS = 30; 274 function recentlyDismissed() { 275 try { 276 var ts = parseInt(localStorage.getItem(DISMISS_KEY) || '0', 10); 277 if (!ts) return false; 278 return (Date.now() - ts) / (1000 * 60 * 60 * 24) < REPROMPT_DAYS; 279 } catch (e) { return false; } 280 } 281 function markDismissed() { 282 try { localStorage.setItem(DISMISS_KEY, String(Date.now())); } catch (e) {} 283 } 284 if (recentlyDismissed()) return; 285 286 // iOS share glyph (the square-with-up-arrow), drawn as inline SVG so it matches 287 // what the user actually sees in Safari's toolbar. 288 var SHARE_ICON_SVG = 289 '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" style="vertical-align:middle;">' + 290 '<path d="M12 3v12M12 3l-4 4M12 3l4 4" stroke="#1d4ed8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>' + 291 '<path d="M6 12v7a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-7" stroke="#1d4ed8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>' + 292 '</svg>'; 293 294 // ---- iOS install modal ---- 295 function showIosModal() { 296 if (document.getElementById('m2h-pwa-install-modal')) return; 297 298 var overlay = document.createElement('div'); 299 overlay.id = 'm2h-pwa-install-modal'; 300 overlay.style.cssText = 301 'position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.55);' + 302 'z-index:1000001;display:flex;align-items:flex-end;justify-content:center;' + 303 'font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif;'; 304 305 var card = document.createElement('div'); 306 card.style.cssText = 307 'background:#ffffff;width:100%;max-width:480px;border-radius:21px 21px 0 0;' + 308 'padding:24px 22px max(24px,env(safe-area-inset-bottom)) 22px;box-sizing:border-box;' + 309 'box-shadow:0 -8px 30px rgba(0,0,0,0.25);'; 310 311 // Heading 312 var h = document.createElement('div'); 313 h.textContent = 'Add Made2Homeschool to your home screen'; 314 h.style.cssText = 315 'font-family:Poppins,-apple-system,sans-serif;font-size:19px;font-weight:700;' +
316 'color:#1a1a2e;line-height:1.3;margin-bottom:8px;'; 317 card.appendChild(h); 318 319 // Subhead â warm, low-pressure 320 var sub = document.createElement('div'); 321 sub.textContent = 'Get the full app experience right on your phone. Takes about 10 seconds, and there is no App Store needed.'; 322 sub.style.cssText = 'font-size:14px;color:#6b7280;line-height:1.45;margin-bottom:18px;'; 323 card.appendChild(sub); 324 325 // Steps 326 var steps = [ 327 { html: 'Tap the Share button ' + SHARE_ICON_SVG + ' in Safari\'s toolbar.' }, 328 { html: 'Scroll down and tap <strong>Add to Home Screen</strong>.' }, 329 { html: 'Tap <strong>Add</strong>, and you are all set.' } 330 ]; 331 steps.forEach(function (step, i) { 332 var row = document.createElement('div'); 333 row.style.cssText = 'display:flex;align-items:flex-start;gap:12px;margin-bottom:14px;'; 334 var num = document.createElement('div'); 335 num.textContent = String(i + 1); 336 num.style.cssText = 337 'flex-shrink:0;width:26px;height:26px;border-radius:50%;' + 338 'background:linear-gradient(135deg,#2cc1d0,#1d4ed8);color:#fff;' + 339 'font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;'; 340 var txt = document.createElement('div'); 341 txt.innerHTML = step.html; 342 txt.style.cssText = 'font-size:14px;color:#1a1a2e;line-height:1.45;padding-top:2px;'; 343 row.appendChild(num); 344 row.appendChild(txt); 345 card.appendChild(row); 346 }); 347 348 // Buttons 349 var btnRow = document.createElement('div'); 350 btnRow.style.cssText = 'display:flex;gap:10px;margin-top:8px;'; 351 352 var gotIt = document.createElement('button'); 353 gotIt.textContent = 'Got it'; 354 gotIt.style.cssText = 355 'flex:1;height:48px;border:none;border-radius:21px;' + 356 'background:linear-gradient(135deg,#7c3aed,#1d4ed8);color:#fff;' + 357 'font-family:Poppins,-apple-system,sans-serif;font-size:15px;font-weight:600;' + 358 'cursor:pointer;-webkit-tap-highlight-color:transparent;'; 359 gotIt.addEventListener('click', dismiss); 360 361 var later = document.createElement('button'); 362 later.textContent = 'Maybe later'; 363 later.style.cssText = 364 'flex-shrink:0;height:48px;padding:0 16px;border:none;border-radius:21px;' + 365 'background:transparent;color:#6b7280;font-size:14px;font-weight:500;' + 366 'cursor:pointer;-webkit-tap-highlight-color:transparent;'; 367 later.addEventListener('click', dismiss); 368 369 btnRow.appendChild(later); 370 btnRow.appendChild(gotIt); 371 card.appendChild(btnRow); 372 373 overlay.appendChild(card); 374 overlay.addEventListener('click', function (e) { 375 if (e.target === overlay) dismiss(); 376 }); 377 document.body.appendChild(overlay); 378 } 379 380 function dismiss() { 381 markDismissed(); 382 var modal = document.getElementById('m2h-pwa-install-modal'); 383 if (modal) modal.remove(); 384 var banner = document.getElementById('m2h-pwa-android-banner'); 385 if (banner) banner.remove(); 386 } 387 388 // ---- Android: lightweight Play Store badge banner (NOT a PWA install prompt) ---- 389 function showAndroidBanner() { 390 if (document.getElementById('m2h-pwa-android-banner')) return; 391 var PLAY_URL = 'https://play.google.com/store/apps/details?id=com.made2homeschool.community'; 392 393 var banner = document.createElement('div'); 394 banner.id = 'm2h-pwa-android-banner'; 395 banner.style.cssText = 396 'position:fixed;left:12px;right:12px;bottom:12px;z-index:1000001;' + 397 'background:linear-gradient(135deg,#1a1a2e 0%,#2cc1d0 160%);color:#fff;' + 398 'border-radius:16px;padding:12px 14px;box-shadow:0 10px 30px rgba(0,0,0,0.25);' + 399 'display:flex;align-items:center;gap:12px;' + 400 'font-family:Montserrat,-apple-system,sans-serif;'; 401 402 var txt = document.createElement('div'); 403 txt.style.cssText = 'flex:1;display:flex;flex-direction:column;'; 404 txt.innerHTML = 405 '<strong style="font-size:14px;font-weight:600;">Get the M2H app</strong>' + 406 '<span style="font-size:12px;opacity:0.85;">Faster than the browser, with notifications.</span>'; 407 408 var cta = document.createElement('a'); 409 cta.href = PLAY_URL; 410 cta.target = '_blank'; 411 cta.rel = 'noopener'; 412 cta.textContent = 'Play Store'; 413 cta.style.cssText = 414 'background:#f87960;color:#fff;text-decoration:none;padding:8px 14px;' + 415 'border-radius:21px;font-weight:600;font-size:13px;flex-shrink:0;'; 416 417 var close = document.createElement('button'); 418 close.textContent = 'Ã'; 419 close.setAttribute('aria-label', 'Dismiss'); 420 close.style.cssText = 421 'background:transparent;border:0;color:#fff;font-size:22px;line-height:1;' + 422 'padding:0 4px;
422cursor:pointer;opacity:0.8;flex-shrink:0;'; 423 close.addEventListener('click', dismiss); 424 425 banner.appendChild(txt); 426 banner.appendChild(cta); 427 banner.appendChild(close); 428 document.body.appendChild(banner); 429 } 430 431 // ---- Route ---- 432 function route() { 433 if (isIOS && isSafari) { 434 showIosModal(); 435 } else if (isAndroid && isChrome) { 436 showAndroidBanner(); 437 } 438 // Desktop / other: nothing. 439 } 440 441 // Small delay so it doesn't slam the user the instant the page paints. 442 if (document.readyState === 'loading') { 443 document.addEventListener('DOMContentLoaded', function () { setTimeout(route, 1500); }); 444 } else { 445 setTimeout(route, 1500); 446 } 447 448 window.M2HPWAInstallModal = { show: showIosModal, showAndroid: showAndroidBanner, dismiss: dismiss }; 449})(); 450</script>
450 451 452<!-- ===== Script 2: scope guard (installed-PWA backstop) ===== -->
453<script> 454/** 455 * M2H PWA â Scope Guard (site-wide backstop) 456 * 457 * Built 2026-05-14. Goes in Kajabi's SITE-WIDE Page Scripts (head). Runs on 458 * every made2homeschool.com page reached by Page Scripts â i.e. everything 459 * EXCEPT the Communities v2 app (the community frame gets the bundle instead, 460 * via the bootstrap). 461 * 462 * Job: if the installed PWA's TOP window ever lands somewhere it should not be, 463 * get it back in scope â 464 * /library -> redirect IN-APP to the Dashboard 465 * marketing / sales -> redirect to /login (which forwards to the community 466 * if the user is already logged in) 467 * It also intercepts taps on out-of-scope links from in-scope-but-site-wide 468 * pages (Partners, My Account) and opens them in the system browser. 469 * 470 * SAFETY: only acts in an installed PWA, only on the TOP window (never reacts 471 * to an iframe's URL), and only redirects to in-scope destinations â so it can 472 * never loop. Does nothing for ordinary browser visits. 473 */ 474(function () { 475 'use strict'; 476 477 if (window.self !== window.top) return; 478 479 if (typeof window.Capacitor !== 'undefined') return; 480 var standalone = window.matchMedia('(display-mode: standalone)').matches || 481 window.navigator.standalone === true; 482 if (!standalone) return; 483 484 if (window.m2hPwaScopeGuardSetup) return; 485 window.m2hPwaScopeGuardSetup = true; 486 487 var DASHBOARD_URL = 'https://www.made2homeschool.com/products/communities/v2/made2homeschool/resource/c89e3743-4a5f-4745-b8b7-e95bbadff0f8'; 488 var LOGIN_URL = 'https://made2homeschool.com/login'; 489 490 function m2hUrlScope(href) { 491 var a; 492 try { a = new URL(href, window.location.href); } catch (e) { return 'external'; } 493 var scheme = (a.protocol || '').toLowerCase(); 494 if (scheme !== 'http:' && scheme !== 'https:') return 'external'; 495 var host = (a.hostname || '').toLowerCase(); 496 var path = (a.pathname || '').toLowerCase(); 497 498 var isM2H = (host.replace(/^www\./, '') === 'made2homeschool.com'); 499 var isKajabi = (host === 'kajabi.com' || host === 'mykajabi.com' || 500 host.indexOf('.kajabi.com') !== -1 || host.indexOf('.mykajabi.com') !== -1); 501 var isWhereby = (host === 'whereby.com' || host.indexOf('.whereby.com') !== -1); 502 var isM2HPages = (host === 'm2h-pwa-icons.pages.dev'); 503 504 if (isM2H) { 505 if (path === '/library' || path.indexOf('/library/') === 0) return 'library'; 506 if (path.indexOf('/products/communities') === 0) return 'community'; 507 if (path.indexOf('/products/premium-partners') === 0) return 'partners'; 508 if (path === '/login' || path.indexOf('/login/') === 0 || path.indexOf('/login') === 0) return 'login'; 509 if (path === '/communityhome') return 'communityhome'; 510 if (path.indexOf('/my_account') !== -1 || path.indexOf('/my-account') !== -1 || 511 path.indexOf('/billing') !== -1) return 'account'; 512 if (path === '/main-page-h2-2025-b' || path === '/main-page-h2-2025-b/') return 'pricing'; 513 if (path.indexOf('/offers/') === 0) return 'allowed'; 514 return 'marketing'; 515 } 516 if (isKajabi) { 517 if (path === '/library' || path.indexOf('/library/') === 0) return 'library'; 518 return 'allowed'; 519 } 520 if (isWhereby) return 'allowed'; 521 if (isM2HPages) return 'allowed'; 522 return 'external'; 523 } 524 525 function enforceLanding() { 526 var scope = m2hUrlScope(window.location.href); 527 if (scope === 'library') { 528 window.location.replace(DASHBOARD_URL); 529 return true; 530 } 531 if (scope === 'marketing' || scope === 'external') { 532 window.location.replace(LOGIN_URL); 533 return true; 534 } 535 return false; 536 } 537 538 function onClickCapture(e) { 539 var node = e.target, anchor = null; 540 while (node && node !== document) { 541 if (node.tagName === 'A' && node.getAttribute('href')) { anchor = node; break; } 542 node = node.parentNode; 543 } 544 if (!anchor) return; 545 if (anchor.getAttribute('data-m2h-skip-scope') === '1') return; 546 var href = anchor.getAttribute('href') || ''; 547 if (!href || href.charAt(0) === '#') return; 548 if (href.toLowerCase().indexOf('javascript:') === 0) return; 549 550 var scope = m2hUrlScope(anchor.href || href); 551 if (scope === 'library') { 552 e.preventDefault(); e.stopPropagation(); 553 window.location.href = DASHBOARD_URL; 554 } else if (scope === 'marketing' || scope === 'external') { 555 e.preventDefault(); e.stopPropagation(); 556 window.open(anchor.href || href, '_blank'); 557 } 558 } 559 560 if (enforceLanding()) return; 561 document.addEventListener('click', onClickCapture, true); 562 563 var lastHref = window.location.href; 564 setInterval(function () { 565 if (window.location.href !== lastHref) { 566 lastHref = window.location.href; 567 enforceLanding(); 568 } 569 }, 600); 570 571 window.M2HPWAScopeGuard = { classify: m2hUrlScope, enforce: enforceLanding }; 572})(); 573</script>
573 574 575<!-- ===== Script 3: upgrade modal (branded no-access screen) ===== -->
576<script> 577/** 578 * M2H Upgrade Modal â PWA / Web injection 579 * 580 * Replaces Kajabi's bare "You don't have permission to access that page" screen 581 * with a clean, branded M2H upgrade overlay with INLINE pricing. Both Premium 582 * and Starter tiers are shown with a Monthly/Annual toggle and direct-to- 583 * checkout buttons -- no marketing pricing page navigation. 584 * 585 * Self-gates to top-frame + installed-PWA. Inline styles only, m2h-pwa- 586 * namespaced, zero CSS rules. 587 */ 588 589(function () { 590 'use strict'; 591 592 if (window.self !== window.top) return; 593 594 if (typeof window.Capacitor !== 'undefined') return; 595 var standalone = window.matchMedia('(display-mode: standalone)').matches || 596 window.navigator.standalone === true; 597 if (!standalone) return; 598 599 if (window.m2hPwaUpgradeSetup) return; 600 window.m2hPwaUpgradeSetup = true; 601 602 var DASHBOARD_URL = 'https://www.made2homeschool.com/products/communities/v2/made2homeschool/resource/c89e3743-4a5f-4745-b8b7-e95bbadff0f8'; 603 604 var CHECKOUT = { 605 premiumMonthly: 'https://www.made2homeschool.com/offers/vunFzGib/checkout', 606 premiumAnnual: 'https://www.made2homeschool.com/offers/7zw8Jkhu/checkout', 607 starterMonthly: 'https://www.made2homeschool.com/offers/yjL2Gkea/checkout', 608 starterAnnual: 'https://www.made2homeschool.com/offers/ZjtYVnhe/checkout' 609 }; 610 611 var PLANS = { 612 premium: { 613 name: 'Premium', 614 monthly: { price: '$19.99', period: '/mo', sub: 'Billed monthly' }, 615 annual: { price: '$16.67', period: '/mo', sub: 'Billed annually at $199.99' }, 616 features: [ 617 'Everything in Starter, plus...', 618 'Weekly live workshops', 619 'Exclusive printables library', 620 'BRAVE & ReFresh recordings', 621 'Premium community circles', 622 'Partner discounts' 623 ] 624 }, 625 starter: { 626 name: 'Starter', 627 monthly: { price: '$13.99', period: '/mo', sub: 'Billed monthly' }, 628 annual: { price: '$11.67', period: '/mo', sub: 'Billed annually at $139.99' }, 629 features: [ 630 'Everything in Free, plus...', 631 '2 live workshops / month', 632 'Expert articles & videos', 633 'Partner discounts', 634 'Starter circles' 635 ] 636 } 637 }; 638 639 var DENIED_PHRASES = [ 640 "you don't have permission to access that page", 641 "you don't have permission to view", 642 "you do not have permission to view", 643 "you are not authorized to view", 644 "you're not authorized to view", 645 "this content is for members", 646 "this content is restricted", 647 "purchase to gain access", 648 "buy now to unlock" 649 ]; 650 651 function phraseMatches(raw) { 652 if (!raw) return false; 653 var t = raw.toLowerCase() 654 .replace(/[ââʼ]/g, "'") 655 .replace(/[ââ]/g, '"'); 656 for (var i = 0; i < DENIED_PHRASES.length; i++) { 657 if (t.indexOf(DENIED_PHRASES[i]) !== -1) return true; 658 } 659 return false; 660 } 661 662 function isNoAccessPage() { 663 if (phraseMatches((document.body && document.body.innerText) || '')) return true; 664 var iframes = document.querySelectorAll('iframe'); 665 for (var i = 0; i < iframes.length; i++) { 666 try { 667 var doc = iframes[i].contentDocument; 668 if (!doc || !doc.body) continue; 669 if (phraseMatches(doc.body.innerText || '')) return true; 670 var inner = doc.querySelectorAll('iframe'); 671 for (var j = 0; j < inner.length; j++) { 672 try { 673 var idoc = inner[j].contentDocument; 674 if (idoc && idoc.body && phraseMatches(idoc.body.innerText || '')) return true; 675 } catch (e2) { /* cross-origin */ } 676 } 677 } catch (e) { /* cross-origin */ } 678 } 679 return false; 680 } 681 682 function showUpgradeOverlay() { 683 if (document.getElementById('m2h-pwa-upgrade-overlay')) return; 684 685 var billingState = 'annual'; 686 687 // Overlay z-index is set ABOVE the bottom nav (999999) so the modal 688 // covers everything -- no side-by-side squish with the Live Room button 689 // or any sidebar that happens to be open. 690 var overlay = document.createElement('div'); 691 overlay.id = 'm2h-pwa-upgrade-overlay'; 692 overlay.style.cssText = 693 'position:fixed;top:0;left:0;right:0;bottom:0;z-index:2147483646;' + 694 'background:rgba(15,30,50,0.72);' + 695 '-webkit-backdrop-filter:blur(16px) saturate(120%);' + 696 'backdrop-filter:blur(16px) saturate(120%);' + 697 'display:flex;align-items:flex-start;justify-content:center;' + 698 'padding:14px 12px;box-sizing:border-box;overflow-y:auto;' + 699 '-webkit-overflow-scrolling:touch;' + 700 'font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif;'; 701 702 var card = document.createElement('div'); 703 card.style.cssText = 704 'background:#ffffff;width:100%;max-width:360px;border-radius:20px;' + 705 'padding:22px 18px 16px;box-sizing:border-box;text-align:center;' + 706 'box-shadow:0 24px 60px rgba(0,30,60,0.45),0 4px 12px rgba(0,0,0,0.12);' + 707 'border:1px solid rgba(44,193,208,0.18);' + 708 'margin:6px 0 12px;position:relative;overflow:hidden;'; 709 710 var accent = document.createElement('div'); 711 accent.style.cssText = 712 'position:absolute;top:0;left:0;right:0;height:4px;' + 713 'background:linear-gradient(90deg,#2cc1d0,#005f73,#1a3a5c);'; 714 card.appendChild(accent); 715 716 var h = document.createElement('div'); 717 h.textContent = 'Choose your support level'; 718 h.style.cssText = 719 'font-family:Poppins,-apple-system,BlinkMacSystemFont,sans-serif;' + 720 'font-size:17px;font-weight:700;
720color:#1a3a5c;line-height:1.25;' + 721 'letter-spacing:-0.2px;margin:6px 0 4px;padding:0 4px;'; 722 card.appendChild(h); 723 724 var sub = document.createElement('div'); 725 sub.textContent = 'Upgrade anytime. Cancel whenever.'; 726 sub.style.cssText = 727 'font-size:12px;color:#6b7280;line-height:1.4;margin-bottom:14px;'; 728 card.appendChild(sub); 729 730 var toggleWrap = document.createElement('div'); 731 toggleWrap.style.cssText = 732 'display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:14px;'; 733 734 function labelStyle(active) { 735 return 'font-size:12px;font-weight:' + (active ? '700' : '600') + ';' + 736 'color:' + (active ? '#1a3a5c' : '#9ca3af') + ';' + 737 '-webkit-tap-highlight-color:transparent;cursor:pointer;'; 738 } 739 var monthlyLabel = document.createElement('span'); 740 monthlyLabel.textContent = 'Monthly'; 741 var annualLabel = document.createElement('span'); 742 annualLabel.textContent = 'Annual'; 743 744 var toggle = document.createElement('div'); 745 toggle.style.cssText = 746 'position:relative;width:42px;height:22px;border-radius:11px;' + 747 'background:#2cc1d0;cursor:pointer;-webkit-tap-highlight-color:transparent;' + 748 'transition:background 0.2s;flex:none;'; 749 var knob = document.createElement('div'); 750 knob.style.cssText = 751 'position:absolute;top:2px;left:2px;width:18px;height:18px;' + 752 'border-radius:50%;background:#ffffff;' + 753 'box-shadow:0 1px 3px rgba(0,0,0,0.25);transition:left 0.2s;'; 754 toggle.appendChild(knob); 755 756 var saveBadge = document.createElement('span'); 757 saveBadge.textContent = 'Save 17%'; 758 saveBadge.style.cssText = 759 'display:inline-block;padding:2px 8px;border-radius:12px;' + 760 'background:linear-gradient(135deg,#f87960,#e0524d);' + 761 'color:#ffffff;font-size:10px;font-weight:700;letter-spacing:0.3px;margin-left:2px;'; 762 763 toggleWrap.appendChild(monthlyLabel); 764 toggleWrap.appendChild(toggle); 765 toggleWrap.appendChild(annualLabel); 766 toggleWrap.appendChild(saveBadge); 767 card.appendChild(toggleWrap); 768 769 var plansWrap = document.createElement('div'); 770 plansWrap.style.cssText = 'display:flex;flex-direction:column;gap:12px;text-align:left;'; 771 card.appendChild(plansWrap); 772 773 function buildPlanCard(planKey, featured) { 774 var wrap = document.createElement('div'); 775 wrap.setAttribute('data-m2h-plan', planKey); 776 wrap.style.cssText = 777 'position:relative;border-radius:16px;padding:' + 778 (featured ? '18px 14px 14px' : '14px 14px 12px') + ';' + 779 'background:' + (featured ? '#ffffff' : '#f4f6fa') + ';' + 780 'border:' + (featured ? '2px solid #f87960' : '1px solid rgba(26,58,92,0.10)') + ';' + 781 (featured ? 'box-shadow:0 8px 22px rgba(248,121,96,0.16);' : ''); 782 783 if (featured) { 784 var badge = document.createElement('div'); 785 badge.textContent = 'BEST VALUE'; 786 badge.style.cssText = 787 'position:absolute;top:-10px;left:50%;transform:translateX(-50%);' + 788 'background:linear-gradient(135deg,#f87960,#e0524d);color:#ffffff;' + 789 'font-family:Poppins,-apple-system,sans-serif;font-size:9px;' + 790 'font-weight:700;letter-spacing:0.8px;padding:4px 12px;border-radius:10px;' + 791 'box-shadow:0 3px 8px rgba(248,121,96,0.35);white-space:nowrap;'; 792 wrap.appendChild(badge); 793 } 794 795 var name = document.createElement('div'); 796 name.textContent = PLANS[planKey].name; 797 name.style.cssText = 798 'font-family:Poppins,-apple-system,sans-serif;font-size:16px;' + 799 'font-weight:700;color:#1a3a5c;text-align:center;margin-bottom:4px;'; 800 wrap.appendChild(name); 801 802 var priceRow = document.createElement('div'); 803 priceRow.style.cssText = 'text-align:center;margin-bottom:10px;'; 804 var priceMain = document.createElement('div'); 805 priceMain.setAttribute('data-m2h-price', '1'); 806 var priceSub = document.createElement('div'); 807 priceSub.setAttribute('data-m2h-pricesub', '1'); 808 priceSub.style.cssText = 'font-size:10px;color:#6b7280;margin-top:1px;'; 809 priceRow.appendChild(priceMain);
810 priceRow.appendChild(priceSub); 811 wrap.appendChild(priceRow); 812 813 var ul = document.createElement('div'); 814 ul.style.cssText = 'margin-bottom:10px;'; 815 PLANS[planKey].features.forEach(function (f) { 816 var row = document.createElement('div'); 817 row.style.cssText = 818 'display:flex;align-items:flex-start;gap:6px;font-size:12px;' + 819 'color:#374151;line-height:1.4;margin-bottom:4px;'; 820 var check = document.createElement('span'); 821 check.innerHTML = 822 '<svg viewBox="0 0 16 16" style="width:12px;height:12px;flex:none;margin-top:2px;">' + 823 '<path d="M3 8.5l3 3 7-7" stroke="#10b981" stroke-width="2.2" fill="none" stroke-linecap="round" stroke-linejoin="round"/>' + 824 '</svg>'; 825 var txt = document.createElement('span'); 826 txt.textContent = f; 827 row.appendChild(check); 828 row.appendChild(txt); 829 ul.appendChild(row); 830 }); 831 wrap.appendChild(ul); 832 833 var cta = document.createElement('a'); 834 cta.setAttribute('data-m2h-cta', planKey); 835 cta.setAttribute('data-m2h-skip-scope', '1'); 836 cta.textContent = 'Get ' + PLANS[planKey].name; 837 cta.style.cssText = 838 'display:block;width:100%;box-sizing:border-box;padding:11px 14px;' + 839 'border-radius:11px;text-decoration:none;text-align:center;' + 840 'font-family:Poppins,-apple-system,sans-serif;font-size:13px;font-weight:700;' + 841 'letter-spacing:0.3px;-webkit-tap-highlight-color:transparent;' + 842 (featured 843 ? 'background:linear-gradient(135deg,#f87960 0%,#1d4ed8 100%);' + 844 'color:#ffffff;box-shadow:0 6px 18px rgba(29,78,216,0.24);' 845 : 'background:#ffffff;color:#1a3a5c;' + 846 'border:1.5px solid rgba(26,58,92,0.18);'); 847 wrap.appendChild(cta); 848 849 return wrap; 850 } 851 852 plansWrap.appendChild(buildPlanCard('premium', true)); 853 plansWrap.appendChild(buildPlanCard('starter', false)); 854 855 function renderPricing() { 856 monthlyLabel.style.cssText = labelStyle(billingState === 'monthly'); 857 annualLabel.style.cssText = labelStyle(billingState === 'annual'); 858 toggle.style.background = billingState === 'annual' ? '#2cc1d0' : '#cbd5e0'; 859 knob.style.left = billingState === 'annual' ? '22px' : '2px'; 860 861 [['premium', CHECKOUT.premiumMonthly, CHECKOUT.premiumAnnual], 862 ['starter', CHECKOUT.starterMonthly, CHECKOUT.starterAnnual]].forEach(function (p) { 863 var key = p[0]; 864 var planEl = plansWrap.querySelector('[data-m2h-plan="' + key + '"]'); 865 if (!planEl) return; 866 var data = PLANS[key][billingState]; 867 var priceEl = planEl.querySelector('[data-m2h-price]'); 868 var priceSubEl = planEl.querySelector('[data-m2h-pricesub]'); 869 priceEl.innerHTML = 870 '<span style="font-family:Poppins,-apple-system,sans-serif;font-size:26px;' + 871 'font-weight:800;color:#005f73;letter-spacing:-1px;">' + data.price + '</span>' + 872 '<span style="font-size:12px;color:#005f73;font-weight:600;margin-left:2px;">' + 873 data.period + '</span>'; 874 priceSubEl.textContent = data.sub; 875 var ctaEl = planEl.querySelector('[data-m2h-cta="' + key + '"]'); 876 if (ctaEl) ctaEl.href = billingState === 'annual' ? p[2] : p[1]; 877 }); 878 } 879 function flipBilling() { 880 billingState = (billingState === 'annual') ? 'monthly' : 'annual'; 881 renderPricing(); 882 } 883 toggle.addEventListener('click', flipBilling); 884 monthlyLabel.addEventListener('click', function () { billingState = 'monthly'; renderPricing(); }); 885 annualLabel.addEventListener('click', function () { billingState = 'annual'; renderPricing(); }); 886 887 renderPricing(); 888 889 var backBtn = document.createElement('a'); 890 backBtn.href = DASHBOARD_URL; 891 backBtn.textContent = 'Back to Dashboard'; 892 backBtn.style.cssText = 893 'display:block;width:100%;box-sizing:border-box;padding:10px 8px 2px;' + 894 'color:#2cc1d0;text-decoration:none;font-size:12px;font-weight:600;' + 895 'text-align:center;-webkit-tap-highlight-color:transparent;margin-top:4px;'; 896 backBtn.addEventListener('click', function (e) { 897 e.preventDefault(); 898 e.stopPropagation(); 899 window.location.href = DASHBOARD_URL; 900 });
901 card.appendChild(backBtn); 902 903 overlay.appendChild(card); 904 document.body.appendChild(overlay); 905 } 906 907 function removeUpgradeOverlay() { 908 var el = document.getElementById('m2h-pwa-upgrade-overlay'); 909 if (el) el.remove(); 910 } 911 912 function sync() { 913 if (isNoAccessPage()) { 914 showUpgradeOverlay(); 915 } else { 916 removeUpgradeOverlay(); 917 } 918 } 919 920 if (document.readyState === 'loading') { 921 document.addEventListener('DOMContentLoaded', sync); 922 } else { 923 sync(); 924 } 925 setInterval(sync, 500); 926 927 window.M2HPWAUpgradeModal = { check: isNoAccessPage, show: showUpgradeOverlay, hide: removeUpgradeOverlay }; 928})(); 929</script>
929 930 931<!-- ===== Script 4: bottom nav bar (site-wide, persists on checkout/offers) ===== --> 932<!-- The nav bar code also runs from the bundle on community pages -- the 933 setup-flag guard inside the IIFE prevents double-init when both copies 934 execute. On non-community pages (checkout, offers, marketing), only 935 this head copy runs; on community pages the bundle copy reinforces it 936 after SPA route changes. See _rebuild_v620.py for full rationale. -->
937<script> 938/** 939 * M2H Bottom Navigation Bar â PWA / Web injection (v3) 940 * 941 * Ported from: M2HViewController.swift -> getNavBarInjectionJS() (April 30 / Build 20 source) 942 */ 943 944(function () { 945 'use strict'; 946 947 if (window.self !== window.top) return; 948 949 // Setup guard: nav bar code lives in TWO places -- the bundle (which the 950 // iframe-bootstrap injects into the top window when the user is on a 951 // community page) AND the site-wide head block (which runs on every 952 // made2homeschool.com page so the nav bar persists on checkout, offers, 953 // post-purchase, and any other non-community PWA pages). On community pages 954 // both copies would otherwise execute; this flag ensures only the first one 955 // wires up the build/observer/poll. Order doesn't matter -- whichever runs 956 // first wins, the other no-ops cleanly. 957 if (window.m2hPwaNavSetup) return; 958 window.m2hPwaNavSetup = true; 959 960 function isM2HPWASession() { 961 if (typeof window.Capacitor !== 'undefined') return false; 962 var standalone = 963 window.matchMedia('(display-mode: standalone)').matches || 964 window.navigator.standalone === true; 965 return standalone; 966 } 967 if (!isM2HPWASession()) return; 968 969 var URLS = { 970 feed: 'https://www.made2homeschool.com/products/communities/v2/made2homeschool/home', 971 live: 'https://www.made2homeschool.com/products/communities/v2/made2homeschool/liveevents', 972 dashboard: 'https://www.made2homeschool.com/products/communities/v2/made2homeschool/resource/c89e3743-4a5f-4745-b8b7-e95bbadff0f8', 973 partners: 'https://made2homeschool.com/products/premium-partners', 974 profile: 'https://www.made2homeschool.com/products/communities/v2/made2homeschool/profile' 975 }; 976 var DASHBOARD_UUID = 'c89e3743-4a5f-4745-b8b7-e95bbadff0f8'; 977 978 var COMMUNITY_LINK_MATCHERS = { 979 feed: '/home', 980 live: '/liveevents', 981 dashboard: DASHBOARD_UUID, 982 profile: '/profile' 983 }; 984 985 var COLOR_ACTIVE = '#f87960'; 986 var COLOR_INACTIVE = '#6b7280'; 987 988 var ICONS = { 989 comments: { vb: '0 0 640 512', d: 'M88.2 309.1c9.8-18.3 6.8-40.8-7.5-55.8C59.4 230.9 48 204 48 176c0-63.5 63.8-128 160-128s160 64.5 160 128s-63.8 128-160 128c-13.1 0-25.8-1.3-37.8-3.6c-10.4-2-21.2-.6-30.7 4.2c-4.1 2.1-8.3 4.1-12.6 6c-16 7.2-32.9 13.5-49.9 18c2.8-4.6 5.4-9.1 7.9-13.6c1.1-1.9 2.2-3.9 3.2-5.9zM0 176c0 41.8 17.2 80.1 45.9 110.3c-.9 1.7-1.9 3.5-2.8 5.1c-10.3 18.4-22.3 36.5-36.6 52.1c-6.6 7-8.3 17.2-4.6 25.9C5.8 378.3 14.4 384 24 384c43 0 86.5-13.3 122.7-29.7c4.8-2.2 9.6-4.5 14.2-6.8c15.1 3 30.9 4.5 47.1 4.5c114.9 0 208-78.8 208-176S322.9 0 208 0S0 78.8 0 176zM432 480c16.2 0 31.9-1.6 47.1-4.5c4.6 2.3 9.4 4.6 14.2 6.8C529.5 498.7 573 512 616 512c9.6 0 18.2-5.7 22-14.5c3.8-8.8 2-19-4.6-25.9c-14.2-15.6-26.2-33.7-36.6-52.1c-.9-1.7-1.9-3.4-2.8-5.1C622.8 384.1 640 345.8 640 304c0-94.4-87.9-171.5-198.2-175.8c4.1 15.2 6.2 31.2 6.2 47.8l0 .6c87.2 6.7 144 67.5 144 127.4c0 28-11.4 54.9-32.7 77.2c-14.3 15-17.3 37.6-7.5 55.8c1.1 2 2.2 4 3.2 5.9c2.5 4.5 5.2 9 7.9 13.6c-17-4.5-33.9-10.7-49.9-18c-4.3-1.9-8.5-3.9-12.6-6c-9.5-4.8-20.3-6.2-30.7-4.2c-12.1 2.4-24.7 3.6-37.8 3.6c-61.7 0-110-26.5-136.8-62.3c-16 5.4-32.8 9.4-50 11.8C279 439.8 350 480 432 480z' }, 990 video: { vb: '0 0 576 512', d: 'M0 128C0 92.7 28.7 64 64 64H320c35.3 0 64 28.7 64 64V384c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128zM559.1 99.8c10.4 5.6 16.9 16.4 16.9 28.2V384c0 11.8-6.5 22.6-16.9 28.2s-23 5-32.9-1.6l-96-64L416 337.1V320 192 174.9l14.2-9.5 96-64c9.8-6.5 22.4-7.2 32.9-1.6z' }, 991 house: { vb: '0 0 576 512', d: 'M575.8 255.5c0 18-15 32.1-32 32.1h-32l.7 160.2c0 2.7-.2 5.4-.5 8.1V472c0 22.1-17.9 40-40 40H456c-1.1 0-2.2 0-3.3-.1c-1.4 .1-2.8 .1-4.2 .1H416 392c-22.1 0-40-17.9-40-40V448 384c0-17.7-14.3-32-32-32H256c-17.7 0-32 14.3-32 32v64 24c0 22.1-17.9 40-40 40H160 128.1c-1.5 0-3-.1-4.5-.2c-1.2 .1-2.4 .2-3.6 .2H104c-22.1 0-40-17.9-40-40V360c0-.9 0-1.9 .1-2.8V287.6H32c-18 0-32-14-32-32.1c0-9 3-17 10-24L266.4 8c7-7 15-8 22-8s15 2 21 7L564.8 231.5c8 7 12 15 11 24z' }, 992 tags: { vb: '0 0 512 512', d: 'M345 39.1L472.8 168.4c52.4 53 52.4 138.2 0 191.2L360.8 472.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L438.6 325.9c33.9-34.3 33.9-89.4
9920-123.7L310.9 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM0 229.5V80C0 53.5 21.5 32 48 32H197.5c17 0 33.3 6.7 45.3 18.7l168 168c25 25 25 65.5 0 90.5L277.3 442.7c-25 25-65.5 25-90.5 0l-168-168C6.7 262.7 0 246.5 0 229.5zM144 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z' }, 993 circleUser: { vb: '0 0 512 512', d: 'M399 384.2C376.9 345.8 335.4 320 288 320H224c-47.4 0-88.9 25.8-111 64.2c35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z' } 994 }; 995 996 function svgIcon(iconKey, sizePx) { 997 var ic = ICONS[iconKey]; 998 return '<svg viewBox="' + ic.vb + '" aria-hidden="true" ' + 999 'style="height:' + sizePx + 'px;width:auto;display:block;margin-bottom:3px;' + 1000 'fill:currentColor;">' + 1001 '<path d="' + ic.d + '"></path></svg>'; 1002 } 1003 1004 var TABS = [ 1005 { key: 'feed', icon: 'comments', label: 'Feed', home: false }, 1006 { key: 'live', icon: 'video', label: 'Live Events', home: false }, 1007 { key: 'dashboard', icon: 'house', label: 'Dashboard', home: true }, 1008 { key: 'partners', icon: 'tags', label: 'Partners', home: false }, 1009 { key: 'profile', icon: 'circleUser', label: 'Profile', home: false } 1010 ]; 1011 1012 function shouldShowNavBar() { 1013 var url = window.location.href.toLowerCase(); 1014 if (url.indexOf('/login') !== -1) return false; 1015 if (window.innerWidth >= 1024) return false; 1016 return url.indexOf('made2homeschool.com') !== -1 || url.indexOf('mykajabi.com') !== -1; 1017 } 1018 1019 function getActiveItem() { 1020 var url = window.location.href; 1021 if (url.indexOf('/home') !== -1) return 'feed'; 1022 if (url.indexOf('/liveevents') !== -1) return 'live'; 1023 if (url.indexOf(DASHBOARD_UUID) !== -1) return 'dashboard'; 1024 if (url.indexOf('premium-partners') !== -1) return 'partners'; 1025 if (url.indexOf('/profile') !== -1) return 'profile'; 1026 return 'dashboard'; 1027 } 1028 1029 function findCommunityNavLink(targetKey) { 1030 var frag; 1031 if (targetKey === 'partners') { 1032 frag = 'premium-partners'; 1033 } else { 1034 frag = COMMUNITY_LINK_MATCHERS[targetKey]; 1035 } 1036 if (!frag) return null; 1037 function searchDoc(doc) { 1038 var links = doc.querySelectorAll('a[href*="' + frag + '"]'); 1039 for (var i = 0; i < links.length; i++) { 1040 if (links[i].closest && links[i].closest('#m2h-pwa-bottom-nav')) continue; 1041 return links[i]; 1042 } 1043 var iframes = doc.querySelectorAll('iframe'); 1044 for (var j = 0; j < iframes.length; j++) { 1045 try { 1046 var idoc = iframes[j].contentDocument; 1047 if (!idoc) continue; 1048 var hit = searchDoc(idoc); 1049 if (hit) return hit; 1050 } catch (e) { /* cross-origin */ } 1051 } 1052 return null; 1053 } 1054 return searchDoc(document); 1055 } 1056 1057 var m2hNavigating = false; 1058 function m2hNav(targetKey, event) { 1059 if (event) { event.preventDefault(); event.stopPropagation(); } 1060 if (m2hNavigating) return false; 1061 m2hNavigating = true; 1062 setTimeout(function () { m2hNavigating = false; }, 1000); 1063 1064 var startUrl = window.location.href; 1065 1066 var communityLink = findCommunityNavLink(targetKey); 1067 if (communityLink) { 1068 try { 1069 communityLink.click(); 1070 // For Partners: the dashboard pill navigates the IFRAME, not the top 1071 // window. The top URL will not change -- that is expected. Do NOT fall 1072 // back to hard-nav for partners. For other tabs (community SPA pages), 1073 // if the SPA router silently failed, fall back to hard nav. 1074 if (targetKey !== 'partners') { 1075 setTimeout(function () { 1076 if (window.location.href === startUrl) { 1077 window.location.href = URLS[targetKey]; 1078 } 1079 }, 600); 1080 } 1081 return false; 1082 } catch (e) { /* fall through to hard nav */ } 1083 } 1084 1085 window.location.href = URLS[targetKey]; 1086 return false; 1087 } 1088 1089 function navItemStyle(isActive, isHome) { 1090 var color = isActive ? COLOR_ACTIVE : COLOR_INACTIVE; 1091 return 'display:flex;flex-direction:column;align-items:center;justify-content:center;' + 1092 'text-decoration:none;color:' + color + ';font-size:9px;' + 1093 'font-weight:' + (isHome ? '600' : '500') + ';padding:6px 10px;' + 1094 '-webkit-tap-highlight-color:transparent;cursor:pointer;'; 1095 } 1096 function iconSizeFor(isHome) { return isHome ? 24 : 18; } 1097 1098 function buildNavBar() { 1099 var activeItem = getActiveItem(); 1100 1101 var nav = document.createElement('div'); 1102 nav.id = 'm2h-pwa-bottom-nav'; 1103 nav.style.cssText = 1104 'position:fixed;bottom:0;left:0;right:0;height:60px;background:#ffffff;' + 1105 'display:flex;justify-content:space-around;align-items:center;' + 1106 'box-shadow:0 -2px 10px rgba(0,0,0,0.15);z-index:999999;' + 1107 'padding-bottom:env(safe-area-inset-bottom,0);' + 1108 'font-family:Montserrat,-apple-system,BlinkMacSystemFont,sans-serif;'; 1109 1110 TABS.forEach(function (tab) { 1111 var isActive = (tab.key === activeItem); 1112 var item = document.createElement('div'); 1113 item.className = 'm2h-pwa-nav-item'; 1114 item.setAttribute('data-m2h-pwa-target', tab.key); 1115 item.setAttribute('data-m2h-pwa-home', tab.home ? '1' : '0'); 1116 item.style.cssText = navItemStyle(isActive, tab.home); 1117 item.innerHTML = 1118 svgIcon(tab.icon, iconSizeFor(tab.home)) + 1119 '<span>' + tab.label + '</span>'; 1120 nav.appendChild(item); 1121 });
1122 1123 nav.addEventListener('click', function (e) { 1124 var item = e.target.closest('.m2h-pwa-nav-item'); 1125 if (!item) return; 1126 var target = item.getAttribute('data-m2h-pwa-target'); 1127 if (target) m2hNav(target, e); 1128 }); 1129 1130 document.body.appendChild(nav); 1131 1132 if (!document.getElementById('m2h-pwa-nav-spacer')) { 1133 var spacer = document.createElement('div'); 1134 spacer.id = 'm2h-pwa-nav-spacer'; 1135 spacer.style.cssText = 'height:70px;width:100%;flex-shrink:0;'; 1136 document.body.appendChild(spacer); 1137 } 1138 1139 document.querySelectorAll('[class*="h-[calc(100vh"]').forEach(function (el) { 1140 el.setAttribute('data-m2h-pwa-height-adjusted', '1'); 1141 el.style.height = 'calc(100vh - 134px)'; 1142 }); 1143 } 1144 1145 function updateActiveNav() { 1146 var active = getActiveItem(); 1147 var items = document.querySelectorAll('#m2h-pwa-bottom-nav .m2h-pwa-nav-item'); 1148 items.forEach(function (item) { 1149 var isActive = (item.getAttribute('data-m2h-pwa-target') === active); 1150 var isHome = item.getAttribute('data-m2h-pwa-home') === '1'; 1151 item.style.cssText = navItemStyle(isActive, isHome); 1152 }); 1153 } 1154 1155 function removeNavBar() { 1156 var nav = document.getElementById('m2h-pwa-bottom-nav'); 1157 if (nav) nav.remove(); 1158 var spacer = document.getElementById('m2h-pwa-nav-spacer'); 1159 if (spacer) spacer.remove(); 1160 document.querySelectorAll('[data-m2h-pwa-height-adjusted="1"]').forEach(function (el) { 1161 el.style.height = ''; 1162 el.removeAttribute('data-m2h-pwa-height-adjusted'); 1163 }); 1164 } 1165 1166 var lastUrl = ''; 1167 function tick() { 1168 var currentUrl = window.location.href; 1169 if (currentUrl !== lastUrl) { 1170 lastUrl = currentUrl; 1171 var existing = document.getElementById('m2h-pwa-bottom-nav'); 1172 var shouldShow = shouldShowNavBar(); 1173 if (shouldShow && !existing) { 1174 buildNavBar(); 1175 } else if (!shouldShow && existing) { 1176 removeNavBar(); 1177 } else if (shouldShow && existing) { 1178 updateActiveNav(); 1179 } 1180 } 1181 } 1182 1183 function init() { 1184 lastUrl = window.location.href; 1185 if (shouldShowNavBar() && !document.getElementById('m2h-pwa-bottom-nav')) { 1186 buildNavBar(); 1187 } 1188 setInterval(tick, 500); 1189 1190 var reAddObserver = new MutationObserver(function () { 1191 if (shouldShowNavBar() && !document.getElementById('m2h-pwa-bottom-nav')) { 1192 buildNavBar(); 1193 } 1194 }); 1195 reAddObserver.observe(document.body, { childList: true }); 1196 } 1197 1198 if (document.readyState === 'loading') { 1199 document.addEventListener('DOMContentLoaded', init); 1200 } else { 1201 init(); 1202 } 1203 1204 window.M2HPWANavBar = { 1205 show: buildNavBar, 1206 hide: removeNavBar, 1207 update: updateActiveNav, 1208 nav: m2hNav, 1209 findCommunityLink: findCommunityNavLink, 1210 URLS: URLS 1211 }; 1212})(); 1213</script>
1213 1214 1215<!-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 1216 M2H COMMUNITY ENTRY REDIRECT (paste into Kajabi â Settings â Site â Head Code, 1217 alongside the existing M2H sections; it is self-contained). 1218 1219 WHAT IT DOES (v3): when a member lands on the raw community, it sends them to the 1220 flash-free wrapper (/wrapper-test). It runs in whatever frame Kajabi executes head code 1221 in (on Vibely community pages that is a NESTED same-origin iframe, like Section 4) and 1222 steers window.top. LOOP GUARD: it only steers when window.top is on the raw community 1223 path -- inside the wrapper, window.top is /wrapper-test, so it never re-redirects. 1224 1225 ROLLOUT: 1226 ⢠Staged (now): REDIRECT_ALL = false â ONLY testers are redirected. Regular members 1227 are untouched and keep seeing the community exactly as today. Safe to leave live. 1228 ⢠GO LIVE: set REDIRECT_ALL = true. â ï¸ TURN THE WRAPPER GATE OFF *FIRST* 1229 (community-wrapper-kajabi-shell.html â REQUIRE_GATE = false), otherwise members get 1230 redirected into a still-gated wrapper and hit the "in testing" wall. 1231 ⢠ROLLBACK: set REDIRECT_ALL = false and re-paste â members instantly stop being 1232 redirected and are back on the original community. One paste, fully reverts. 1233 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -->
1234<script> 1235(function () { 1236 var REDIRECT_ALL = true; /* â FLIP TO true TO GO LIVE TO ALL MEMBERS (wrapper gate OFF first) */ 1237 var WRAPPER = 'https://www.made2homeschool.com/community'; 1238 var COMM = '/products/communities/v2/made2homeschool'; 1239 try { 1240 /* v3 (2026-07-05). WHY: on the Vibely community pages Kajabi runs this head code (and defines 1241 window.Kajabi.currentSiteUser) only inside a NESTED same-origin iframe -- NOT at the top 1242 window. Section 4 (the restyle bootstrap) has always worked by running in that nested frame 1243 and reaching UP into window.top; v1/v2 of this snippet waited at the top and never executed 1244 there, so the redirect never fired (live tests 1+2 failed this way). v3 does what Section 4 1245 does: run in WHATEVER context Kajabi gives us and steer window.top from there. 1246 LOOP GUARD is now structural: we only steer when window.top is on the RAW community path. 1247 Inside the wrapper, window.top is /wrapper-test -> the check fails -> never re-redirects. */ 1248 try { if (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches) return; } catch (e) {} /* installed app (PWA) keeps its own experience */ 1249 var T = window.top, tl; 1250 try { tl = T.location; if (!tl || typeof tl.pathname !== 'string') return; } catch (e) { return; } /* cross-origin top -> not our page */ 1251 if ((tl.pathname || '').indexOf(COMM) === -1) return; /* top isn't the raw community (e.g. it's the wrapper) -> do nothing */ 1252 /* DEEP-LINK PASSTHROUGH: carry the community sub-path + query + hash (a post link, a 1253 #comment-id from a notification email) so the wrapper opens the RIGHT place, not just home. */ 1254 function go() { 1255 var to = tl.pathname + (tl.search || '') + (tl.hash || ''); 1256 var url = WRAPPER + '?to=' + encodeURIComponent(to); 1257 try { T.location.replace(url); } catch (e) { try { T.location.href = url; } catch (e2) {} } 1258 } 1259 if (REDIRECT_ALL) { go(); return; } /* go-live: everyone redirects instantly, no identity wait */ 1260 /* STAGED (tester-only): the Kajabi identity global may resolve a beat after this runs, so 1261 re-check every 250ms up to ~5s. localStorage m2h_mask='1' still works as a manual override 1262 (same-origin nested frame shares the site's localStorage). */ 1263 var TESTERS = ['2147690634', '2190285758']; /* Brandon, Katie */ 1264 function isTester() { 1265 try { if (localStorage.getItem('m2h_mask') === '1') return true; } catch (e) {} 1266 var uid = (window.Kajabi && window.Kajabi.currentSiteUser && window.Kajabi.currentSiteUser.id) || ''; 1267 uid = String(uid).replace(/^Member\//, '').replace(/^User\//, '');
1268 return TESTERS.indexOf(uid) !== -1; 1269 } 1270 var tries = 0; 1271 (function check() { 1272 if (isTester()) { go(); return; } 1273 if (window.Kajabi && window.Kajabi.currentSiteUser) return; /* id resolved + not a tester -> leave them alone */ 1274 if (++tries > 20) return; /* ~5s, then give up quietly */ 1275 setTimeout(check, 250); 1276 })(); 1277 } catch (e) {} 1278})(); 1279</script>
1279 1280 1281<!-- ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 1282 SECTION 4 â â M2H VIBELY SPA BOOTSTRAP â TESTER-GATED â 1283 This is the member-ID gate on the restyle: only TESTERS get the reskin 1284 when they hit the community directly. It injects vibely-restyle.css?v=6 1285 + vibely-runtime.js?v=6 from the Cloudflare worker into window.top. 1286 (The community-wrapper-kajabi-shell.html landing page is the SECOND, 1287 separate tester-gated injection path â same files.) 1288 ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ -->
1289<script> 1290(function () { 1291 var TESTERS = ['2147690634', '2190285758']; // Brandon, Katie (community ids) 1292 // shared tester check: honor the m2h_mask flag (like the wrapper) AND the id 1293 // list with the User/Member prefix stripped (normId). This is the fix for the 1294 // 2026-06-28 /dashboard-test 404: the old gate ignored m2h_mask and compared a 1295 // prefixed/landing-page id against bare community ids, so it bounced testers. 1296 function m2hIsTester() { 1297 try { if (localStorage.getItem('m2h_mask') === '1') return true; } catch (e) {} 1298 var uid = (window.Kajabi && window.Kajabi.currentSiteUser && window.Kajabi.currentSiteUser.id) || ''; 1299 uid = String(uid).replace(/^Member\//, '').replace(/^User\//, ''); 1300 return TESTERS.indexOf(uid) !== -1; 1301 } 1302 // (a) Redirect non-testers away from /dashboard-test (to the community home, 1303 // NOT the old '/dashboard' which is a 404). 1304 if (location.pathname === '/dashboard-test' || location.pathname === '/dashboard-test/') { 1305 if (!m2hIsTester()) { 1306 location.replace('/products/communities/v2/made2homeschool/'); 1307 return; 1308 } 1309 } 1310 1311 // (b) Vibely SPA chunky restyle bootstrap (existing) 1312 if (window === window.top) return; 1313 try { 1314 if (!/\/products\/communities\/v2\//.test(window.top.location.pathname)) return; 1315 } catch (e) { return; } 1316 var uid2 = (window.Kajabi && window.Kajabi.currentSiteUser && window.Kajabi.currentSiteUser.id) || ''; 1317 if (TESTERS.indexOf(String(uid2)) === -1) return; 1318 var d = window.top.document; 1319 if (d.querySelector('[data-m2h-vibely-bootstrap]')) return; 1320 var V = 'v=6'; 1321 var css = d.createElement('link'); css.rel='stylesheet'; 1322 css.href = 'https://m2h-library.brandon-abf.workers.dev/vibely-restyle.css?' + V; 1323 css.dataset.m2hVibelyBootstrap = 'css'; 1324 d.head.appendChild(css); 1325 var js = d.createElement('script'); 1326 js.src = 'https://m2h-library.brandon-abf.workers.dev/vibely-runtime.js?' + V; 1327 js.async = true; 1328 js.dataset.m2hVibelyBootstrap = 'js'; 1329 d.head.appendChild(js); 1330})(); 1331</script>
vendor: 63 bytes, line 1331
1331<script async src="https://www.googletagmanager.com/gtag/js?id=
1331G-ZYP1LT06JJ
vendor: 12 bytes, line 1331
1331"></script>
1332<script> 1333
vendor: 133 bytes, lines 1333-1336
1333window.dataLayer = window.dataLayer || []; 1334 function gtag(){dataLayer.push(arguments);} 1335 gtag('js', new Date()); 1336 gtag('config', '
1336G-ZYP1LT06JJ
vendor: 4 bytes, line 1336
1336');
1337</script>
1337 1338<style type="text/css"> 1339 #editor-overlay { 1340 display: none; 1341 border-color: #2E91FC; 1342 position: absolute; 1343 background-color: rgba(46,145,252,0.05); 1344 border-style: dashed; 1345 border-width: 3px; 1346 border-radius: 3px; 1347 pointer-events: none; 1348 cursor: pointer; 1349 z-index: 10000000000; 1350 } 1351 .editor-overlay-button { 1352 color: white; 1353 background: #2E91FC; 1354 border-radius: 2px; 1355 font-size: 13px; 1356 margin-inline-start: -24px; 1357 margin-block-start: -12px; 1358 padding-block: 3px; 1359 padding-inline: 10px; 1360 text-transform:uppercase; 1361 font-weight:bold; 1362 letter-spacing:1.5px; 1363 1364 left: 50%; 1365 top: 50%; 1366 position: absolute; 1367 } 1368</style>
1369<script src="https://kajabi-app-assets.kajabi-cdn.com/vite/assets/track_analytics-9PIwCo8a.js" crossorigin="anonymous" type="module"></script>
1369<link rel="modulepreload" href="https://kajabi-app-assets.kajabi-cdn.com/vite/assets/stimulus-YxisLvNU.js" as="script" crossorigin="anonymous"> 1370<link rel="modulepreload" href="https://kajabi-app-assets.kajabi-cdn.com/vite/assets/stimulus-ne7gBwQ5.js" as="script" crossorigin="anonymous"> 1371<link rel="modulepreload" href="https://kajabi-app-assets.kajabi-cdn.com/vite/assets/trackProductAnalytics-DkwkqJGV.js" as="script" crossorigin="anonymous"> 1372<link rel="modulepreload" href="https://kajabi-app-assets.kajabi-cdn.com/vite/assets/track_product_analytics-BQXqP5X8.js" as="script" crossorigin="anonymous">
1372<script type="text/javascript"> 1373 if (typeof (window.rudderanalytics) === "undefined") { 1374 !function(){"use strict";window.RudderSnippetVersion="3.0.3";var sdkBaseUrl="https://cdn.rudderlabs.com/v3" 1375 ;var sdkName="rsa.min.js";var asyncScript=true;window.rudderAnalyticsBuildType="legacy",window.rudderanalytics=[] 1376 ;var e=["setDefaultInstanceKey","load","ready","page","track","identify","alias","group","reset","setAnonymousId","startSession","endSession","consent"] 1377 ;for(var n=0;n<e.length;n++){var t=e[n];window.rudderanalytics[t]=function(e){return function(){ 1378 window.rudderanalytics.push([e].concat(Array.prototype.slice.call(arguments)))}}(t)}try{ 1379 new Function('return import("")'),window.rudderAnalyticsBuildType="modern"}catch(a){} 1380 if(window.rudderAnalyticsMount=function(){ 1381 "undefined"==typeof globalThis&&(Object.defineProperty(Object.prototype,"__globalThis_magic__",{get:function get(){ 1382 return this},configurable:true}),__globalThis_magic__.globalThis=__globalThis_magic__, 1383 delete Object.prototype.__globalThis_magic__);var e=document.createElement("script") 1384 ;e.src="".concat(sdkBaseUrl,"/").concat(window.rudderAnalyticsBuildType,"/").concat(sdkName),e.async=asyncScript, 1385 document.head?document.head.appendChild(e):document.body.appendChild(e) 1386 },"undefined"==typeof Promise||"undefined"==typeof globalThis){var d=document.createElement("script") 1387 ;d.src="https://polyfill-fastly.io/v3/polyfill.min.js?version=3.111.0&features=Symbol%2CPromise&callback=rudderAnalyticsMount", 1388 d.async=asyncScript,document.head?document.head.appendChild(d):document.body.appendChild(d)}else{ 1389 window.rudderAnalyticsMount()}window.rudderanalytics.load("2apYBMHHHWpiGqicceKmzPebApa","https://rs-dp.kajabi.com",{})}(); 1390 } 1391 </script>
1391 1392
1392<script type="text/javascript"> 1393 if (typeof (window.rudderanalytics) !== "undefined") { 1394 rudderanalytics.page({"account_id":"2147618327","site_id":"2147636890"}); 1395 } 1396 </script>
1396 1397
1397<script type="text/javascript"> 1398 if (typeof (window.rudderanalytics) !== "undefined") { 1399 (function () { 1400 function AnalyticsClickHandler (event) { 1401 const targetEl = event.target.closest('a') || event.target.closest('button'); 1402 if (targetEl) { 1403 rudderanalytics.track('Site Link Clicked', Object.assign( 1404 {"account_id":"2147618327","site_id":"2147636890"}, 1405 { 1406 link_text: targetEl.textContent.trim(), 1407 link_href: targetEl.href, 1408 tag_name: targetEl.tagName, 1409 } 1410 )); 1411 } 1412 }; 1413 document.addEventListener('click', AnalyticsClickHandler); 1414 })(); 1415 } 1416 </script>
1416 1417<meta name="robots" content="noindex, nofollow"><meta name='site_locale' content='en'><style type="text/css"> 1418 body main { 1419 direction: ltr; 1420 } 1421 .slick-list { 1422 direction: ltr; 1423 } 1424</style> 1425<style type="text/css"> 1426 /* Font Awesome 4 */ 1427 .fa.fa-twitter{ 1428 font-family:sans-serif; 1429 } 1430 .fa.fa-twitter::before{ 1431 content:"ð"; 1432 font-size:1.2em; 1433 } 1434 1435 /* Font Awesome 5 */ 1436 .fab.fa-twitter{ 1437 font-family:sans-serif; 1438 } 1439 .fab.fa-twitter::before{ 1440 content:"ð"; 1441 font-size:1.2em; 1442 } 1443</style> 1444<link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin> 1445<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@kajabi-ui/[email protected]/dist/kajabi_products/kajabi_products.css" />
1446<script type="module" src="https://cdn.jsdelivr.net/npm/@pine-ds/[email protected]/dist/pine-core/pine-core.esm.js"></script>
vendor: 1 bytes, line 1446
1446
1447<script nomodule src="https://cdn.jsdelivr.net/npm/@pine-ds/[email protected]/dist/pine-core/index.esm.js"></script>
vendor: 1 bytes, line 1447
1447
1448<script src="https://kajabi-app-assets.kajabi-cdn.com/vite/assets/submission_error-BPILUKDn.js" crossorigin="anonymous" type="module" defer="defer"></script>
1448<script>fetch("https://app.kajabi.com/health_check/ping",{mode:"no-cors"})</script>
1448 1449 1450 </head> 1451 <style> 1452 body { 1453 1454 1455 1456 } 1457</style> 1458 <body id="encore-theme" class="background-unrecognized"> 1459 1460 1461 <div id="section-header" data-section-id="header"> 1462 1463<style> 1464 /* Default Header Styles */ 1465 .header { 1466 1467 background-color: transparent; 1468 1469 font-size: 14px; 1470 } 1471 .header a, 1472 .header a.link-list__link, 1473 .header a.link-list__link:hover, 1474 .header a.social-icons__icon, 1475 .header .user__login a, 1476 .header .dropdown__item a, 1477 .header .dropdown__trigger:hover { 1478 color: #ffffff; 1479 } 1480 .header .dropdown__trigger { 1481 color: #ffffff !important; 1482 } 1483 /* Mobile Header Styles */ 1484 @media (max-width: 767px) { 1485 .header { 1486 1487 font-size: 16px; 1488 } 1489 1490 .header .hamburger__slices .hamburger__slice { 1491 1492 background-color: #ffffff; 1493 1494 } 1495 1496 .header a.link-list__link, .dropdown__item a, .header__content--mobile { 1497 text-align: left; 1498 } 1499 1500 .header--overlay .header__content--mobile { 1501 padding-bottom: 20px; 1502 } 1503 } 1504 /* Sticky Styles */ 1505 1506</style> 1507 1508<div class="hidden"> 1509 1510 1511 1512 1513</div> 1514 1515<header class="header header--overlay hidden--mobile header--close-on-scroll" kjb-settings-id="sections_header_settings_background_color"> 1516 <div class="hello-bars"> 1517 1518 </div> 1519 1520</header> 1521 1522</div> 1523 <main> 1524 <div data-content-for-index data-dynamic-sections="index"><div id="section-1761241247845" data-section-id="1761241247845"></div><div id="section-1761239934535" data-section-id="1761239934535"><style> 1525 1526 #section-1761239934535 .section__overlay { 1527 position: absolute; 1528 width: 100%; 1529 height: 100%; 1530 left: 0; 1531 top: 0; 1532 background-color: ; 1533 } 1534 #section-1761239934535 .sizer { 1535 padding-top: 0px; 1536 padding-bottom: 0px; 1537 } 1538 #section-1761239934535 .container { 1539 max-width: calc(1260px + 0px + 0px); 1540 padding-right: 0px; 1541 padding-left: 0px; 1542 1543 padding-left: 0 !important; 1544 padding-right: 0 !important; 1545 1546 } 1547 #section-1761239934535 .row { 1548 1549 margin: 0 !important 1550 1551 } 1552 #section-1761239934535 .container--full { 1553 width: 100%; 1554 max-width: calc(100% + 0px + 0px); 1555 } 1556 @media (min-width: 768px) { 1557 1558 #section-1761239934535 .sizer { 1559 padding-top: 0px; 1560 padding-bottom: 0px; 1561 } 1562 #section-1761239934535 .container { 1563 max-width: calc(1260px + 0px + 0px); 1564 padding-right: 0px; 1565 padding-left: 0px; 1566 } 1567 #section-1761239934535 .container--full { 1568 max-width: calc(100% + 0px + 0px); 1569 } 1570 } 1571 1572 1573</style> 1574 1575<section kjb-settings-id="sections_1761239934535_settings_background_color" 1576 class="section 1577 1578 1579 " 1580 data-reveal-event="" 1581 data-reveal-offset="" 1582 data-reveal-units="seconds"> 1583 <div class="sizer sizer--full"> 1584 1585 1586 1587 1588<div id="wistia_1761239934535_twljr2epe6" class="backgroundVideo" data-src="twljr2epe6" data-img="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/themes/2153655894/assets/background.jpg?1788492246387407"></div> 1589 1590 <div class="section__overlay"></div> 1591 <div class="container container--full"> 1592 <div class="row align-items-center justify-content-center"> 1593 1594 1595 1596 1597 1598 1599<style> 1600 /* flush setting */ 1601 1602 1603 /* margin settings */ 1604 #block-1768854373989, [data-slick-id="1768854373989"] { 1605 margin-top: 0px; 1606 margin-right: 0px; 1607 margin-bottom: 0px; 1608 margin-left: 0px; 1609 } 1610 #block-1768854373989 .block, [data-slick-id="1768854373989"] .block { 1611 /* border settings */ 1612 border: 0px black; 1613 border-radius: 0px; 1614 1615 1616 /* background color */ 1617 1618 /* default padding for mobile */ 1619 1620 1621 padding: 20px; 1622 1623 1624 1625 padding: 20px; 1626 1627 1628 /* mobile padding overrides */ 1629 1630 1631 padding-top: 0px; 1632 1633 1634 padding-right: 0px; 1635 1636 1637 padding-bottom: 0px; 1638 1639 1640 padding-left: 0px; 1641 1642 } 1643 1644 @media (min-width: 768px) { 1645 /* desktop margin settings */ 1646 #block-1768854373989, [data-slick-id="1768854373989"] { 1647 margin-top: 0px; 1648 margin-right: 0px; 1649 margin-bottom: 0px; 1650 margin-left: 0px; 1651 } 1652 #block-1768854373989 .block, [data-slick-id="1768854373989"] .block { 1653 /* default padding for desktop */ 1654 1655 1656 1657 padding: 30px; 1658 1659 1660 /* desktop padding overrides */ 1661 1662 1663 padding-top: 0px; 1664 1665 1666 padding-right: 0px; 1667 1668 1669 padding-bottom: 0px; 1670 1671 1672 padding-left: 0px; 1673 1674 } 1675 } 1676 /* mobile text align */ 1677 @media (max-width: 767px) { 1678 #block-1768854373989, [data-slick-id="1768854373989"] { 1679 text-align: left; 1680 } 1681 } 1682</style> 1683 1684 1685<div 1686 id="block-1768854373989" 1687 class=" 1688 block-type--code 1689 text-left 1690 col-12 1691 1692 1693 1694 1695 1696 1697 " 1698 1699 data-reveal-event="" 1700 data-reveal-offset="" 1701 data-reveal-units="seconds" 1702 1703 kjb-settings-id="sections_1761239934535_blocks_1768854373989_settings_width" 1704 > 1705 <div class="block 1706 box-shadow- 1707 " 1708 1709 data-aos="none" 1710 data-aos-delay="0" 1711 data-aos-duration="0" 1712 1713 > 1714 1715
1715<script src="https://m2h-partner-center-preview.pages.dev/site/m2h-header.js"></script>
1715 1716 </div> 1717</div> 1718 1719 1720 1721 1722 1723 1724 1725<style> 1726 /* flush setting */ 1727 1728 1729 /* margin settings */ 1730 #block-1768855512599, [data-slick-id="1768855512599"] { 1731 margin-top: 0px; 1732 margin-right: 0px; 1733 margin-bottom: 0px; 1734 margin-left: 0px; 1735 } 1736 #block-1768855512599 .block, [data-slick-id="1768855512599"] .block { 1737 /* border settings */ 1738 border: 0px black; 1739 border-radius: 0px; 1740 1741 1742 /* background color */ 1743 1744 /* default padding for mobile */ 1745 1746 1747 padding: 20px; 1748 1749 1750 1751 padding: 20px; 1752 1753 1754 /* mobile padding overrides */ 1755 1756 1757 padding-top: 0px; 1758 1759 1760 padding-right: 0px; 1761 1762 1763 padding-bottom: 0px; 1764 1765 1766 padding-left: 0px; 1767 1768 } 1769 1770 @media (min-width: 768px) { 1771 /* desktop margin settings */ 1772 #block-1768855512599, [data-slick-id="1768855512599"] { 1773 margin-top: 0px; 1774 margin-right: 0px; 1775 margin-bottom: 0px; 1776 margin-left: 0px; 1777 } 1778 #block-1768855512599 .block, [data-slick-id="1768855512599"] .block { 1779 /* default padding for desktop */ 1780 1781 1782 1783 padding: 30px; 1784 1785 1786 /* desktop padding overrides */ 1787 1788 1789 padding-top: 0px; 1790 1791 1792 padding-right: 0px; 1793 1794 1795 padding-bottom: 0px; 1796 1797 1798 padding-left: 0px; 1799 1800 } 1801 } 1802 /* mobile text align */ 1803 @media (max-width: 767px) { 1804 #block-1768855512599, [data-slick-id="1768855512599"] { 1805 text-align: left; 1806 } 1807 } 1808</style> 1809 1810 1811<div 1812 id="block-1768855512599" 1813 class=" 1814 block-type--code 1815 text-left 1816 col-12 1817 1818 1819 1820 1821 1822 1823 " 1824 1825 data-reveal-event="" 1826 data-reveal-offset="" 1827 data-reveal-units="seconds" 1828 1829 kjb-settings-id="sections_1761239934535_blocks_1768855512599_settings_width" 1830 > 1831 <div class="block 1832 box-shadow- 1833 " 1834 1835 data-aos="none" 1836 data-aos-delay="0" 1837 data-aos-duration="0" 1838 1839 > 1840 1841 <!-- ======================================== 1842 STICKY SECTION NAV - VALUES & FAITH PAGE 1843 1844 Add this code block AFTER the dynamic header 1845 ======================================== --> 1846 1847<style> 1848/* Secondary Sticky Nav */ 1849#m2h-section-nav { 1850 position: fixed; 1851 top: 72px; 1852 left: 0; 1853 right: 0; 1854 z-index: 999; 1855 background: rgba(255, 255, 255, 0.98); 1856 backdrop-filter: blur(10px); 1857 border-bottom: 1px solid #e5e7eb; 1858 transform: translateY(-100%); 1859 opacity: 0; 1860 transition: transform 0.3s ease, opacity 0.3s ease; 1861 box-shadow: 0 2px 8px rgba(0,0,0,0.06); 1862} 1863 1864@media (max-width: 768px) { 1865 #m2h-section-nav { 1866 top: 60px; 1867 display: none !important; 1868 } 1869} 1870 1871#m2h-section-nav.visible { 1872 transform: translateY(0); 1873 opacity: 1; 1874} 1875 1876#m2h-section-nav .nav-inner { 1877 max-width: 1280px; 1878 margin: 0 auto; 1879 padding: 0 24px; 1880 display: flex; 1881 align-items: center; 1882 justify-content: center; 1883 gap: 8px; 1884 height: 48px; 1885 overflow-x: auto; 1886 -webkit-overflow-scrolling: touch; 1887 scrollbar-width: none; 1888} 1889 1890#m2h-section-nav .nav-inner::-webkit-scrollbar {
1891 display: none; 1892} 1893 1894#m2h-section-nav a { 1895 color: #6b7280; 1896 font-family: 'Montserrat', sans-serif; 1897 font-weight: 600; 1898 font-size: 0.85rem; 1899 text-decoration: none; 1900 padding: 8px 16px; 1901 border-radius: 20px; 1902 white-space: nowrap; 1903 transition: all 0.2s ease; 1904 position: relative; 1905 display: flex; 1906 align-items: center; 1907 gap: 6px; 1908} 1909 1910#m2h-section-nav a i { 1911 font-size: 0.9rem; 1912 color: #9ca3af; 1913 transition: color 0.2s ease; 1914} 1915 1916#m2h-section-nav a:hover { 1917 color: #005f73; 1918 background: rgba(44, 193, 208, 0.08); 1919} 1920 1921#m2h-section-nav a:hover i { 1922 color: #2cc1d0; 1923} 1924 1925#m2h-section-nav a.active { 1926 color: #005f73; 1927 background: linear-gradient(135deg, rgba(44, 193, 208, 0.12), rgba(29, 78, 216, 0.12)); 1928} 1929 1930#m2h-section-nav a.active i { 1931 color: #2cc1d0; 1932} 1933</style> 1934 1935<nav id="m2h-section-nav"> 1936 <div class="nav-inner"> 1937 <a href="#values"><i class="fas fa-heart"></i> Values</a> 1938 <a href="#vision"><i class="fas fa-bullseye"></i> Vision</a> 1939 <a href="#faith"><i class="fas fa-book"></i> Faith</a> 1940 <a href="#team"><i class="fas fa-users"></i> Team</a> 1941 </div> 1942</nav> 1943
1944<script> 1945(function() { 1946 const sectionNav = document.getElementById('m2h-section-nav'); 1947 if (!sectionNav) return; 1948 1949 const sections = ['values', 'vision', 'faith', 'team']; 1950 1951 // Get hero section 1952 const hero = document.querySelector('.hero, #hero, [class*="hero"]'); 1953 1954 if (!hero) { 1955 window.addEventListener('scroll', () => { 1956 sectionNav.classList.toggle('visible', window.scrollY > 500); 1957 }); 1958 } else { 1959 const observer = new IntersectionObserver((entries) => { 1960 entries.forEach(entry => { 1961 sectionNav.classList.toggle('visible', !entry.isIntersecting); 1962 }); 1963 }, { 1964 threshold: 0, 1965 rootMargin: '-72px 0px 0px 0px' 1966 }); 1967 observer.observe(hero); 1968 } 1969 1970 // Active state on scroll 1971 const navLinks = sectionNav.querySelectorAll('a'); 1972 1973 function updateActiveLink() { 1974 let current = ''; 1975 const scrollPos = window.scrollY + 150; 1976 1977 sections.forEach(id => { 1978 const section = document.getElementById(id); 1979 if (section && section.offsetTop <= scrollPos) { 1980 current = id; 1981 } 1982 }); 1983 1984 navLinks.forEach(link => { 1985 link.classList.toggle('active', link.getAttribute('href') === `#${current}`); 1986 }); 1987 } 1988 1989 window.addEventListener('scroll', updateActiveLink); 1990 updateActiveLink(); 1991 1992 // Smooth scroll on click 1993 navLinks.forEach(link => { 1994 link.addEventListener('click', (e) => { 1995 e.preventDefault(); 1996 const targetId = link.getAttribute('href').substring(1); 1997 const target = document.getElementById(targetId); 1998 if (target) { 1999 const headerOffset = 72 + 48 + 16; 2000 const targetPosition = target.offsetTop - headerOffset; 2001 window.scrollTo({ 2002 top: targetPosition, 2003 behavior: 'smooth' 2004 }); 2005 } 2006 }); 2007 }); 2008})(); 2009</script>
2009 2010 </div> 2011</div> 2012 2013 2014 2015 2016 2017 2018 2019<style> 2020 /* flush setting */ 2021 2022 #block-1761239934535_0, [data-slick-id="1761239934535_0"] { padding: 0; } 2023 2024 2025 /* margin settings */ 2026 #block-1761239934535_0, [data-slick-id="1761239934535_0"] { 2027 margin-top: -50px; 2028 margin-right: 0px; 2029 margin-bottom: 0px; 2030 margin-left: 0px; 2031 } 2032 #block-1761239934535_0 .block, [data-slick-id="1761239934535_0"] .block { 2033 /* border settings */ 2034 border: 4px black; 2035 border-radius: 4px; 2036 2037 2038 /* background color */ 2039 2040 background-color: ; 2041 2042 /* default padding for mobile */ 2043 2044 padding: 20px; 2045 2046 2047 padding: 20px; 2048 2049 2050 2051 padding: 20px; 2052 2053 2054 /* mobile padding overrides */ 2055 2056 2057 padding-top: 0px; 2058 2059 2060 padding-right: 0px; 2061 2062 2063 padding-bottom: 0px; 2064 2065 2066 padding-left: 0px; 2067 2068 } 2069 2070 @media (min-width: 768px) { 2071 /* desktop margin settings */ 2072 #block-1761239934535_0, [data-slick-id="1761239934535_0"] { 2073 margin-top: -80px; 2074 margin-right: 0px; 2075 margin-bottom: 0px; 2076 margin-left: 0px; 2077 } 2078 #block-1761239934535_0 .block, [data-slick-id="1761239934535_0"] .block { 2079 /* default padding for desktop */ 2080 2081 padding: 30px; 2082 2083 2084 2085 padding: 30px; 2086 2087 2088 /* desktop padding overrides */ 2089 2090 2091 padding-top: 0px; 2092 2093 2094 padding-right: 0px; 2095 2096 2097 padding-bottom: 0px; 2098 2099 2100 padding-left: 0px; 2101 2102 } 2103 } 2104 /* mobile text align */ 2105 @media (max-width: 767px) { 2106 #block-1761239934535_0, [data-slick-id="1761239934535_0"] { 2107 text-align: left; 2108 } 2109 } 2110</style> 2111 2112 2113<div 2114 id="block-1761239934535_0" 2115 class=" 2116 block-type--code 2117 text-left 2118 col-12 2119 2120 2121 2122 2123 2124 2125 " 2126 2127 data-reveal-event="" 2128 data-reveal-offset="" 2129 data-reveal-units="seconds" 2130 2131 kjb-settings-id="sections_1761239934535_blocks_1761239934535_0_settings_width" 2132 > 2133 <div class="block 2134 box-shadow- 2135 " 2136 2137 data-aos="none" 2138 data-aos-delay="0" 2139 data-aos-duration="0" 2140 2141 > 2142 2143 <!-- ======================================== 2144 VALUES & FAITH PAGE - CONTENT ONLY 2145 2146 Use with: 2147 1. Dynamic header code block (first) 2148 2. Section nav code block (second) 2149 3. This content (third) 2150 ======================================== --> 2151 2152<style> 2153 :root { 2154 --teal: #2cc1d0; 2155 --royal: #1d4ed8; 2156 --coral: #f87960; 2157 --deep: #005f73; 2158 --ocean: #00a8cc; 2159 --green: #10B981; 2160 --amber: #f59e0b; 2161 --alert: #ff6b6b; 2162 --gray-900: #333; 2163 --gray-700: #6b7280; 2164 --gray-300: #d1d5db; 2165 --border: #e5e7eb; 2166 --page: #f0f2f5; 2167 --gradient-primary: linear-gradient(135deg, #2cc1d0, #1d4ed8); 2168 --gradient-coral: linear-gradient(135deg, #ff8a75, #f87960, #f56048); 2169 --gradient-teal: linear-gradient(135deg, #2cc1d0, #00a8cc); 2170 --gradient-purple: linear-gradient(135deg, #f87960, #1d4ed8); 2171 --shadow-sm: 0 2px 8px rgba(0,0,0,0.08); 2172 --shadow: 0 8px 30px rgba(0,0,0,0.10); 2173 --shadow-lg: 0 20px 60px rgba(0,0,0,0.15); 2174 --r-sm: 6px; 2175 --r: 16px; 2176 --r-lg: 20px; 2177 --r-xl: 24px; 2178 --r-pill: 9999px; 2179 } 2180 2181 .values-page { 2182 font-family: 'Montserrat', sans-serif; 2183 font-size: 1rem; 2184 line-height: 1.6; 2185 color: var(--gray-900); 2186 background: var(--page); 2187 } 2188 2189 .values-page h1, 2190 .values-page h2, 2191 .values-page h3, 2192 .values-page h4, 2193 .values-page h5, 2194 .values-page h6 { 2195 font-family: 'Poppins', sans-serif; 2196 } 2197 2198 .values-page .container { 2199 max-width: 1280px; 2200 margin: 0 auto; 2201 padding: 0 24px; 2202 } 2203 2204 /* Hero Section */ 2205 .values-page .hero { 2206 background: var(--gradient-primary); 2207 padding: 100px 0 80px; 2208 text-align: center; 2209 position: relative; 2210 overflow: hidden; 2211 } 2212 2213 .values-page .hero::before { 2214 content: ''; 2215 position: absolute; 2216 top: 0; 2217 left: 0; 2218 right: 0; 2219 bottom: 0; 2220 background-image: radial-gradient(rgba(255, 255, 255, 0.4) 1px, transparent 1px); 2221 background-size: 16px 16px; 2222 pointer-events: none; 2223 } 2224 2225 .values-page .hero-content { 2226 position: relative; 2227 z-index: 1; 2228 } 2229 2230 .values-page .hero h1 { 2231 font-size: clamp(2.5rem, 5vw, 3.5rem); 2232 font-weight: 900; 2233 color: white; 2234 margin-bottom: 20px; 2235 line-height: 1.1; 2236 } 2237 2238 .values-page .hero .lead { 2239 font-size: 1.25rem; 2240 color: rgba(255, 255, 255, 0.95); 2241 max-width: 700px; 2242 margin: 0 auto; 2243 } 2244 2245 /* Section Styles */ 2246 .values-page section { 2247 padding: 80px 0; 2248 } 2249 2250 .values-page .section-tight { 2251 padding: 60px 0; 2252 } 2253 2254 .values-page #values, 2255 .values-page #faith { 2256 background: linear-gradient(135deg, rgba(240, 249, 255, 0.80) 0%, rgba(255, 255, 255, 0.95) 100%); 2257 } 2258 2259 .values-page .section-header { 2260 text-align: center; 2261 margin-bottom: 60px; 2262 } 2263 2264 .values-page .badge { 2265 display: inline-block; 2266 background: rgba(44, 193, 208, 0.1); 2267 color: var(--teal); 2268 padding: 6px 16px; 2269 border-radius: 20px; 2270 font-weight: 700; 2271 font-size: 0.85rem; 2272 text-transform: uppercase; 2273 letter-spacing: 0.05em; 2274 margin-bottom: 16px; 2275 } 2276 2277 .values-page h2 { 2278 font-size: clamp(2rem, 4vw, 2.5rem); 2279 font-weight: 900; 2280 color: var(--gray-900); 2281 margin-bottom: 20px; 2282 line-height: 1.2; 2283 } 2284 2285 .values-page .gradient-text { 2286 background: var(--gradient-primary); 2287 -webkit-background-clip: text; 2288 -webkit-text-fill-color: transparent; 2289 background-clip: text; 2290 } 2291 2292 .values-page h3 { 2293 font-size: 1.5rem; 2294 font-weight: 800; 2295 color: var(--gray-900); 2296 margin-bottom: 16px; 2297 line-height: 1.3; 2298 } 2299 2300 .values-page .lead-text { 2301 font-size: 1.25rem; 2302 line-height: 1.6; 2303 color: var(--gray-700); 2304 max-width: 800px; 2305 margin: 0 auto 40px; 2306 } 2307 2308 /* Card Grid */ 2309 .values-page .card-grid { 2310 display: grid; 2311 grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); 2312 gap: 32px; 2313 margin-top: 40px; 2314 } 2315 2316 .values-page .card { 2317 background: white; 2318 border-radius: var(--r); 2319 padding: 40px; 2320 box-shadow: var(--shadow); 2321 transition: all 0.3s ease; 2322 opacity: 0; 2323 transform: translateY(30px); 2324 cursor: pointer; 2325 } 2326 2327 .values-page .card.visible { 2328 opacity: 1; 2329 transform: translateY(0); 2330 } 2331 2332 .values-page .card:hover { 2333 transform: translateY(-4px); 2334 box-shadow: var(--shadow-lg); 2335 } 2336 2337 .values-page .card-header { 2338 display: flex; 2339 align-items: center; 2340 gap: 12px; 2341 margin-bottom: 20px; 2342 } 2343 2344 .values-page .card-icon { 2345 font-size: 2rem; 2346 color: var(--teal); 2347 flex-shrink: 0; 2348 } 2349 2350 .values-page .card h3 { 2351 margin: 0; 2352 font-size: 1.5rem; 2353 font-weight: 800; 2354 flex-grow: 1; 2355 } 2356 2357 .values-page .card-toggle { 2358 color: var(--gray-700); 2359 font-size: 1.2rem; 2360 transition: transform 0.3s ease; 2361 flex-shrink: 0; 2362 animation: subtleBounce 2s ease-in-out infinite; 2363 } 2364
2365 .values-page .card.expanded .card-toggle { 2366 transform: rotate(180deg); 2367 animation: none; 2368 } 2369 2370 @keyframes subtleBounce { 2371 0%, 100% { transform: translateY(0); } 2372 50% { transform: translateY(3px); } 2373 } 2374 2375 .values-page .card-preview { 2376 color: var(--gray-700); 2377 line-height: 1.7; 2378 margin-bottom: 16px; 2379 } 2380 2381 .values-page .card-content { 2382 max-height: 0; 2383 overflow: hidden; 2384 transition: max-height 0.3s ease; 2385 } 2386 2387 .values-page .card.expanded .card-content { 2388 max-height: 1000px; 2389 } 2390 2391 .values-page .card-content p { 2392 color: var(--gray-700); 2393 line-height: 1.7; 2394 margin-bottom: 16px; 2395 } 2396 2397 .values-page .card-content p:last-child { 2398 margin-bottom: 0; 2399 } 2400 2401 .values-page .quote-callout { 2402 background: var(--gradient-teal); 2403 color: white; 2404 padding: 20px 24px; 2405 border-radius: var(--r); 2406 margin: 24px 0; 2407 border-left: 4px solid white; 2408 font-weight: 600; 2409 font-size: 1.1rem; 2410 line-height: 1.5; 2411 } 2412 2413 /* Testimonials Section */ 2414 .values-page .testimonials-section { 2415 background: white; 2416 padding: 80px 0; 2417 position: relative; 2418 } 2419 2420 .values-page .testimonials-grid { 2421 display: grid; 2422 grid-template-columns: repeat(2, 1fr); 2423 gap: 32px; 2424 margin-top: 40px; 2425 } 2426 2427 .values-page .testimonial-card { 2428 background: linear-gradient(135deg, rgba(240, 249, 255, 0.6) 0%, rgba(255, 255, 255, 0.95) 100%); 2429 border-radius: var(--r); 2430 padding: 36px; 2431 border: 1px solid rgba(44, 193, 208, 0.15); 2432 position: relative; 2433 } 2434 2435 .values-page .testimonial-card::before { 2436 content: '\201C'; 2437 font-family: 'Poppins', sans-serif; 2438 font-size: 5rem; 2439 font-weight: 900; 2440 line-height: 1; 2441 background: var(--gradient-primary); 2442 -webkit-background-clip: text; 2443 -webkit-text-fill-color: transparent; 2444 background-clip: text; 2445 position: absolute; 2446 top: 16px; 2447 left: 28px; 2448 opacity: 0.25; 2449 } 2450 2451 .values-page .testimonial-card p { 2452 color: var(--gray-700); 2453 line-height: 1.8; 2454 font-size: 1rem; 2455 margin-bottom: 20px; 2456 position: relative; 2457 z-index: 1; 2458 } 2459 2460 .values-page .testimonial-card .testimonial-author { 2461 font-family: 'Poppins', sans-serif; 2462 font-weight: 700; 2463 color: var(--deep); 2464 font-size: 0.95rem; 2465 margin-bottom: 0; 2466 } 2467 2468 @media (max-width: 768px) { 2469 .values-page .testimonials-grid { 2470 grid-template-columns: 1fr; 2471 } 2472 } 2473 2474 /* Vision Section */ 2475 .values-page .vision-section { 2476 background: var(--gradient-coral); 2477 padding: 80px 0; 2478 text-align: center; 2479 position: relative; 2480 overflow: hidden; 2481 } 2482 2483 .values-page .vision-section::before { 2484 content: ''; 2485 position: absolute; 2486 top: 0; 2487 left: 0; 2488 right: 0; 2489 bottom: 0; 2490 background-image: radial-gradient(rgba(255, 255, 255, 0.4) 1px, transparent 1px); 2491 background-size: 16px 16px; 2492 pointer-events: none; 2493 } 2494 2495 .values-page .vision-content { 2496 position: relative; 2497 z-index: 1; 2498 } 2499 2500 .values-page .vision-section h2 { 2501 color: white; 2502 font-size: clamp(2.5rem, 5vw, 3.5rem); 2503 margin-bottom: 24px; 2504 } 2505 2506 .values-page .vision-section .lead-text { 2507 color: rgba(255, 255, 255, 0.95); 2508 font-size: 1.5rem; 2509 max-width: 900px; 2510 } 2511 2512 .values-page .vision-stats { 2513 display: flex; 2514 justify-content: center; 2515 gap: 80px; 2516 margin-top: 40px; 2517 flex-wrap: wrap; 2518 } 2519 2520 .values-page .vision-stat { 2521 text-align: center; 2522 } 2523 2524 .values-page .vision-number { 2525 font-family: 'Poppins', sans-serif; 2526 font-size: 4rem; 2527 font-weight: 900; 2528 color: white; 2529 display: block; 2530 line-height: 1.1; 2531 } 2532 2533 .values-page .vision-label { 2534 color: rgba(255, 255, 255, 0.95); 2535 font-size: 1.1rem; 2536 font-weight: 700; 2537 margin-top: 8px; 2538 display: block; 2539 } 2540 2541 /* Statement of Faith Grid - Google Images style expand */ 2542 .values-page .faith-grid { 2543 display: grid; 2544 grid-template-columns: repeat(4, 1fr); 2545 gap: 24px; 2546 margin-top: 40px; 2547 } 2548 2549 .values-page .faith-item { 2550 background: white; 2551 border-radius: var(--r); 2552 padding: 28px; 2553 box-shadow: var(--shadow-sm); 2554 transition: all 0.3s ease; 2555 cursor: pointer; 2556 border: 2px solid transparent; 2557 } 2558 2559 .values-page .faith-item:hover { 2560 border-color: var(--teal); 2561 box-shadow: var(--shadow); 2562 } 2563 2564 .values-page .faith-item.active { 2565 border-color: var(--teal); 2566 box-shadow: var(--shadow); 2567 } 2568 2569 .values-page .faith-item-header { 2570 display: flex; 2571 align-items: center; 2572 gap: 12px; 2573 } 2574 2575 .values-page .faith-item-icon { 2576 font-size: 1.5rem; 2577 color: var(--teal); 2578 flex-shrink: 0; 2579 display: flex; 2580 align-items: center; 2581 justify-content: center; 2582 height: 24px; 2583 } 2584 2585 .values-page .faith-item-icon img { 2586 width: 24px; 2587 height: 24px; 2588 object-fit: contain; 2589 } 2590 2591 .values-page .faith-item h3 { 2592 font-size: 1.2rem; 2593 font-weight: 800; 2594 color: var(--deep); 2595 margin: 0; 2596 flex-grow: 1; 2597 line-height: 1.2; 2598 } 2599 2600 .values-page .faith-item-toggle { 2601 color: var(--gray-700); 2602 font-size: 1.2rem; 2603 transition: transform 0.3s ease; 2604 flex-shrink: 0; 2605 animation: subtleBounce 2s ease-in-out infinite; 2606 } 2607 2608 .values-page .faith-item.active .faith-item-toggle { 2609 transform: rotate(180deg); 2610 animation: none; 2611 } 2612 2613 /* Full-width expand panel below the row */ 2614 .values-page .faith-expand-panel { 2615 grid-column: 1 / -1; 2616 background: white; 2617 border-radius: var(--r); 2618 border: 2px solid var(--teal); 2619 box-shadow: var(--shadow); 2620 overflow: hidden; 2621 max-height: 0; 2622 opacity: 0; 2623 transition: max-height 0.4s ease, opacity 0.3s ease, padding 0.3s ease; 2624 padding: 0 32px; 2625 position: relative; 2626 } 2627 2628 .values-page .faith-expand-panel.open { 2629 max-height: 300px; 2630 opacity: 1; 2631 padding: 28px 32px; 2632 } 2633 2634 .values-page .faith-expand-panel .faith-expand-title { 2635 font-family: 'Poppins', sans-serif; 2636 font-size: 1.3rem; 2637 font-weight: 800; 2638 color: var(--deep); 2639 margin-bottom: 12px; 2640 } 2641 2642 .values-page .faith-expand-panel p { 2643 color: var(--gray-700); 2644 line-height: 1.8; 2645 margin: 0; 2646 max-width: 900px; 2647 font-size: 1.05rem; 2648 } 2649 2650 .values-page .faith-expand-close { 2651 position: absolute; 2652 top: 16px; 2653 right: 20px; 2654 background: none; 2655 border: none; 2656 font-size: 1.5rem; 2657 color: var(--gray-700); 2658 cursor: pointer; 2659 padding: 4px 8px; 2660 line-height: 1; 2661 transition: color 0.2s ease; 2662 } 2663 2664 .values-page .faith-expand-close:hover { 2665 color: var(--coral); 2666 } 2667
2668 /* Mobile: fall back to inline expand */ 2669 .values-page .faith-item-content { 2670 max-height: 0; 2671 overflow: hidden; 2672 transition: max-height 0.3s ease; 2673 display: none; 2674 } 2675 2676 @media (max-width: 1024px) { 2677 .values-page .faith-grid { 2678 grid-template-columns: repeat(3, 1fr); 2679 } 2680 } 2681 2682 @media (max-width: 768px) { 2683 .values-page .faith-grid { 2684 grid-template-columns: repeat(2, 1fr); 2685 } 2686 2687 /* On mobile, hide expand panels and use inline expand */ 2688 .values-page .faith-expand-panel { 2689 display: none !important; 2690 } 2691 2692 .values-page .faith-item-content { 2693 display: block; 2694 } 2695 2696 .values-page .faith-item.expanded .faith-item-content { 2697 max-height: 500px; 2698 } 2699 2700 .values-page .faith-item-header { 2701 margin-bottom: 0; 2702 } 2703 2704 .values-page .faith-item.expanded .faith-item-header { 2705 margin-bottom: 12px; 2706 } 2707 } 2708 2709 @media (max-width: 480px) { 2710 .values-page .faith-grid { 2711 grid-template-columns: 1fr; 2712 } 2713 } 2714 2715 .values-page .faith-item p { 2716 color: var(--gray-700); 2717 line-height: 1.8; 2718 margin: 0; 2719 padding-top: 12px; 2720 } 2721 2722 /* Team Section */ 2723 .values-page .team-section { 2724 background: white; 2725 } 2726 2727 .values-page .team-subsection { 2728 margin-bottom: 60px; 2729 } 2730 2731 .values-page .team-subsection:last-child { 2732 margin-bottom: 0; 2733 } 2734 2735 .values-page .subsection-divider { 2736 text-align: center; 2737 margin: 80px 0 60px; 2738 } 2739 2740 .values-page .subsection-divider:first-child { 2741 margin-top: 0; 2742 } 2743 2744 .values-page .subsection-divider h3 { 2745 font-size: 1.8rem; 2746 font-weight: 800; 2747 color: var(--gray-900); 2748 margin-bottom: 16px; 2749 } 2750 2751 .values-page .subsection-divider .gradient-text { 2752 background: var(--gradient-coral); 2753 -webkit-background-clip: text; 2754 -webkit-text-fill-color: transparent; 2755 background-clip: text; 2756 } 2757 2758 .values-page .subsection-divider p { 2759 color: var(--gray-700); 2760 max-width: 800px; 2761 margin: 0 auto; 2762 font-size: 1.1rem; 2763 } 2764 2765 .values-page .team-grid { 2766 display: flex; 2767 flex-wrap: wrap; 2768 gap: 32px; 2769 margin-top: 40px; 2770 justify-content: center; 2771 } 2772 2773 .values-page .team-member { 2774 text-align: center; 2775 opacity: 0; 2776 transform: translateY(20px); 2777 transition: all 0.3s ease; 2778 width: calc((100% - 160px) / 6); 2779 min-width: 120px; 2780 max-width: 180px; 2781 } 2782 2783 .values-page .team-member.visible { 2784 opacity: 1; 2785 transform: translateY(0); 2786 } 2787 2788 .values-page .team-member img, 2789 .values-page .team-member .placeholder { 2790 width: 100%; 2791 aspect-ratio: 1/1; 2792 object-fit: cover; 2793 border-radius: 50%; 2794 margin: 0 auto 16px; 2795 box-shadow: var(--shadow); 2796 display: block; 2797 transition: all 0.3s ease; 2798 } 2799 2800 .values-page .team-member:hover img { 2801 transform: scale(1.05); 2802 box-shadow: var(--shadow-lg); 2803 } 2804 2805 .values-page .team-member .placeholder { 2806 background: var(--gradient-primary); 2807 display: flex; 2808 align-items: center; 2809 justify-content: center; 2810 color: white; 2811 font-size: 3rem; 2812 font-weight: 900; 2813 } 2814 2815 .values-page .team-member h4 { 2816 font-size: 1rem; 2817 font-weight: 700; 2818 color: var(--gray-900); 2819 } 2820 2821 .values-page .team-member a { 2822 display: block; 2823 text-decoration: none; 2824 color: inherit; 2825 } 2826 2827 /* Contributors Grid - 5 per row on desktop, centered last row */ 2828 .values-page .contributors-grid { 2829 display: flex; 2830 flex-wrap: wrap; 2831 gap: 24px; 2832 margin-top: 40px; 2833 justify-content: center; 2834 } 2835 2836 .values-page .contributor { 2837 text-align: center; 2838 opacity: 0; 2839 transform: scale(0.9); 2840 transition: all 0.3s ease; 2841 width: calc((100% - 96px) / 5); 2842 min-width: 120px; 2843 max-width: 180px; 2844 } 2845 2846 .values-page .contributor.visible { 2847 opacity: 1; 2848 transform: scale(1); 2849 } 2850 2851 .values-page .contributor img { 2852 width: 100%; 2853 aspect-ratio: 1/1; 2854 object-fit: cover; 2855 border-radius: 50%; 2856 box-shadow: var(--shadow-sm); 2857 transition: all 0.3s ease; 2858 display: block; 2859 margin: 0 auto 12px; 2860 /* Subtle photo normalization */ 2861 filter: brightness(1.02) saturate(0.92); 2862 } 2863 2864 .values-page .contributor:hover img { 2865 transform: scale(1.05); 2866 box-shadow: var(--shadow); 2867 filter: brightness(1.05) saturate(1); 2868 } 2869 2870 .values-page .contributor .placeholder { 2871 width: 100%; 2872 aspect-ratio: 1/1; 2873 background: var(--gradient-teal); 2874 border-radius: 50%; 2875 display: flex; 2876 align-items: center; 2877 justify-content: center; 2878 font-size: 2rem; 2879 font-weight: 900; 2880 color: white; 2881 margin: 0 auto 12px; 2882 box-shadow: var(--shadow-sm); 2883 } 2884 2885 .values-page .contributor h4 { 2886 font-size: 0.9rem; 2887 font-weight: 700; 2888 color: var(--gray-900); 2889 } 2890 2891 .values-page .contributor a { 2892 display: block; 2893 text-decoration: none; 2894 color: inherit; 2895 transition: color 0.3s ease; 2896 } 2897 2898 .values-page .contributor a:hover h4 { 2899 color: var(--teal); 2900 } 2901 2902 /* Same normalization for team member photos */ 2903 .values-page .team-member img { 2904 filter: brightness(1.02) saturate(0.92); 2905 } 2906 2907 .values-page .team-member:hover img { 2908 filter: brightness(1.05) saturate(1); 2909 } 2910 2911 /* CTA Section - Stronger close */ 2912 .values-page .cta-section { 2913 background: var(--gradient-primary); 2914 padding: 100px 0; 2915 text-align: center; 2916 position: relative; 2917 overflow: hidden; 2918 } 2919 2920 .values-page .cta-section::before { 2921 content: ''; 2922 position: absolute; 2923 top: 0; 2924 left: 0; 2925 right: 0; 2926 bottom: 0; 2927 background-image: radial-gradient(rgba(255, 255, 255, 0.4) 1px, transparent 1px); 2928 background-size: 16px 16px; 2929 pointer-events: none; 2930 } 2931 2932 .values-page .cta-section .container { 2933 position: relative; 2934 z-index: 1; 2935 } 2936 2937 .values-page .cta-section h2 { 2938 color: white; 2939 font-size: clamp(2.5rem, 5vw, 3.5rem); 2940 margin-bottom: 24px; 2941 } 2942 2943 .values-page .cta-section p { 2944 color: rgba(255, 255, 255, 0.95); 2945 font-size: 1.25rem; 2946 max-width: 700px; 2947 margin: 0 auto 40px; 2948 } 2949 2950 .values-page .cta-buttons { 2951 display: flex; 2952 gap: 16px; 2953 justify-content: center; 2954 flex-wrap: wrap; 2955 } 2956 2957 .values-page .btn-primary { 2958 display: inline-block; 2959 background: white; 2960 color: var(--royal); 2961 padding: 18px 48px; 2962 border-radius: var(--r-pill); 2963 font-family: 'Montserrat', sans-serif; 2964 font-weight: 800; 2965 font-size: 1.1rem; 2966 text-decoration: none; 2967 box-shadow: 0 4px 15px rgba(0,0,0,0.15); 2968 transition: all 0.3s ease; 2969 } 2970 2971 .values-page .btn-primary:hover { 2972 transform: translateY(-2px); 2973 box-shadow: 0 6px 20px rgba(0,0,0,0.2); 2974 } 2975 2976 .values-page .btn-secondary { 2977 display: inline-block; 2978 background: transparent; 2979 color: white; 2980 padding: 18px 48px; 2981 border-radius: var(--r-pill); 2982 font-family: 'Montserrat', sans-serif; 2983 font-weight: 800; 2984 font-size: 1.1rem; 2985 text-decoration: none; 2986 border: 2px solid rgba(255,255,255,0.5); 2987 transition: all 0.3s ease; 2988 } 2989 2990 .values-page .btn-secondary:hover { 2991 border-color: white; 2992 background: rgba(255,255,255,0.1); 2993 transform: translateY(-2px); 2994 } 2995 2996 /* Responsive */ 2997 @media (max-width: 1200px) { 2998 .values-page .team-member { 2999 width: calc((100% - 96px) / 4); 3000 } 3001 .values-page .contributor { 3002 width: calc((100% - 72px) / 4); 3003 } 3004 } 3005 3006 @media (max-width: 900px) { 3007 .values-page .team-member { 3008 width: calc((100% - 64px) / 3); 3009 } 3010 .values-page .contributor { 3011 width: calc((100% - 48px) / 3); 3012 } 3013 } 3014 3015 @media (max-width: 768px) { 3016 .values-page .hero { 3017 padding: 60px 0 40px; 3018 } 3019 3020 .values-page section { 3021 padding: 60px 0; 3022 } 3023 3024 .values-page .card-grid { 3025 grid-template-columns: 1fr; 3026 } 3027 3028 .values-page .team-member, 3029 .values-page .contributor { 3030 width: calc((100% - 16px) / 2); 3031 min-width: 100px; 3032 } 3033 3034 .values-page .vision-stats { 3035 gap: 40px; 3036 } 3037 } 3038 3039 @media (max-width: 480px) { 3040 .values-page .team-member, 3041 .values-page .contributor { 3042 width: calc((100% - 16px) / 2); 3043 min-width: 80px; 3044 } 3045 3046 .values-page .team-grid, 3047 .values-page .contributors-grid { 3048 gap: 16px; 3049 } 3050 3051 .values-page .cta-buttons { 3052 flex-direction: column; 3053 align-items: center; 3054 } 3055 } 3056 3057 @media (prefers-reduced-motion: reduce) { 3058 .values-page * { 3059 animation: none !important; 3060 transition: none !important; 3061 } 3062 } 3063</style> 3064 3065<div class="values-page"> 3066 <!-- Hero Section --> 3067 <section class="hero" id="hero"> 3068 <div class="hero-content"> 3069 <div class="container"> 3070 <h1>Our Values & Faith</h1> 3071 <p class="lead">Discover the foundation that guides our community and shapes our mission to support Christian homeschool families.</p> 3072 </div> 3073 </div> 3074 </section> 3075 3076 <!-- Values Section --> 3077 <section id="values"> 3078 <div class="container"> 3079 <div class="section-header">
3080 <span class="badge">Core Values</span> 3081 <h2>What We <span class="gradient-text">Stand For</span></h2> 3082 <p class="lead-text">These three values form the foundation of everything we do at Made2Homeschool.</p> 3083 </div> 3084 3085 <div class="card-grid"> 3086 <div class="card"> 3087 <div class="card-header"> 3088 <i class="fas fa-cross card-icon"></i> 3089 <h3>Faith</h3> 3090 <i class="fas fa-chevron-down card-toggle"></i> 3091 </div> 3092 <p class="card-preview">We're Christians first. While all are welcome, the team that leads our community are committed followers of Jesus, and all of them hold to our statement of faith.</p> 3093 <div class="card-content"> 3094 <div class="quote-callout">"Jesus is Lord"</div> 3095 <p>At Made2Homeschool, our faith in God is the foundation of everything we do. While we welcome people from all backgrounds in the Made2Homeschool community, and no one should ever be made to feel like they don't belong, we want to be up front about our Christian values.</p> 3096 <p>The bottom line is that we believe Jesus is Lord, that He died for our sins and rose again, and offers forgiveness and eternal life to those who repent and believe in Him.</p> 3097 <p>We believe that integrating these beliefs into the homeschooling journey is essential for nurturing our children's spiritual growth. Our contributors strive to provide resources and guidance that reflect our shared values, helping you create an educational experience that weaves faith into every aspect of your children's lives.</p> 3098 <p>Our hope is that, together, we'll support each other in raising godly leaders who will impact the world for Christ.</p> 3099 </div> 3100 </div> 3101 3102 <div class="card"> 3103 <div class="card-header"> 3104 <i class="fas fa-home card-icon"></i> 3105 <h3>Family</h3> 3106 <i class="fas fa-chevron-down card-toggle"></i> 3107 </div> 3108 <p class="card-preview">This is our second allegiance. We believe that the family - father, mother, and children - aligning their lives with God's will, is core to His plan for us all.</p> 3109 <div class="card-content"> 3110 <div class="quote-callout">"God's best for us"</div> 3111 <p>Family is the beating heart of Made2Homeschool, and we cherish the traditional values that bring us closer together. We understand that homeschooling is a deeply personal and family-focused adventure.</p> 3112 <p>We know that this isn't possible for everyone everywhere. Many of us grew up in homes that didn't look like this, and we would love and welcome those who are experiencing family brokenness to be part of our community anyway. That doesn't change that it's God's best for us, and that we should do all that we can to support the thriving of the family according to God's plan.</p> 3113 <p>Our community emphasizes nurturing strong relationships among family members and offering resources tailored to each family's unique needs.</p> 3114 <p>We believe that by prioritizing family and upholding our shared values, we can leave a lasting impact on our children and the world, all while experiencing the joy and warmth of learning together.</p> 3115 </div> 3116 </div> 3117 3118 <div class="card"> 3119 <div class="card-header"> 3120 <i class="fas fa-flag-usa card-icon"></i> 3121 <h3>Freedom</h3> 3122 <i class="fas fa-chevron-down card-toggle"></i> 3123 </div> 3124 <p class="card-preview">We have members all over the world, and we're thankful for that. At the core, though, we believe in the freedom to homeschool your children.</p> 3125 <div class="card-content"> 3126 <div class="quote-callout">"Derived from God and not from man"</div> 3127 <p>At Made2Homeschool, we celebrate the freedom that homeschooling brings - the liberty to craft a one-of-a-kind educational experience tailored to your children's needs, interests, and abilities. We embrace the diverse backgrounds, teaching styles, and learning preferences of our community members by providing a rich variety of resources and support.</p> 3128 <p>We do this because we believe the uniqueness with which God created each of our children can reach its fullest potential when we have the freedom to educate with equally unique approaches.</p> 3129 <p>As an American company founded by people who believe in the principles laid out by our founding fathers - including rights which they themselves said were derived from God and not from man - we support the protection of those God-given rights and wish they could be enjoyed by all people.</p> 3130 <p><strong>We believe that everyone should have that freedom. As such, we support families everywhere in their advocacy of policies that remove administrative and bureaucratic hurdles from homeschooling families.</strong></p> 3131 </div> 3132 </div> 3133 </div> 3134 </div> 3135 </section> 3136 3137 <!-- Testimonials Section --> 3138 <section class="testimonials-section"> 3139 <div class="container"> 3140 <div class="section-header">
3141 <span class="badge"><i class="fas fa-heart"></i> From Our Families</span> 3142 <h2>What Our Community <span class="gradient-text">Is Saying</span></h2> 3143 </div> 3144 3145 <div class="testimonials-grid"> 3146 <div class="testimonial-card"> 3147 <p>I am so thankful for Made 2 Homeschool! It's been an answer to prayer. It is a place where I find real encouragement from like-minded moms, where I know that the advice I'm given will be Biblical and for mine and my family's good. I find advice about specific homeschool curriculum, words of hope on the hard days, wisdom when I'm stuck, and so many incredible ideas! It's been a community worth investing in for my own well-being as a homeschooling mom, for our homeschool, and for my family as a whole.</p> 3148 <p class="testimonial-author">- Kasey W.</p> 3149 </div> 3150 <div class="testimonial-card"> 3151 <p>Made 2 Homeschool has been a fantastic resource for me in our first year of homeschooling! I love that there's a variety of styles, family sizes, and unique situations. I know that whatever I'm running up against, someone else has encountered it too and will have insight to give! I love that people on Made 2 Homeschool seem to assume the best in people. When I ask questions elsewhere I often find people ready to argue, whereas on Made2Homeschool everyone is always ready to help me find a real solution!</p> 3152 <p class="testimonial-author">- Ka.</p> 3153 </div> 3154 </div> 3155 </div> 3156 </section> 3157 3158 <!-- Vision Section --> 3159 <section class="vision-section" id="vision"> 3160 <div class="vision-content"> 3161 <div class="container"> 3162 <h2>Our Vision</h2> 3163 <p class="lead-text">We're building a community of Christian homeschool families who are raising the next generation of godly leaders.</p> 3164 <div class="vision-stats"> 3165 <div class="vision-stat"> 3166 <span class="vision-number" id="visionCounter">0</span> 3167 <span class="vision-label">Families and Growing</span> 3168 </div> 3169 <div class="vision-stat"> 3170 <span class="vision-number" id="countryCounter">0</span> 3171 <span class="vision-label">Countries Represented</span> 3172 </div> 3173 </div> 3174 </div> 3175 </div> 3176 </section> 3177 3178 <!-- Statement of Faith Section --> 3179 <section class="section-tight" id="faith"> 3180 <div class="container"> 3181 <div class="section-header"> 3182 <span class="badge"><i class="fas fa-book-bible"></i> Our Foundation</span> 3183 <h2>Statement of <span class="gradient-text">Faith</span></h2> 3184 <p class="lead-text">Click each item to read our complete theological beliefs and doctrinal positions.</p> 3185 </div> 3186 3187 <div class="faith-grid" id="faithGrid"> 3188 <!-- Row 1 --> 3189 <div class="faith-item" data-faith="trinity" data-row="1"> 3190 <div class="faith-item-header"> 3191 <span class="faith-item-icon"><img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2156785508/settings_images/8c55474-4c46-b861-525-335af43ba1e_Untitled_design_59_.png" alt="Trinity"></span> 3192 <h3>The Trinity</h3> 3193 <i class="fas fa-chevron-down faith-item-toggle"></i> 3194 </div> 3195 <div class="faith-item-content"> 3196 <p>God is and has always been. He exists as three persons - Father, Son, and Holy Spirit.</p> 3197 </div> 3198 </div> 3199 3200 <div class="faith-item" data-faith="father" data-row="1"> 3201 <div class="faith-item-header"> 3202 <span class="faith-item-icon" style="font-size: 2rem; font-weight: 700;">α</span> 3203 <h3>The Father</h3> 3204 <i class="fas fa-chevron-down faith-item-toggle"></i> 3205 </div> 3206 <div class="faith-item-content"> 3207 <p>We believe in one all-powerful, all-knowing, and ever-present God, the Father. He is holy, compassionate, faithful, and desires a personal relationship with us. He created humanity in His image and sent His Son to redeem us and renew all things.</p> 3208 </div> 3209 </div> 3210 3211 <div class="faith-item" data-faith="son" data-row="1"> 3212 <div class="faith-item-header"> 3213 <i class="fas fa-crown faith-item-icon"></i> 3214 <h3>The Son</h3> 3215 <i class="fas fa-chevron-down faith-item-toggle"></i> 3216 </div> 3217 <div class="faith-item-content"> 3218 <p>We believe in Jesus Christ, the Son of God, who has existed with the Father and the Holy Spirit since eternity past. He was born of a virgin, fully God & fully man. He lived a sinless life, died on the cross for our sins, and rose again. He is now at the right hand of the Father as our High Priest and Advocate.</p> 3219 </div> 3220 </div> 3221 3222 <div class="faith-item" data-faith="spirit" data-row="1"> 3223 <div class="faith-item-header"> 3224 <i class="fas fa-dove faith-item-icon"></i> 3225 <h3>The Holy Spirit</h3> 3226 <i class="fas fa-chevron-down faith-item-toggle"></i> 3227 </div> 3228 <div class="faith-item-content"> 3229 <p>We believe in the Holy Spirit, sent by Jesus after He rose from the dead, to empower the Church and give spiritual gifts. He indwells and empowers believers to live a godly life, guides us into truth, comforts us, and convicts us of sin.</p> 3230 </div> 3231 </div> 3232 3233 <div class="faith-expand-panel" id="faithPanel1"></div> 3234 3235 <!-- Row 2 --> 3236 <div class="faith-item" data-faith="bible" data-row="2"> 3237 <div class="faith-item-header"> 3238 <i class="fas fa-book-bible faith-item-icon"></i> 3239 <h3>The Bible</h3> 3240 <i class="fas fa-chevron-down faith-item-toggle"></i> 3241 </div> 3242 <div class="faith-item-content"> 3243 <p>We believe the Bible is the inspired and authoritative Word of God, without error in the original writings. It reveals His will for salvation and is the ultimate authority for human knowledge and endeavor.</p> 3244 </div> 3245 </div> 3246 3247 <div class="faith-item" data-faith="salvation" data-row="2"> 3248 <div class="faith-item-header"> 3249 <i class="fas fa-cross faith-item-icon"></i> 3250 <h3>Salvation</h3> 3251 <i class="fas fa-chevron-down faith-item-toggle"></i> 3252 </div> 3253 <div class="faith-item-content"> 3254 <p>We believe salvation is a free gift of God's grace, received through faith in Jesus Christ. We believe in the resurrection of the dead and eternal life.</p> 3255 </div> 3256 </div> 3257 3258 <div class="faith-item" data-faith="church" data-row="2"> 3259 <div class="faith-item-header"> 3260 <i class="fas fa-church faith-item-icon"></i> 3261 <h3>The Church</h3> 3262 <i class="fas fa-chevron-down faith-item-toggle"></i> 3263 </div> 3264 <div class="faith-item-content"> 3265 <p>We believe the church is the body of Christ, comprised of all who have been justified by God's grace through faith in Christ alone. We are called to serve and love one another.</p> 3266 </div> 3267 </div> 3268 3269 <div class="faith-item" data-faith="life" data-row="2"> 3270 <div class="faith-item-header"> 3271 <i class="fas fa-praying-hands faith-item-icon"></i> 3272 <h3>Christian Life</h3> 3273 <i class="fas fa-chevron-down faith-item-toggle"></i> 3274 </div> 3275 <div class="faith-item-content"> 3276 <p>We believe God's will is for us to become more like Jesus. The Christian life is an ongoing process of repenting from sin, submitting to and obeying God's Word and Spirit and loving God and His children. All of these work together to develop Christ's character within us.</p> 3277 </div> 3278 </div> 3279 3280 <div class="faith-expand-panel" id="faithPanel2"></div> 3281 3282 <!-- Row 3 --> 3283 <div class="faith-item" data-faith="coming" data-row="3"> 3284 <div class="faith-item-header"> 3285 <i class="fas fa-cloud-sun faith-item-icon"></i> 3286 <h3>Second Coming</h3> 3287 <i class="fas fa-chevron-down faith-item-toggle"></i> 3288 </div> 3289 <div class="faith-item-content"> 3290 <p>We believe in the second coming of Jesus Christ and the ultimate triumph of God's kingdom. His return demands constant expectancy, motivating believers to godly living, sacrificial service, and energetic mission.</p> 3291 </div> 3292 </div> 3293 3294 <div class="faith-item" data-faith="gifts" data-row="3"> 3295 <div class="faith-item-header"> 3296 <i class="fas fa-gift faith-item-icon"></i> 3297 <h3>Spiritual Gifts</h3> 3298 <i class="fas fa-chevron-down faith-item-toggle"></i> 3299 </div> 3300 <div class="faith-item-content"> 3301 <p>We believe in the spiritual gifts that the Holy Spirit has given to the church to build and sanctify it, and to confirm the power of the Gospel. These gifts always operate in harmony with the Scriptures and should never be used in violation of Biblical guidelines.</p> 3302 </div> 3303 </div> 3304 3305 <div class="faith-item" data-faith="eternity" data-row="3"> 3306 <div class="faith-item-header"> 3307 <i class="fas fa-infinity faith-item-icon"></i> 3308 <h3>Eternity</h3> 3309 <i class="fas fa-chevron-down faith-item-toggle"></i> 3310 </div> 3311 <div class="faith-item-content"> 3312 <p>We believe that all people will experience eternity after the final judgment. We believe Heaven, in the presence of the Lord and Hell, an eternity of conscious suffering, are real places and are the only two options for our eternal destination. Only through justification by grace through faith in Jesus can our destination be eternity in the presence of the Lord.</p> 3313 </div> 3314 </div> 3315 3316 <div class="faith-item" data-faith="marriage" data-row="3"> 3317 <div class="faith-item-header"> 3318 <i class="fas fa-ring faith-item-icon"></i> 3319 <h3>Marriage</h3> 3320 <i class="fas fa-chevron-down faith-item-toggle"></i> 3321 </div> 3322 <div class="faith-item-content"> 3323 <p>We believe marriage is God-ordained. "The creator made them male and female, and said, 'For this reason a man will leave his father and mother and be united to his wife, and the two will become one flesh'" (Matthew 19:4-5). Marriage is to be an exclusive relationship, a lifelong faithful union between a man and a woman. This relationship between a husband and wife should parallel the relationship between Christ and the Church (Ephesians 5:23-30).</p> 3324 </div> 3325 </div> 3326 3327 <div class="faith-expand-panel" id="faithPanel3"></div> 3328 </div> 3329 </div> 3330 </section> 3331 3332 <!-- Team Section --> 3333 <section class="team-section" id="team"> 3334 <div class="container"> 3335 <div class="section-header">
3336 <span class="badge"><i class="fas fa-users"></i> Meet The Team</span> 3337 <h2>The People Behind <span class="gradient-text">Made2Homeschool</span></h2> 3338 </div> 3339 3340 <!-- Leadership Team --> 3341 <div class="team-subsection"> 3342 <div class="subsection-divider"> 3343 <h3>Leadership <span class="gradient-text">Team</span></h3> 3344 <p>The people that make M2H work and help to guide the direction of our growth.</p> 3345 </div> 3346 3347 <div class="team-grid"> 3348 <div class="team-member"> 3349 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2156584925/settings_images/a7d730e-476d-0c78-53e3-db063fc87b0_B_and_B_smaller.JPG" alt="Brandon & Brigitte" loading="lazy"> 3350 <h4>Brandon & Brigitte</h4> 3351 </div> 3352 <div class="team-member"> 3353 <a href="https://youtube.com/@lifeinthemundane" target="_blank"> 3354 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2153655894/settings_images/ec48528-5da4-c8eb-3632-160243e1c0b_Katie_1-min.jpg" alt="Katie" loading="lazy"> 3355 <h4>Katie</h4> 3356 </a> 3357 </div> 3358 <div class="team-member"> 3359 <a href="https://youtube.com/@planpreppray" target="_blank"> 3360 <img src="https://images.squarespace-cdn.com/content/5eb9550cd965b872be652525/899d53e3-6f19-457f-9472-5de995dcc494/qqlb4ravbwxnpustman4.jpg?content-type=image%2Fjpeg" alt="Wendy" loading="lazy"> 3361 <h4>Wendy</h4> 3362 </a> 3363 </div> 3364 <div class="team-member"> 3365 <a href="https://youtube.com/@pearlsandoak" target="_blank"> 3366 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2152686993/settings_images/52b56f-f17-f4d4-106d-07dbdff5f5f6_Kristen.png" alt="Kristen" loading="lazy"> 3367 <h4>Kristen</h4> 3368 </a> 3369 </div> 3370 <div class="team-member"> 3371 <a href="https://youtube.com/@HumilityandDoxology" target="_blank"> 3372 <img src="https://images.squarespace-cdn.com/content/5eb9550cd965b872be652525/e54a72f7-2a5c-46f3-9d51-a674f04e51c5/_Amy+Sloan+HumilityandDoxology.com+head+shot+square+-+Amy+Sloan.jpg?content-type=image%2Fjpeg" alt="Amy" loading="lazy"> 3373 <h4>Amy</h4> 3374 </a> 3375 </div> 3376 <div class="team-member"> 3377 <a href="https://www.thenurturedbee.com" target="_blank"> 3378 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2153655894/settings_images/64167da-0544-ae53-352a-bdea4727e4_nurtured_bee_spring_2025_-033.jpg" alt="Anna" loading="lazy"> 3379 <h4>Anna</h4> 3380 </a> 3381 </div> 3382 </div> 3383 </div> 3384 3385 <!-- Contributors --> 3386 <div class="team-subsection"> 3387 <div class="subsection-divider"> 3388 <h3>Our <span class="gradient-text">Contributors</span></h3> 3389 <p>Our team of experienced homeschool content creators represents a truly diverse set of approaches and methodologies for their homeschools. What they have in common is their love for Jesus and a strong desire to help other families overcome the hurdles they themselves have faced.</p> 3390 </div> 3391 3392 <div class="contributors-grid"> 3393 <div class="contributor"> 3394 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2
3394153655894/settings_images/12da520-7df7-4a15-465e-5484dc651eb_Brandon.png" alt="Brandon Beckley" loading="lazy"> 3395 <h4>Brandon Beckley</h4> 3396 </div> 3397 <div class="contributor"> 3398 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2156785508/settings_images/a0210ab-e22e-402-423e-56a15812a1f2_IMG_7183.jpg" alt="Brigitte Beckley" loading="lazy"> 3399 <h4>Brigitte Beckley</h4> 3400 </div> 3401 <div class="contributor"> 3402 <a href="https://youtube.com/@lifeinthemundane" target="_blank"> 3403 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2153655894/settings_images/ec48528-5da4-c8eb-3632-160243e1c0b_Katie_1-min.jpg" alt="Katie Waalkes" loading="lazy"> 3404 <h4>Katie Waalkes</h4> 3405 </a> 3406 </div> 3407 <div class="contributor"> 3408 <a href="https://youtube.com/@planpreppray" target="_blank"> 3409 <img src="https://images.squarespace-cdn.com/content/5eb9550cd965b872be652525/899d53e3-6f19-457f-9472-5de995dcc494/qqlb4ravbwxnpustman4.jpg?content-type=image%2Fjpeg" alt="Wendy Alcime" loading="lazy"> 3410 <h4>Wendy Alcime</h4> 3411 </a> 3412 </div> 3413 <div class="contributor"> 3414 <a href="https://youtube.com/@pearlsandoak" target="_blank"> 3415 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2152686993/settings_images/52b56f-f17-f4d4-106d-07dbdff5f5f6_Kristen.png" alt="Kristen B" loading="lazy"> 3416 <h4>Kristen B</h4> 3417 </a> 3418 </div> 3419 <div class="contributor"> 3420 <a href="https://youtube.com/@HumilityandDoxology" target="_blank"> 3421 <img src="https://images.squarespace-cdn.com/content/5eb9550cd965b872be652525/e54a72f7-2a5c-46f3-9d51-a674f04e51c5/_Amy+Sloan+HumilityandDoxology.com+head+shot+square+-+Amy+Sloan.jpg?content-type=image%2Fjpeg" alt="Amy Sloan" loading="lazy"> 3422 <h4>Amy Sloan</h4> 3423 </a> 3424 </div> 3425 <div class="contributor"> 3426 <a href="https://www.thenurturedbee.com" target="_blank"> 3427 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2153655894/settings_images/64167da-0544-ae53-352a-bdea4727e4_nurtured_bee_spring_2025_-033.jpg" alt="Anna Knaub" loading="lazy"> 3428 <h4>Anna Knaub</h4> 3429 </a> 3430 </div> 3431 <div class="contributor"> 3432 <a href="https://www.youtube.com/@RootedHomeLife" target="_blank"> 3433 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2153655894/settings_images/f5c330-52c-233e-b203-adeaa1fc4252_IMG_2673.jpg" alt="Christina Franco" loading="lazy"> 3434 <h4>Christina Franco</h4> 3435 </a> 3436 </div> 3437 <div class="contributor"> 3438 <a href="https://www.youtube.com/@PenniesAndSalt" target="_blank"> 3439 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2153655894/settings_images/2e70b70-371c-6c61-6b35-33820dde2_IMG_1085.jpg" alt="Megan Robinson" loading="lazy"> 3440 <h4>Megan Robinson</h4> 3441 </a> 3442 </div> 3443 <div class="contributor"> 3444 <a href="https://www.youtube.com/@mamatofive1" target="_blank"> 3445 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2
3445153655894/settings_images/1263dbd-548c-1e18-ab17-5d5c24a008c_Julie.jpg" alt="Julie C." loading="lazy"> 3446 <h4>Julie C.</h4> 3447 </a> 3448 </div> 3449 <div class="contributor"> 3450 <a href="https://www.youtube.com/@ThisHomeschoolHouse" target="_blank"> 3451 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2153655894/settings_images/15a8c8-c7-dfc3-427d-6e010ef478d_IMG_8011.jpg" alt="Christine Keys" loading="lazy"> 3452 <h4>Christine Keys</h4> 3453 </a> 3454 </div> 3455 <div class="contributor"> 3456 <a href="https://www.youtube.com/@livingwitheve" target="_blank"> 3457 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2156785508/settings_images/d4c36d-20a4-2d3a-065e-a335d2b83f3d_D6DF7DB1-8095-4D7A-A3ED-1F6275F71120_-_Leilani.png" alt="Leilani Melendez" loading="lazy"> 3458 <h4>Leilani Melendez</h4> 3459 </a> 3460 </div> 3461 <div class="contributor"> 3462 <a href="https://www.youtube.com/@ourlifehomeschooling" target="_blank"> 3463 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2153655894/settings_images/ad824ef-ca20-8f7-40a-e62887a5e152_bioimage_-_OurLifeHomeschooling_OLH.jpg" alt="Sheri Renno" loading="lazy"> 3464 <h4>Sheri Renno</h4> 3465 </a> 3466 </div> 3467 <div class="contributor"> 3468 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2165230958/settings_images/0e4af4-f4af-7ecd-027d-d3f5c117786_Misty-768x768_1_.jpg" alt="Misty Bailey" loading="lazy"> 3469 <h4>Misty Bailey</h4> 3470 </div> 3471<div class="contributor"> 3472 <a href="https://www.thewaldockway.com" target="_blank"> 3473 <img src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/file-uploads/themes/2160658754/settings_images/a685826-334d-d217-45d-d7e33ce4e513_Jessica_Waldock.jpg" alt="Jessica Waldock" loading="lazy"> 3474 <h4>Jessica Waldock</h4> 3475 </a> 3476</div> 3477 </div> 3478 3479 <p style="text-align: center; margin-top: 40px; color: var(--gray-700); font-size: 1.1rem; max-width: 900px; margin-left: auto; margin-right: auto;">Made2Homeschool has been crafted from day one by Christian homeschool content creators. Our resource libraries, our workshops and our community engagement will be influenced entirely by creators like these & more to come. This team and the rest of our community can't wait to connect and grow with you!</p> 3480 </div> 3481 </div> 3482 </section> 3483 3484 <!-- CTA Section - Stronger close with gradient background --> 3485 <section class="cta-section"> 3486 <div class="container"> 3487 <h2>Join Our Community</h2> 3488 <p>Become part of a supportive community of Christian homeschool families committed to raising the next generation of godly leaders.</p> 3489 <div class="cta-buttons"> 3490 <a href="https://www.made2homeschool.com/main-page-h2-2025" class="btn-primary">Explore Our Community</a> 3491 <a href="https://www.made2homeschool.com/main-page-h2-2025#pricing" class="btn-secondary">View Plans</a> 3492 </div> 3493 </div> 3494 </section> 3495</div> 3496
3497<script> 3498(function() { 3499 // ========== Counter Animations ========== 3500 function animateCounterEl(el, target, duration) { 3501 let animated = false; 3502 const obs = new IntersectionObserver((entries) => { 3503 entries.forEach(entry => { 3504 if (entry.isIntersecting && !animated) { 3505 animated = true; 3506 const start = Date.now(); 3507 const step = () => { 3508 const elapsed = Date.now() - start; 3509 const progress = Math.min(elapsed / duration, 1); 3510 const current = Math.floor(progress * target); 3511 el.textContent = current.toLocaleString() + (target >= 1000 ? '+' : '+'); 3512 if (progress < 1) { 3513 requestAnimationFrame(step); 3514 } 3515 }; 3516 step(); 3517 } 3518 }); 3519 }, { threshold: 0.5 }); 3520 obs.observe(el); 3521 } 3522 3523 const visionCounter = document.getElementById('visionCounter'); 3524 const countryCounter = document.getElementById('countryCounter'); 3525 3526 // Reduced motion: show final numbers immediately 3527 const prefersReduced = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 3528 3529 if (visionCounter) { 3530 if (prefersReduced) { 3531 visionCounter.textContent = '2,500+'; 3532 } else { 3533 animateCounterEl(visionCounter, 2500, 2000); 3534 } 3535 } 3536 if (countryCounter) { 3537 if (prefersReduced) { 3538 countryCounter.textContent = '32+'; 3539 } else { 3540 animateCounterEl(countryCounter, 32, 1500); 3541 } 3542 } 3543 3544 // ========== Value Cards Toggle ========== 3545 document.querySelectorAll('.values-page .card').forEach(card => { 3546 card.addEventListener('click', function() { 3547 this.classList.toggle('expanded'); 3548 }); 3549 }); 3550 3551 // ========== Faith Items - Desktop: Google Images style / Mobile: inline ========== 3552 const isMobile = () => window.innerWidth <= 768; 3553 3554 const faithData = { 3555 trinity: { title: 'The Trinity', text: 'God is and has always been. He exists as three persons - Father, Son, and Holy Spirit.' }, 3556 father: { title: 'The Father', text: 'We believe in one all-powerful, all-knowing, and ever-present God, the Father. He is holy, compassionate, faithful, and desires a personal relationship with us. He created humanity in His image and sent His Son to redeem us and renew all things.' }, 3557 son: { title: 'The Son', text: 'We believe in Jesus Christ, the Son of God, who has existed with the Father and the Holy Spirit since eternity past. He was born of a virgin, fully God & fully man. He lived a sinless life, died on the cross for our sins, and rose again. He is now at the right hand of the Father as our High Priest and Advocate.' }, 3558 spirit: { title: 'The Holy Spirit', text: 'We believe in the Holy Spirit, sent by Jesus after He rose from the dead, to empower the Church and give spiritual gifts. He indwells and empowers believers to live a godly life, guides us into truth, comforts us, and convicts us of sin.' }, 3559 bible: { title: 'The Bible', text: 'We believe the Bible is the inspired and authoritative Word of God, without error in the original writings. It reveals His will for salvation and is the ultimate authority for human knowledge and endeavor.' }, 3560 salvation: { title: 'Salvation', text: 'We believe salvation is a free gift of God\'s grace, received through faith in Jesus Christ. We believe in the resurrection of the dead and eternal life.' }, 3561 church: { title: 'The Church', text: 'We believe the church is the body of Christ, comprised of all who have been justified by God\'s grace through faith in Christ alone. We are called to serve and love one another.' }, 3562 life: { title: 'Christian Life', text: 'We believe God\'s will is for us to become more like Jesus. The Christian life is an ongoing process of repenting from sin, submitting to and obeying God\'s Word and Spirit and loving God and His children. All of these work together to develop Christ\'s character within us.' }, 3563 coming: { title: 'Second Coming', text: 'We believe in the second coming of Jesus Christ and the ultimate triumph of God\'s kingdom. His return demands constant expectancy, motivating believers to godly living, sacrificial service, and energetic mission.' }, 3564 gifts: { title: 'Spiritual Gifts', text: 'We believe in the spiritual gifts that the Holy Spirit has given to the church to build and sanctify it, and to confirm the power of the Gospel. These gifts always operate in harmony with the Scriptures and should never be used in violation of Biblical guidelines.' }, 3565 eternity: { title: 'Eternity', text: 'We believe that all people will experience eternity after the final judgment. We believe Heaven, in the presence of the Lord and Hell, an eternity of conscious suffering, are real places and are the only two options for our eternal destination. Only through justification by grace through faith in Jesus can our destination be eternity in the presence of the Lord.' }, 3566 marriage: { title: 'Marriage', text: 'We believe marriage is God-ordained. "The creator made them male and female, and said, \'For this reason a man will leave his father and mother and be united to his wife, and the two will become one flesh\'" (M
3566atthew 19:4-5). Marriage is to be an exclusive relationship, a lifelong faithful union between a man and a woman. This relationship between a husband and wife should parallel the relationship between Christ and the Church (Ephesians 5:23-30).' } 3567 }; 3568 3569 let activeFaith = null; 3570 3571 function closeFaithPanels() { 3572 document.querySelectorAll('.faith-expand-panel').forEach(p => p.classList.remove('open')); 3573 document.querySelectorAll('.faith-item').forEach(i => i.classList.remove('active')); 3574 activeFaith = null; 3575 } 3576 3577 function openFaithPanel(item) { 3578 const key = item.dataset.faith; 3579 const row = item.dataset.row; 3580 const panel = document.getElementById('faithPanel' + row); 3581 const data = faithData[key]; 3582 3583 if (!panel || !data) return; 3584 3585 // If clicking the same item, close it 3586 if (activeFaith === key) { 3587 closeFaithPanels(); 3588 return; 3589 } 3590 3591 closeFaithPanels(); 3592 3593 panel.innerHTML = '<div class="faith-expand-title">' + data.title + '</div><p>' + data.text + '</p><button class="faith-expand-close" aria-label="Close"><i class="fas fa-times"></i></button>'; 3594 3595 // Bind close button 3596 panel.querySelector('.faith-expand-close').addEventListener('click', function(e) { 3597 e.stopPropagation(); 3598 closeFaithPanels(); 3599 }); 3600 3601 requestAnimationFrame(() => { 3602 panel.classList.add('open'); 3603 item.classList.add('active'); 3604 activeFaith = key; 3605 }); 3606 } 3607 3608 document.querySelectorAll('.values-page .faith-item').forEach(item => { 3609 item.addEventListener('click', function() { 3610 if (isMobile()) { 3611 // Mobile: inline expand 3612 document.querySelectorAll('.values-page .faith-item').forEach(other => { 3613 if (other !== this) other.classList.remove('expanded'); 3614 }); 3615 this.classList.toggle('expanded'); 3616 } else { 3617 // Desktop: panel below row 3618 openFaithPanel(this); 3619 } 3620 }); 3621 }); 3622 3623 // ========== Intersection Observer for animations ========== 3624 const observerOptions = { 3625 threshold: 0.1, 3626 rootMargin: '0px 0px -100px 0px' 3627 }; 3628 3629 const observer = new IntersectionObserver((entries) => { 3630 entries.forEach(entry => { 3631 if (entry.isIntersecting) { 3632 entry.target.classList.add('visible'); 3633 } 3634 }); 3635 }, observerOptions); 3636 3637 document.querySelectorAll('.values-page .card, .values-page .team-member, .values-page .contributor').forEach(el => { 3638 observer.observe(el); 3639 }); 3640 3641 // Stagger animation delays 3642 document.querySelectorAll('.values-page .card').forEach((card, index) => { 3643 card.style.transitionDelay = index * 0.1 + 's'; 3644 }); 3645 3646 document.querySelectorAll('.values-page .team-member').forEach((member, index) => { 3647 member.style.transitionDelay = index * 0.05 + 's'; 3648 }); 3649 3650 document.querySelectorAll('.values-page .contributor').forEach((contributor, index) => {
3651 contributor.style.transitionDelay = index * 0.03 + 's'; 3652 }); 3653})(); 3654</script>
3654 3655 </div> 3656</div> 3657 3658 3659 </div> 3660 </div> 3661 </div> 3662</section> 3663</div><div id="section-1642460986083" data-section-id="1642460986083"></div><div id="section-1682824230591" data-section-id="1682824230591"></div><div id="section-1682824636271" data-section-id="1682824636271"></div><div id="section-1682824699211" data-section-id="1682824699211"></div><div id="section-1682824797723" data-section-id="1682824797723"></div><div id="section-1642461358334" data-section-id="1642461358334"></div><div id="section-1641150905426" data-section-id="1641150905426"></div></div> 3664 </main> 3665 <div id="section-footer" data-section-id="footer"> 3666 <style> 3667 #section-footer { 3668 -webkit-box-flex: 1; 3669 -ms-flex-positive: 1; 3670 flex-grow: 1; 3671 display: -webkit-box; 3672 display: -ms-flexbox; 3673 display: flex; 3674 } 3675 .footer { 3676 -webkit-box-flex: 1; 3677 -ms-flex-positive: 1; 3678 flex-grow: 1; 3679 } 3680 </style> 3681 3682<style> 3683 .footer { 3684 background-color: #f6f6f6; 3685 } 3686 .footer, .footer__block { 3687 font-size: 14px; 3688 color: ; 3689 } 3690 .footer .logo__text { 3691 color: ; 3692 } 3693 .footer .link-list__links { 3694 width: 100%; 3695 } 3696 .footer a.link-list__link { 3697 color: ; 3698 } 3699 .footer .link-list__link:hover { 3700 color: ; 3701 } 3702 .copyright { 3703 color: ; 3704 } 3705 @media (min-width: 768px) { 3706 .footer, .footer__block { 3707 font-size: 14px; 3708 } 3709 } 3710 .powered-by a { 3711 color: !important; 3712 } 3713 3714 .powered-by { 3715 text-align: center; 3716 padding-top: 0; 3717 } 3718 3719</style> 3720 3721<footer class="footer footer--stacked background-light " kjb-settings-id="sections_footer_settings_background_color"> 3722 <div class="footer__content"> 3723 <div class="container footer__container media"> 3724 3725 3726 <div id="block-1641235449838" class="footer__block "> 3727 <style> 3728 .social-icons--1641235449838 .social-icons__icons { 3729 justify-content: 3730 } 3731 .social-icons--1641235449838 .social-icons__icon { 3732 color: !important; 3733 } 3734 .social-icons--1641235449838.social-icons--round .social-icons__icon { 3735 background-color: #474747; 3736 } 3737 .social-icons--1641235449838.social-icons--square .social-icons__icon { 3738 background-color: #474747; 3739 } 3740 3741 3742 3743 @media (min-width: 768px) { 3744 .social-icons--1641235449838 .social-icons__icons { 3745 justify-content: 3746 } 3747 } 3748</style> 3749<div class="social-icons social-icons-- social-icons--1641235449838" kjb-settings-id="sections_footer_blocks_1641235449838_settings_social_icons_text_color"> 3750 <div class="social-icons__icons"> 3751 3752 <a class="social-icons__icon social-icons__icon--" href="https://www.facebook.com/made2homeschool" kjb-settings-id="sections_footer_blocks_1641235449838_settings_social_icon_link_facebook"> 3753 <i class="fab fa-facebook-f"></i> 3754 </a> 3755 3756 3757 3758 <a class="social-icons__icon social-icons__icon--" href="https://www.instagram.com/made2homeschool" kjb-settings-id="sections_footer_blocks_1641235449838_settings_social_icon_link_instagram"> 3759 <i class="fab fa-instagram"></i> 3760 </a> 3761 3762 3763 <a class="social-icons__icon social-icons__icon--" href="https://youtube.com/@madetohomeschool" kjb-settings-id="sections_footer_blocks_1641235449838_settings_social_icon_link_youtube"> 3764 <i class="fab fa-youtube"></i> 3765 </a> 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 </div> 3783</div> 3784</div> 3785 3786 3787 3788 3789 3790 3791 3792 3793<style> 3794 /* flush setting */ 3795 3796 3797 /* margin settings */ 3798 #block-1602193175296, [data-slick-id="1602193175296"] { 3799 margin-top: 0px; 3800 margin-right: 0px; 3801 margin-bottom: 0px; 3802 margin-left: 0px; 3803 } 3804 #block-1602193175296 .block, [data-slick-id="1602193175296"] .block { 3805 /* border settings */ 3806 border: 4px black; 3807 border-radius: 4px; 3808 3809 3810 /* background color */ 3811 3812 background-color: ; 3813 3814 /* default padding for mobile */ 3815 3816 padding: 20px; 3817 3818 3819 padding: 20px; 3820 3821 3822 3823 padding: 20px; 3824 3825 3826 /* mobile padding overrides */ 3827 3828 3829 padding-top: 0px; 3830 3831 3832 padding-right: 0px; 3833 3834 3835 padding-bottom: 0px; 3836 3837 3838 padding-left: 0px; 3839 3840 } 3841 3842 @media (min-width: 768px) { 3843 /* desktop margin settings */ 3844 #block-1602193175296, [data-slick-id="1602193175296"] { 3845 margin-top: 0px; 3846 margin-right: 0px; 3847 margin-bottom: 0px; 3848 margin-left: 0px; 3849 } 3850 #block-1602193175296 .block, [data-slick-id="1602193175296"] .block { 3851 /* default padding for desktop */ 3852 3853 padding: 30px; 3854 3855 3856 3857 padding: 30px; 3858 3859 3860 /* desktop padding overrides */ 3861 3862 3863 padding-top: 0px; 3864 3865 3866 padding-right: 0px; 3867 3868 3869 padding-bottom: 0px; 3870 3871 3872 padding-left: 0px; 3873 3874 } 3875 } 3876 /* mobile text align */ 3877 @media (max-width: 767px) { 3878 #block-1602193175296, [data-slick-id="1602193175296"] { 3879 text-align: center; 3880 } 3881 } 3882</style> 3883 3884 3885<div 3886 id="block-1602193175296" 3887 class=" 3888 block-type--link_list 3889 text-right 3890 col- 3891 3892 3893 3894 3895 " 3896 3897 data-reveal-event="" 3898 data-reveal-offset="" 3899 data-reveal-units="" 3900 3901 kjb-settings-id="sections_footer_blocks_1602193175296_settings_width" 3902 > 3903 <div class="block 3904 box-shadow- 3905 " 3906 3907 data-aos="-" 3908 data-aos-delay="" 3909 data-aos-duration="" 3910 3911 > 3912 3913 <style> 3914 #block-1602193175296 .link-list__title { 3915 color: ; 3916 } 3917 #block-1602193175296 .link-list__link { 3918 color: ; 3919 } 3920</style> 3921 3922 3923 3924<div class="link-list link-list--row link-list--desktop-right link-list--mobile-center"> 3925 3926 <div class="link-list__links" kjb-settings-id="sections_footer_blocks_1602193175296_settings_menu"> 3927 3928 </div> 3929</div> 3930 </div> 3931</div> 3932 3933 3934 3935 3936 <div id="block-1555988525205" class="footer__block "> 3937 <span class="copyright" kjb-settings-id="sections_footer_blocks_1555988525205_settings_copyright" role="presentation"> 3938 © 2026 Made2Homeschool. All Rights Reserved. 3939</span> 3940</div> 3941 3942 3943 </div> 3944 3945 </div> 3946 3947</footer> 3948 3949</div> 3950 <div id="section-exit_pop" data-section-id="exit_pop"><style> 3951 #exit-pop .modal__content { 3952 background: ; 3953 } 3954 3955</style> 3956 3957 3958 3959 3960 3961 3962</div> 3963 <div id="section-two_step" data-section-id="two_step"><style> 3964 #two-step .modal__content { 3965 background: ; 3966 } 3967 3968</style> 3969 3970<div class="modal two-step" id="two-step" kjb-settings-id="sections_two_step_settings_two_step_edit"> 3971 <div class="modal__content background-unrecognized"> 3972 <div class="close-x"> 3973 <div class="close-x__part"></div> 3974 <div class="close-x__part"></div> 3975 </div> 3976 <div class="modal__body row text- align-items-start justify-content-left"> 3977 3978 </div> 3979 </div> 3980</div> 3981 3982 3983 3984</div> 3985 <!-- Javascripts ======================================================= -->
3986<script charset='ISO-8859-1' src='https://fast.wistia.com/assets/external/E-v1.js'></script>
vendor: 1 bytes, line 3986
3986
3987<script charset='ISO-8859-1' src='https://fast.wistia.com/labs/crop-fill/plugin.js'></script>
vendor: 1 bytes, line 3987
3987
3988<script src="https://kajabi-app-assets.kajabi-cdn.com/assets/encore_core-9fe29e19cccfbb623a8695d377d198840772a40b51018f5b4729aef94a99f469.js"></script>
vendor: 1 bytes, line 3988
3988
3989<script src="https://kajabi-storefronts-production.kajabi-cdn.com/kajabi-storefronts-production/themes/2153655894/assets/scripts.js?1788492246387407"></script>
3989 3990 3991 3992 3993<!-- Customer JS ======================================================= -->
3994<script> 3995 /* Custom JS Added Via Theme Settings */ 3996 /* Javascript code goes here */ 3997</script>
3997 3998 </body> 3999</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.