// Main app — route state, Tweaks context, page wiring const TweaksCtx = createContext({}); window.TweaksCtx = TweaksCtx; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "hero": "editorial", "theme": "light", "lang": "EN", "showFab": true, "accentMode": "bronze", "displayFont": "Cormorant Garamond", "bodyFont": "Inter" }/*EDITMODE-END*/; function App() { const [route, setRoute] = useState({ page: 'home' }); const [tweaks, setTweaks] = useState(TWEAK_DEFAULTS); const setTweak = (patch) => { const next = typeof patch === 'function' ? patch(tweaks) : { ...tweaks, ...patch }; setTweaks(next); window.parent.postMessage({ type: '__edit_mode_set_keys', edits: next }, '*'); }; const go = useCallback((next) => { setRoute(next); window.scrollTo({ top: 0, behavior: 'auto' }); }, []); // Apply theme + dir useEffect(() => { document.documentElement.className = tweaks.theme === 'dark' ? 'theme-dark' : ''; document.documentElement.dir = tweaks.lang === 'AR' ? 'rtl' : 'ltr'; document.documentElement.lang = tweaks.lang.toLowerCase(); }, [tweaks.theme, tweaks.lang]); // Apply accent palette useEffect(() => { const root = document.documentElement; if (tweaks.accentMode === 'navy') { root.style.setProperty('--bronze', '#3D6B8E'); root.style.setProperty('--bronze-deep', '#1E3A5F'); root.style.setProperty('--bronze-tint', '#EDF2F7'); } else if (tweaks.accentMode === 'sage') { root.style.setProperty('--bronze', '#7A8B6F'); root.style.setProperty('--bronze-deep', '#4F5E47'); root.style.setProperty('--bronze-tint', '#EFF1EC'); } else { root.style.setProperty('--bronze', '#B79360'); root.style.setProperty('--bronze-deep', '#8D6E40'); root.style.setProperty('--bronze-tint', '#F5EFE3'); } }, [tweaks.accentMode]); // Apply font choices useEffect(() => { document.documentElement.style.setProperty('--font-display', `"${tweaks.displayFont}", "Times New Roman", serif`); document.documentElement.style.setProperty('--font-body', `"${tweaks.bodyFont}", -apple-system, BlinkMacSystemFont, sans-serif`); }, [tweaks.displayFont, tweaks.bodyFont]); const ctxValue = { ...tweaks, set: setTweak, hero: tweaks.hero, lang: tweaks.lang }; let page = null; switch (route.page) { case 'home': page = ; break; case 'procedures': page = ; break; case 'procedure': page = ; break; case 'surgeons': page = ; break; case 'surgeon': page = ; break; case 'before-after': page = ; break; case 'about': page = ; break; case 'contact': page = ; break; case 'book': page = ; break; default: page = ; } return (