{"version":3,"file":"script_main.d80FuDKE.mjs","names":["useState","useRef","EmbedFonts","Embed","BGItem","serializationHash","variantClassNames","matchVariant","React.useContext","React.useMemo","humanReadableVariantMap","React.Fragment","getProps","React.forwardRef","useRef","React.useId","React.useState","React.useRef","React.useCallback","React.useMemo","React.startTransition","Embed","Embed1","Footer","useRef","React.useId","PropertyOverrides","React.createElement","Main","Framer.PageRoot","Framer.lazy","Framer.useCurrentRoute","Framer.useLocaleInfo","Framer.useRouter","React.Fragment","React.memo","React.useCallback","React.useEffect","React.useRef","React.useState","React.useLayoutEffect","Framer.LazyValue","Framer.GracefullyDegradingErrorBoundary","Framer.PageEffectsProvider","Framer.patchRoutesForABTesting","Framer.inferInitialRouteFromPath","Framer.yieldToMain","React.startTransition","Framer.ErrorPlaceholder"],"sources":["https:/framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/7LsYGOkyjLv3zWdmJA4n/Embed.js","https:/framerusercontent.com/modules/47cNhk39ReIhRJHwdBDG/KWo6LFJxyA7UI1zAYCbS/JnzAem52X.js","https:/framerusercontent.com/modules/XYhjVa2GSBmPpYgB48pY/1ATMQXUV7wojq45rLTpe/OptimaPillNavigation.js","https:/framerusercontent.com/modules/6Z29e0zv6aU2AwJdzeUi/FdPCx8cQbcJzxbuhZ0PJ/qhnRAmdje.js","framer:toplevel/main"],"sourcesContent":["// ⚠️⚠️⚠️⚠️⚠️\n// Edit these files in https://github.com/framer/FramerCodeComponents\n// ⚠️⚠️⚠️⚠️⚠️\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useIsOnCanvas,emptyStateStyle,containerStyles}from\"https://framer.com/m/framer/default-utils.js\";/**\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n *\n * @framerDisableUnlink\n */export default function Embed({type,url,html,zoom,radius,border,style={}}){if(type===\"url\"&&url){return /*#__PURE__*/_jsx(EmbedUrl,{url:url,zoom:zoom,radius:radius,border:border,style:style});}if(type===\"html\"&&html){return /*#__PURE__*/_jsx(EmbedHtml,{html:html,style:style});}return /*#__PURE__*/_jsx(Instructions,{style:style});}addPropertyControls(Embed,{type:{type:ControlType.Enum,defaultValue:\"url\",displaySegmentedControl:true,options:[\"url\",\"html\"],optionTitles:[\"URL\",\"HTML\"]},url:{title:\"URL\",type:ControlType.String,description:\"Some websites don’t support embedding.\",hidden(props){return props.type!==\"url\";}},html:{title:\"HTML\",type:ControlType.String,displayTextArea:true,hidden(props){return props.type!==\"html\";}},border:{title:\"Border\",type:ControlType.Border,optional:true,hidden(props){return props.type!==\"url\";}},radius:{type:ControlType.BorderRadius,title:\"Radius\",hidden(props){return props.type!==\"url\";}},zoom:{title:\"Zoom\",defaultValue:1,type:ControlType.Number,hidden(props){return props.type!==\"url\";},min:.1,max:1,step:.1,displayStepper:true}});function Instructions({style}){return /*#__PURE__*/_jsx(\"div\",{style:{minHeight:getMinHeight(style),...emptyStateStyle,overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"Add a URL to embed a website.\"})});}function EmbedUrl({url,zoom,radius,border,style}){const hasAutoHeight=!style.height;// Add https:// if the URL does not have a protocol.\nif(!/[a-z]+:\\/\\//.test(url)){url=\"https://\"+url;}const onCanvas=useIsOnCanvas();// We need to check if the url is blocked inside an iframe by the X-Frame-Options\n// or Content-Security-Policy headers on the backend.\nconst[state,setState]=useState(onCanvas?undefined:false);useEffect(()=>{// We only want to check on the canvas.\n// On the website we want to avoid the additional delay.\nif(!onCanvas)return;// TODO: We could also use AbortController here.\nlet isLastEffect=true;setState(undefined);async function load(){const response=await fetch(\"https://api.framer.com/functions/check-iframe-url?url=\"+encodeURIComponent(url));if(response.status==200){const{isBlocked}=await response.json();if(isLastEffect){setState(isBlocked);}}else{const message=await response.text();console.error(message);const error=new Error(\"This site can’t be reached.\");setState(error);}}load().catch(error=>{console.error(error);setState(error);});return()=>{isLastEffect=false;};},[url]);if(onCanvas&&hasAutoHeight){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"URL embeds do not support auto height.\",style:style});}if(!url.startsWith(\"https://\")){return /*#__PURE__*/_jsx(ErrorMessage,{message:\"Unsupported protocol.\",style:style});}if(state===undefined){return /*#__PURE__*/_jsx(LoadingIndicator,{});}if(state instanceof Error){return /*#__PURE__*/_jsx(ErrorMessage,{message:state.message,style:style});}if(state===true){const message=`Can’t embed ${url} due to its content security policy.`;return /*#__PURE__*/_jsx(ErrorMessage,{message:message,style:style});}return /*#__PURE__*/_jsx(\"iframe\",{src:url,style:{...iframeStyle,...style,...border,zoom:zoom,borderRadius:radius,transformOrigin:\"top center\"},loading:\"lazy\",// @ts-ignore\nfetchPriority:onCanvas?\"low\":\"auto\",referrerPolicy:\"no-referrer\",sandbox:getSandbox(onCanvas),allowFullScreen:true,allow:\"presentation; fullscreen; accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture; clipboard-write\"});}const iframeStyle={width:\"100%\",height:\"100%\",border:\"none\"};function getSandbox(onCanvas){const result=[\"allow-same-origin\",\"allow-scripts\"];if(!onCanvas){result.push(\"allow-downloads\",\"allow-forms\",\"allow-modals\",\"allow-orientation-lock\",\"allow-pointer-lock\",\"allow-popups\",\"allow-popups-to-escape-sandbox\",\"allow-presentation\",\"allow-storage-access-by-user-activation\",\"allow-top-navigation-by-user-activation\");}return result.join(\" \");}function EmbedHtml({html,...props}){const hasScript=html.includes(\"</script>\");if(hasScript){const hasSplineViewer=html.includes(\"</spline-viewer>\");const hasComment=html.includes(\"<!-- framer-direct-embed -->\");if(hasSplineViewer||hasComment){return /*#__PURE__*/_jsx(EmbedHtmlWithScripts,{html:html,...props});}return /*#__PURE__*/_jsx(EmbedHtmlInsideIframe,{html:html,...props});}return /*#__PURE__*/_jsx(EmbedHtmlWithoutScripts,{html:html,...props});}function EmbedHtmlInsideIframe({html,style}){const ref=useRef();const[iframeHeight,setIframeHeight]=useState(0);// Handle auto sizing\nuseEffect(()=>{const iframeWindow=ref.current?.contentWindow;function handleMessage(event){if(event.source!==iframeWindow)return;const data=event.data;if(typeof data!==\"object\"||data===null)return;const height=data.embedHeight;if(typeof height!==\"number\")return;setIframeHeight(height);}window.addEventListener(\"message\",handleMessage);// After SSG the iframe loads before we attach the event handler,\n// therefore we need to request the latest height from the iframe.\niframeWindow?.postMessage(\"getEmbedHeight\",\"*\");return()=>{window.removeEventListener(\"message\",handleMessage);};},[]);// The CSS is mainly copied from:\n// FramerStudio/src/app/vekter/src/renderer/setDefaultFont.ts\n// FramerStudio/src/app/vekter/src/export/globalStylesForExport.ts\nconst srcDoc=`\n<html>\n    <head>\n        <style>\n            html, body {\n                margin: 0;\n                padding: 0;\n            }\n\n            body {\n                display: flex;\n                justify-content: center;\n                align-items: center;\n            }\n\n            :root {\n                -webkit-font-smoothing: antialiased;\n                -moz-osx-font-smoothing: grayscale;\n            }\n\n            * {\n                box-sizing: border-box;\n                -webkit-font-smoothing: inherit;\n            }\n\n            h1, h2, h3, h4, h5, h6, p, figure {\n                margin: 0;\n            }\n\n            body, input, textarea, select, button {\n                font-size: 12px;\n                font-family: sans-serif;\n            }\n        </style>\n    </head>\n    <body>\n        ${html}\n        <script type=\"module\">\n            let height = 0\n\n            function sendEmbedHeight() {\n                window.parent.postMessage({\n                    embedHeight: height\n                }, \"*\")\n            }\n\n            const observer = new ResizeObserver((entries) => {\n                if (entries.length !== 1) return\n                const entry = entries[0]\n                if (entry.target !== document.body) return\n\n                height = entry.contentRect.height\n                sendEmbedHeight()\n            })\n\n            observer.observe(document.body)\n\n            window.addEventListener(\"message\", (event) => {\n                if (event.source !== window.parent) return\n                if (event.data !== \"getEmbedHeight\") return\n                sendEmbedHeight()\n            })\n        </script>\n    <body>\n</html>\n`;const currentStyle={...iframeStyle,...style};const hasAutoHeight=!style.height;if(hasAutoHeight){currentStyle.height=iframeHeight+\"px\";}return /*#__PURE__*/_jsx(\"iframe\",{ref:ref,style:currentStyle,srcDoc:srcDoc});}function EmbedHtmlWithScripts({html,style}){const ref=useRef();useEffect(()=>{const div=ref.current;if(!div)return;div.innerHTML=html;executeScripts(div);return()=>{div.innerHTML=\"\";};},[html]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{...htmlStyle,...style}});}function EmbedHtmlWithoutScripts({html,style}){return /*#__PURE__*/_jsx(\"div\",{style:{...htmlStyle,...style},dangerouslySetInnerHTML:{__html:html}});}const htmlStyle={width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\"};// This function replaces scripts with executable ones.\n// https://stackoverflow.com/questions/1197575/can-scripts-be-inserted-with-innerhtml\nfunction executeScripts(node){if(node instanceof Element&&node.tagName===\"SCRIPT\"){const script=document.createElement(\"script\");script.text=node.innerHTML;for(const{name,value}of node.attributes){script.setAttribute(name,value);}node.parentElement.replaceChild(script,node);}else{for(const child of node.childNodes){executeScripts(child);}}}// Generic components\nfunction LoadingIndicator(){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-componentPlaceholder\",style:{...containerStyles,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:\"Loading…\"})});}function ErrorMessage({message,style}){return /*#__PURE__*/_jsx(\"div\",{className:\"framerInternalUI-errorPlaceholder\",style:{minHeight:getMinHeight(style),...containerStyles,overflow:\"hidden\",...style},children:/*#__PURE__*/_jsx(\"div\",{style:centerTextStyle,children:message})});}const centerTextStyle={textAlign:\"center\",minWidth:140};// Returns a min-height if the component is using auto-height.\nfunction getMinHeight(style){const hasAutoHeight=!style.height;if(hasAutoHeight)return 200;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Embed\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"400\",\"framerIntrinsicWidth\":\"600\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Embed.map","// Generated by Framer (fd0ec14)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentViewportProvider,ControlType,cx,forwardLoader,getFonts,SmartComponentScopedContainer,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Embed from\"https://framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/cAPMVEI6osbJ1UvICgTq/Embed.js\";import BGItem from\"https://framerusercontent.com/modules/kDwidlxgXcCy4BkZldZw/3ZHySwjqLk06z9Sk6yVO/zGIHREhZy.js\";const EmbedFonts=getFonts(Embed);const BGItemFonts=getFonts(BGItem);const cycleOrder=[\"qxcUNJcIB\",\"EAE4hFzUn\",\"Qk6E2mkA1\"];const serializationHash=\"framer-3x11l\";const variantClassNames={EAE4hFzUn:\"framer-v-1ljrgyj\",Qk6E2mkA1:\"framer-v-1qyqddu\",qxcUNJcIB:\"framer-v-6m69re\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const humanReadableVariantMap={Desktop:\"qxcUNJcIB\",Phone:\"Qk6E2mkA1\",Tablet:\"EAE4hFzUn\"};const Variants=motion.create(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"qxcUNJcIB\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"qxcUNJcIB\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.footer,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-6m69re\",className,classNames),\"data-framer-name\":\"Desktop\",layoutDependency:layoutDependency,layoutId:\"qxcUNJcIB\",ref:refBinding,style:{backgroundColor:\"rgb(23, 23, 23)\",...style},...addPropertyOverrides({EAE4hFzUn:{\"data-framer-name\":\"Tablet\"},Qk6E2mkA1:{\"data-framer-name\":\"Phone\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-4w484g-container\",isAuthoredByUser:true,isModuleExternal:true,layoutDependency:layoutDependency,layoutId:\"GafMD0fC4-container\",nodeId:\"GafMD0fC4\",rendersWithMotion:true,scopeId:\"JnzAem52X\",children:/*#__PURE__*/_jsx(Embed,{height:\"100%\",html:'<style>\\n  html,body{width:100%;margin:0;padding:0;background:#171717}\\n  *{box-sizing:border-box}\\n  .ogf{\\n    --bg:#171717;--text:#fff;--muted:#a7a7a7;--line:rgba(255,255,255,.16);\\n    position:relative;width:100%;overflow:hidden;color:var(--text);background:var(--bg);\\n    border-top:1px solid var(--line);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif\\n  }\\n  .ogf__inner{width:100%;padding:clamp(42px,5vw,72px) clamp(18px,4vw,58px) 22px}\\n  .ogf__body{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(24px,3.5vw,60px);padding-bottom:clamp(36px,5vw,64px)}\\n  .ogf__label{margin:0 0 15px;color:#fff;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}\\n  .ogf__links{display:grid;gap:3px;margin:0;padding:0;list-style:none}\\n  .ogf__link{position:relative;display:inline-flex;width:max-content;max-width:100%;padding:4px 0;color:#c4c4c4;font-size:12px;line-height:1.4;text-decoration:none;transition:color .25s,transform .25s}\\n  .ogf__link::after{content:\"\";position:absolute;left:0;bottom:2px;width:100%;height:1px;background:#fff;transform:scaleX(0);transform-origin:right;transition:transform .3s ease}\\n  .ogf__link:hover{color:#fff;transform:translateX(3px)}\\n  .ogf__link:hover::after{transform:scaleX(1);transform-origin:left}\\n  .ogf__contact-list{display:grid;gap:10px}\\n  .ogf__contact{display:block;padding-bottom:10px;color:#fff;border-bottom:1px solid var(--line);text-decoration:none}\\n  .ogf__contact small{display:block;margin-bottom:5px;color:#929292;font-size:8px;font-weight:750;letter-spacing:.14em;text-transform:uppercase}\\n  .ogf__contact span{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px;overflow-wrap:anywhere}\\n  .ogf__contact i{display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;color:#171717;background:#fff;border-radius:50%;font-size:12px;font-style:normal;transition:transform .25s}\\n  .ogf__contact:hover i{transform:translate(2px,-2px)}\\n  .ogf__legal{display:grid;grid-template-columns:1fr auto;align-items:end;gap:24px;padding-top:18px;border-top:1px solid var(--line)}\\n  .ogf__copyright{margin:0;color:#8f8f8f;font-size:9px;line-height:1.6;letter-spacing:.035em}\\n  .ogf__socials{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}\\n  .ogf__social{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;color:#c4c4c4;border:1px solid var(--line);border-radius:999px;font-size:8px;font-weight:750;letter-spacing:.11em;text-decoration:none;text-transform:uppercase;transition:color .25s,border-color .25s,background .25s,transform .25s}\\n  .ogf__social i{font-size:10px;font-style:normal}\\n  .ogf__social:hover{color:#171717;background:#fff;border-color:#fff;transform:translateY(-2px)}\\n  .ogf__top{display:grid;place-items:center;width:38px;height:38px;margin-left:4px;padding:0;color:#fff;background:transparent;border:1px solid var(--line);border-radius:50%;cursor:pointer;transition:color .25s,background .25s,transform .25s}\\n  .ogf__top:hover{color:#171717;background:#fff;transform:translateY(-2px)}\\n  .ogf-reveal{opacity:0;transform:translateY(18px);transition:opacity .65s ease,transform .65s ease}\\n  .ogf-reveal.is-visible{opacity:1;transform:none}\\n  @media(max-width:1050px){.ogf__body{grid-template-columns:repeat(3,minmax(0,1fr))}}\\n  @media(max-width:650px){.ogf__body{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 24px}.ogf__legal{grid-template-columns:1fr}.ogf__socials{justify-content:flex-start}}\\n  @media(max-width:420px){.ogf__body{grid-template-columns:1fr}}\\n  @media(prefers-reduced-motion:reduce){.ogf-reveal{opacity:1;transform:none;transition:none}.ogf__link,.ogf__link::after,.ogf__contact i,.ogf__social,.ogf__top{transition:none}}\\n</style>\\n\\n<footer class=\"ogf\" aria-labelledby=\"ogf-title\" data-optima-footer>\\n  <div class=\"ogf__inner\">\\n    <h2 id=\"ogf-title\" style=\"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0\">OptimaWebAI footer</h2>\\n    <div class=\"ogf__body ogf-reveal\">\\n      <nav aria-label=\"Explore\">\\n        <p class=\"ogf__label\">Explore</p>\\n        <ul class=\"ogf__links\">\\n          <li><a class=\"ogf__link\" href=\"/\" target=\"_top\">Home</a></li>\\n          <li><a class=\"ogf__link\" href=\"/about\" target=\"_top\">About</a></li>\\n          <li><a class=\"ogf__link\" href=\"/projects\" target=\"_top\">Projects</a></li>\\n          <li><a class=\"ogf__link\" href=\"/experience-lab\" target=\"_top\">Experience Lab</a></li>\\n          <li><a class=\"ogf__link\" href=\"/pricing\" target=\"_top\">Pricing</a></li>\\n          <li><a class=\"ogf__link\" href=\"/contact\" target=\"_top\">Contact</a></li>\\n        </ul>\\n      </nav>\\n\\n      <nav aria-label=\"Services\">\\n        <p class=\"ogf__label\">Services</p>\\n        <ul class=\"ogf__links\">\\n          <li><a class=\"ogf__link\" href=\"/web-design\" target=\"_top\">Web Design</a></li>\\n          <li><a class=\"ogf__link\" href=\"/ecommerce-web-design\" target=\"_top\">E-commerce Web Design</a></li>\\n          <li><a class=\"ogf__link\" href=\"/shopify-web-design\" target=\"_top\">Shopify Web Design</a></li>\\n          <li><a class=\"ogf__link\" href=\"/custom-web-development\" target=\"_top\">Custom Web Development</a></li>\\n          <li><a class=\"ogf__link\" href=\"/website-redesign\" target=\"_top\">Website Redesign</a></li>\\n          <li><a class=\"ogf__link\" href=\"/interactive-web-design\" target=\"_top\">Interactive Web Design</a></li>\\n          <li><a class=\"ogf__link\" href=\"/landing-page-design\" target=\"_top\">Landing Page Design</a></li>\\n        </ul>\\n      </nav>\\n\\n      <div>\\n        <p class=\"ogf__label\">Contact</p>\\n        <div class=\"ogf__contact-list\">\\n          <a class=\"ogf__contact\" href=\"mailto:optimawebai@gmail.com\"><small>Email</small><span>optimawebai@gmail.com <i aria-hidden=\"true\">&#8599;</i></span></a>\\n          <a class=\"ogf__contact\" href=\"tel:+27815001968\"><small>Phone</small><span>+27 81 500 1968 <i aria-hidden=\"true\">&#8599;</i></span></a>\\n        </div>\\n      </div>\\n\\n      <nav aria-label=\"Policies\"><p class=\"ogf__label\">Policies</p><ul class=\"ogf__links\"><li><a class=\"ogf__link\" href=\"/legal-pages/privacy-policy\" target=\"_top\">Privacy Policy</a></li><li><a class=\"ogf__link\" href=\"/legal-pages/terms-and-conditions\" target=\"_top\">Terms &amp; Conditions</a></li></ul></nav>\\n      <nav aria-label=\"Information\"><p class=\"ogf__label\">Information</p><ul class=\"ogf__links\"><li><a class=\"ogf__link\" href=\"/legal-pages/disclaimer\" target=\"_top\">Disclaimer</a></li><li><a class=\"ogf__link\" href=\"/legal-pages/cookie-policy\" target=\"_top\">Cookie Policy</a></li></ul></nav>\\n      <nav aria-label=\"Client terms\"><p class=\"ogf__label\">Client Terms</p><ul class=\"ogf__links\"><li><a class=\"ogf__link\" href=\"/legal-pages/refund-and-cancellation-policy\" target=\"_top\">Refund &amp; Cancellation</a></li><li><a class=\"ogf__link\" href=\"/legal-pages/service-level-agreement-%28sla%29\" target=\"_top\">Service Level Agreement</a></li></ul></nav>\\n    </div>\\n\\n    <div class=\"ogf__legal ogf-reveal\">\\n      <p class=\"ogf__copyright\">\\xa9 <span data-ogf-year>2026</span> OptimaWebAI (Pty) Ltd. All rights reserved.<br>Web design &amp; digital solutions \\xb7 South Africa</p>\\n      <div class=\"ogf__socials\">\\n        <a class=\"ogf__social\" href=\"https://www.instagram.com/optimawebai/\" target=\"_blank\" rel=\"noopener\" aria-label=\"OptimaWebAI on Instagram\"><span>Instagram</span><i aria-hidden=\"true\">&#8599;</i></a>\\n        <a class=\"ogf__social\" href=\"https://www.tiktok.com/@optimawebai\" target=\"_blank\" rel=\"noopener\" aria-label=\"OptimaWebAI on TikTok\"><span>TikTok</span><i aria-hidden=\"true\">&#8599;</i></a>\\n        <a class=\"ogf__social\" href=\"https://www.facebook.com/share/1DiEsb7GoH/?mibextid=wwXIfr\" target=\"_blank\" rel=\"noopener\" aria-label=\"OptimaWebAI on Facebook\"><span>Facebook</span><i aria-hidden=\"true\">&#8599;</i></a>\\n        <button class=\"ogf__top\" type=\"button\" aria-label=\"Back to top\">&#8593;</button>\\n      </div>\\n    </div>\\n  </div>\\n</footer>\\n\\n<script>\\n(() => {\\n  document.querySelectorAll(\\'[data-optima-footer]\\').forEach(root => {\\n    if(root.dataset.ready) return;\\n    root.dataset.ready=\\'true\\';\\n    const year=root.querySelector(\\'[data-ogf-year]\\');\\n    if(year) year.textContent=new Date().getFullYear();\\n    root.querySelector(\\'.ogf__top\\')?.addEventListener(\\'click\\',()=>window.scrollTo({top:0,behavior:matchMedia(\\'(prefers-reduced-motion: reduce)\\').matches?\\'auto\\':\\'smooth\\'}));\\n    if(!(\\'IntersectionObserver\\' in window)){root.querySelectorAll(\\'.ogf-reveal\\').forEach(el=>el.classList.add(\\'is-visible\\'));return}\\n    const observer=new IntersectionObserver(entries=>entries.forEach(entry=>{if(entry.isIntersecting){entry.target.classList.add(\\'is-visible\\');observer.unobserve(entry.target)}}),{threshold:.08});\\n    root.querySelectorAll(\\'.ogf-reveal\\').forEach(el=>observer.observe(el));\\n  });\\n})();\\n</script>\\n',id:\"GafMD0fC4\",layoutId:\"GafMD0fC4\",radius:\"0px\",style:{width:\"100%\"},type:\"html\",url:\"\",width:\"100%\",zoom:1})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:(componentViewport?.height||471)*1,width:componentViewport?.width||\"100vw\",y:(componentViewport?.y||0)+0,...addPropertyOverrides({EAE4hFzUn:{height:(componentViewport?.height||671)*1},Qk6E2mkA1:{height:(componentViewport?.height||200)*1}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(SmartComponentScopedContainer,{className:\"framer-1x2enmo-container\",layoutDependency:layoutDependency,layoutId:\"zmmRaFmVN-container\",nodeId:\"zmmRaFmVN\",rendersWithMotion:true,scopeId:\"JnzAem52X\",children:/*#__PURE__*/_jsx(BGItem,{height:\"100%\",id:\"zmmRaFmVN\",layoutId:\"zmmRaFmVN\",style:{height:\"100%\",width:\"100%\"},t9FMFYCtS:\"var(--token-2fbb8a30-5c97-448a-8e88-2c48df67cb52, rgba(255, 255, 255, 0.07))\",variant:matchVariant(\"WX_QHnVLj\"),width:\"100%\",...addPropertyOverrides({EAE4hFzUn:{variant:matchVariant(\"i2j0DmlNt\")},Qk6E2mkA1:{variant:matchVariant(\"k4c5GyTiw\")}},baseVariant,gestureVariant)})})})]})})})});});const css=[\".framer-3x11l.framer-1fq8shv, .framer-3x11l .framer-1fq8shv { display: block; }\",\".framer-3x11l.framer-6m69re { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px 0px 50px 0px; position: relative; width: 1200px; }\",\".framer-3x11l .framer-4w484g-container { flex: 1 0 0px; height: auto; position: relative; width: 1px; }\",\".framer-3x11l .framer-1x2enmo-container { -webkit-user-select: none; flex: none; height: 100%; left: calc(50.00000000000002% - 100% / 2); pointer-events: none; position: absolute; top: 0px; user-select: none; width: 100%; }\",\".framer-3x11l.framer-v-1ljrgyj.framer-6m69re { padding: 130px 0px 50px 0px; width: 810px; }\",\".framer-3x11l.framer-v-1qyqddu.framer-6m69re { padding: 100px 0px 40px 0px; width: 360px; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 471\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"EAE4hFzUn\":{\"layout\":[\"fixed\",\"auto\"]},\"Qk6E2mkA1\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerJnzAem52X=withCSS(Component,css,\"framer-3x11l\");export default FramerJnzAem52X;FramerJnzAem52X.displayName=\"Footer\";FramerJnzAem52X.defaultProps={height:471,width:1200};addPropertyControls(FramerJnzAem52X,{variant:{options:[\"qxcUNJcIB\",\"EAE4hFzUn\",\"Qk6E2mkA1\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],title:\"Variant\",type:ControlType.Enum}});addFonts(FramerJnzAem52X,[{explicitInter:true,fonts:[]},...EmbedFonts,...BGItemFonts],{supportsExplicitInterCodegen:true});FramerJnzAem52X.loader={load:(props,context)=>{const locale=context.locale;return Promise.allSettled([forwardLoader(BGItem,{},context)]);}};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerJnzAem52X\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"EAE4hFzUn\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"Qk6E2mkA1\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerIntrinsicHeight\":\"471\",\"framerContractVersion\":\"1\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"1200\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./JnzAem52X.map","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";const SERVICES=[{label:\"Web Design\",href:\"/web-design\"},{label:\"E-commerce Web Design\",href:\"/ecommerce-web-design\"},{label:\"Shopify Web Design\",href:\"/shopify-web-design\"},{label:\"Custom Web Development\",href:\"/custom-web-development\"},{label:\"Website Redesign\",href:\"/website-redesign\"},{label:\"Interactive Web Design\",href:\"/interactive-web-design\"},{label:\"Landing Page Design\",href:\"/landing-page-design\"}];const PRIMARY_LINKS=[{label:\"Home\",href:\"/\"},{label:\"About\",href:\"/about\"},{label:\"Projects\",href:\"/projects\"},{label:\"Experience Lab\",href:\"/experience-lab\"},{label:\"Pricing\",href:\"/pricing\"}];const CTA_LINK={label:\"Start a Project\",href:\"/contact\"};function normalizePath(pathname){if(!pathname)return\"/\";const trimmed=pathname.replace(/\\/+$/,\"\");return trimmed.length===0?\"/\":trimmed;}function isRouteActive(currentPath,target){if(!currentPath)return false;const now=normalizePath(currentPath);const route=normalizePath(target);if(route===\"/\")return now===\"/\";return now===route||now.startsWith(`${route}/`);}function isServicesRoute(currentPath){const now=normalizePath(currentPath);return SERVICES.some(item=>isRouteActive(now,item.href));}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight fixed\n */export default function OptimaPillNavigation(props){const{style,brandOptima=\"Optima\",brandWebAI=\"WebAI\",accentColor=\"#7FA9FF\"}=props;const[menuOpen,setMenuOpen]=React.useState(false);const[mobileServicesOpen,setMobileServicesOpen]=React.useState(false);const[desktopServicesOpen,setDesktopServicesOpen]=React.useState(false);const[currentPath,setCurrentPath]=React.useState(\"\");const navRef=React.useRef(null);const mobilePanelRef=React.useRef(null);const desktopServicesRef=React.useRef(null);const desktopTriggerRef=React.useRef(null);const mobileTriggerRef=React.useRef(null);const menuToggleRef=React.useRef(null);const closeTimerRef=React.useRef(null);const resolvePath=React.useCallback(()=>{if(typeof window!==\"undefined\"){return normalizePath(window.location.pathname);}return\"/\";},[]);const closeAll=React.useCallback(()=>{React.startTransition(()=>{setMenuOpen(false);setMobileServicesOpen(false);setDesktopServicesOpen(false);});},[]);const closeAllAndFocusMenuToggle=React.useCallback(()=>{closeAll();if(typeof window!==\"undefined\"){window.requestAnimationFrame(()=>{menuToggleRef.current?.focus();});}},[closeAll]);const setDesktopOpen=React.useCallback(value=>{React.startTransition(()=>setDesktopServicesOpen(value));},[]);const clearCloseTimer=React.useCallback(()=>{if(closeTimerRef.current!==null&&typeof window!==\"undefined\"){window.clearTimeout(closeTimerRef.current);closeTimerRef.current=null;}},[]);const delayedDesktopClose=React.useCallback(()=>{clearCloseTimer();if(typeof window!==\"undefined\"){closeTimerRef.current=window.setTimeout(()=>{React.startTransition(()=>setDesktopServicesOpen(false));closeTimerRef.current=null;},100);}},[clearCloseTimer]);React.useEffect(()=>{React.startTransition(()=>setCurrentPath(resolvePath()));if(typeof window===\"undefined\")return;const onPopState=()=>{React.startTransition(()=>setCurrentPath(resolvePath()));};const originalPushState=window.history.pushState;const originalReplaceState=window.history.replaceState;const patchedPushState=function(...args){originalPushState.apply(this,args);React.startTransition(()=>setCurrentPath(resolvePath()));};const patchedReplaceState=function(...args){originalReplaceState.apply(this,args);React.startTransition(()=>setCurrentPath(resolvePath()));};window.history.pushState=patchedPushState;window.history.replaceState=patchedReplaceState;window.addEventListener(\"popstate\",onPopState);return()=>{if(window.history.pushState===patchedPushState){window.history.pushState=originalPushState;}if(window.history.replaceState===patchedReplaceState){window.history.replaceState=originalReplaceState;}window.removeEventListener(\"popstate\",onPopState);};},[resolvePath]);React.useEffect(()=>{closeAll();},[currentPath,closeAll]);React.useEffect(()=>{if(typeof document===\"undefined\")return;const outside=event=>{if(!navRef.current)return;if(!navRef.current.contains(event.target))closeAll();};const onEscape=event=>{if(event.key!==\"Escape\")return;if(!menuOpen&&!mobileServicesOpen&&!desktopServicesOpen)return;event.preventDefault();if(menuOpen){closeAllAndFocusMenuToggle();}else{closeAll();desktopTriggerRef.current?.focus();}};document.addEventListener(\"mousedown\",outside);document.addEventListener(\"keydown\",onEscape);return()=>{document.removeEventListener(\"mousedown\",outside);document.removeEventListener(\"keydown\",onEscape);};},[menuOpen,mobileServicesOpen,desktopServicesOpen,closeAll,closeAllAndFocusMenuToggle]);React.useEffect(()=>{if(typeof document===\"undefined\")return;if(menuOpen){document.body.classList.add(\"on-nav-scroll-lock\");}else{document.body.classList.remove(\"on-nav-scroll-lock\");}return()=>{document.body.classList.remove(\"on-nav-scroll-lock\");};},[menuOpen]);React.useEffect(()=>{if(typeof document===\"undefined\"||!menuOpen)return;const onKeyDown=event=>{if(event.key!==\"Tab\")return;if(!navRef.current||!mobilePanelRef.current)return;const focusables=Array.from(navRef.current.querySelectorAll('a[href], button:not([disabled]), [tabindex]:not([tabindex=\"-1\"])')).filter(element=>{if(element.hasAttribute(\"hidden\"))return false;if(element.closest(\"[hidden]\"))return false;if(!element.offsetParent&&element!==document.activeElement){return false;}return true;});if(focusables.length===0)return;const first=focusables[0];const last=focusables[focusables.length-1];const active=document.activeElement;if(!active||!focusables.includes(active)){event.preventDefault();first.focus();return;}if(!event.shiftKey&&active===last){event.preventDefault();first.focus();}else if(event.shiftKey&&active===first){event.preventDefault();last.focus();}};document.addEventListener(\"keydown\",onKeyDown);return()=>{document.removeEventListener(\"keydown\",onKeyDown);};},[menuOpen]);React.useEffect(()=>{return()=>clearCloseTimer();},[clearCloseTimer]);const servicesActive=React.useMemo(()=>isServicesRoute(currentPath),[currentPath]);const rootStyle=React.useMemo(()=>{return{...style,position:\"relative\",width:\"100%\",height:\"100%\",minHeight:\"100%\",overflow:\"visible\"};},[style]);const css=React.useMemo(()=>baseCss.replaceAll(\"__ACCENT__\",accentColor),[accentColor]);return /*#__PURE__*/_jsxs(\"div\",{style:rootStyle,children:[/*#__PURE__*/_jsx(\"style\",{suppressHydrationWarning:true,children:css}),/*#__PURE__*/_jsx(\"div\",{className:\"on-slot\",\"aria-hidden\":\"true\"}),menuOpen&&/*#__PURE__*/_jsx(\"button\",{className:\"on-backdrop\",type:\"button\",\"aria-label\":\"Close navigation\",onClick:closeAllAndFocusMenuToggle}),/*#__PURE__*/_jsx(\"div\",{className:\"on-shell\",children:/*#__PURE__*/_jsxs(\"nav\",{ref:navRef,className:\"on-nav\",\"aria-label\":\"Main navigation\",children:[/*#__PURE__*/_jsxs(\"div\",{className:\"on-bar\",children:[/*#__PURE__*/_jsxs(\"a\",{className:\"on-brand\",href:\"/\",\"aria-label\":`${brandOptima}${brandWebAI} home`,onClick:closeAll,children:[/*#__PURE__*/_jsx(\"span\",{children:brandOptima}),/*#__PURE__*/_jsx(\"span\",{className:\"on-brand-accent\",children:brandWebAI})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"on-desktop-links\",children:[PRIMARY_LINKS.slice(0,2).map(item=>/*#__PURE__*/_jsx(\"a\",{className:\"on-link\",\"data-active\":isRouteActive(currentPath,item.href),href:item.href,onClick:closeAll,\"aria-current\":isRouteActive(currentPath,item.href)?\"page\":undefined,children:item.label},item.href)),/*#__PURE__*/_jsxs(\"div\",{ref:desktopServicesRef,className:\"on-service-wrap\",onMouseEnter:()=>{clearCloseTimer();setDesktopOpen(true);},onMouseLeave:delayedDesktopClose,onFocusCapture:()=>{clearCloseTimer();setDesktopOpen(true);},onBlurCapture:event=>{const related=event.relatedTarget;if(desktopServicesRef.current&&related&&desktopServicesRef.current.contains(related)){return;}delayedDesktopClose();},children:[/*#__PURE__*/_jsxs(\"button\",{ref:desktopTriggerRef,className:\"on-link on-service-trigger\",type:\"button\",\"aria-expanded\":desktopServicesOpen,\"aria-controls\":\"on-services-desktop\",\"data-active\":servicesActive,onClick:()=>React.startTransition(()=>setDesktopServicesOpen(v=>!v)),children:[\"Services\",\" \",/*#__PURE__*/_jsx(\"span\",{className:\"on-chevron\",\"aria-hidden\":\"true\"})]}),/*#__PURE__*/_jsx(\"div\",{id:\"on-services-desktop\",className:\"on-panel on-panel-desktop\",hidden:!desktopServicesOpen,children:SERVICES.map(item=>/*#__PURE__*/_jsx(\"a\",{href:item.href,className:\"on-service-link\",\"data-active\":isRouteActive(currentPath,item.href),onClick:closeAll,\"aria-current\":isRouteActive(currentPath,item.href)?\"page\":undefined,children:item.label},item.href))})]}),PRIMARY_LINKS.slice(2).map(item=>/*#__PURE__*/_jsx(\"a\",{className:\"on-link\",\"data-active\":isRouteActive(currentPath,item.href),href:item.href,onClick:closeAll,\"aria-current\":isRouteActive(currentPath,item.href)?\"page\":undefined,children:item.label},item.href))]}),/*#__PURE__*/_jsxs(\"a\",{className:\"on-cta\",href:CTA_LINK.href,onClick:closeAll,\"aria-current\":isRouteActive(currentPath,CTA_LINK.href)?\"page\":undefined,children:[/*#__PURE__*/_jsx(\"span\",{children:CTA_LINK.label}),/*#__PURE__*/_jsx(\"span\",{className:\"on-arrow\",\"aria-hidden\":\"true\"})]}),/*#__PURE__*/_jsxs(\"button\",{ref:menuToggleRef,className:\"on-toggle\",type:\"button\",\"aria-label\":menuOpen?\"Close navigation\":\"Open navigation\",\"aria-expanded\":menuOpen,\"aria-controls\":\"on-mobile-panel\",onClick:()=>React.startTransition(()=>{setMenuOpen(value=>!value);if(menuOpen)setMobileServicesOpen(false);}),children:[/*#__PURE__*/_jsx(\"i\",{}),/*#__PURE__*/_jsx(\"i\",{})]})]}),/*#__PURE__*/_jsxs(\"div\",{ref:mobilePanelRef,id:\"on-mobile-panel\",className:\"on-mobile-panel\",hidden:!menuOpen,children:[/*#__PURE__*/_jsx(\"a\",{className:\"on-mobile-link\",\"data-active\":isRouteActive(currentPath,\"/\"),href:\"/\",onClick:closeAll,\"aria-current\":isRouteActive(currentPath,\"/\")?\"page\":undefined,children:\"Home\"}),/*#__PURE__*/_jsx(\"a\",{className:\"on-mobile-link\",\"data-active\":isRouteActive(currentPath,\"/about\"),href:\"/about\",onClick:closeAll,\"aria-current\":isRouteActive(currentPath,\"/about\")?\"page\":undefined,children:\"About\"}),/*#__PURE__*/_jsxs(\"button\",{ref:mobileTriggerRef,className:\"on-mobile-link on-service-trigger\",type:\"button\",\"aria-expanded\":mobileServicesOpen,\"aria-controls\":\"on-services-mobile\",\"data-active\":servicesActive,onClick:()=>React.startTransition(()=>setMobileServicesOpen(value=>!value)),children:[\"Services\",\" \",/*#__PURE__*/_jsx(\"span\",{className:\"on-chevron\",\"aria-hidden\":\"true\"})]}),/*#__PURE__*/_jsx(\"div\",{id:\"on-services-mobile\",className:\"on-mobile-services\",hidden:!mobileServicesOpen,children:SERVICES.map(item=>/*#__PURE__*/_jsx(\"a\",{className:\"on-mobile-service-link\",\"data-active\":isRouteActive(currentPath,item.href),href:item.href,onClick:closeAll,\"aria-current\":isRouteActive(currentPath,item.href)?\"page\":undefined,children:item.label},item.href))}),/*#__PURE__*/_jsx(\"a\",{className:\"on-mobile-link\",\"data-active\":isRouteActive(currentPath,\"/projects\"),href:\"/projects\",onClick:closeAll,\"aria-current\":isRouteActive(currentPath,\"/projects\")?\"page\":undefined,children:\"Projects\"}),/*#__PURE__*/_jsx(\"a\",{className:\"on-mobile-link\",\"data-active\":isRouteActive(currentPath,\"/experience-lab\"),href:\"/experience-lab\",onClick:closeAll,\"aria-current\":isRouteActive(currentPath,\"/experience-lab\")?\"page\":undefined,children:\"Experience Lab\"}),/*#__PURE__*/_jsx(\"a\",{className:\"on-mobile-link\",\"data-active\":isRouteActive(currentPath,\"/pricing\"),href:\"/pricing\",onClick:closeAll,\"aria-current\":isRouteActive(currentPath,\"/pricing\")?\"page\":undefined,children:\"Pricing\"}),/*#__PURE__*/_jsxs(\"a\",{className:\"on-cta on-cta-mobile\",href:CTA_LINK.href,onClick:closeAll,\"aria-current\":isRouteActive(currentPath,CTA_LINK.href)?\"page\":undefined,children:[/*#__PURE__*/_jsx(\"span\",{children:CTA_LINK.label}),/*#__PURE__*/_jsx(\"span\",{className:\"on-arrow\",\"aria-hidden\":\"true\"})]})]})]})})]});}addPropertyControls(OptimaPillNavigation,{brandOptima:{type:ControlType.String,title:\"Brand A\",defaultValue:\"Optima\"},brandWebAI:{type:ControlType.String,title:\"Brand B\",defaultValue:\"WebAI\"},accentColor:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#7FA9FF\"}});const baseCss=`\n.on-slot{height:100%;width:100%;pointer-events:none;background:#171717}\n.on-shell{position:fixed;left:0;right:0;top:0;z-index:1200;padding:0;pointer-events:none}\n.on-backdrop{position:fixed;inset:0;z-index:1100;border:0;background:rgba(0,0,0,.45);cursor:pointer;pointer-events:auto;touch-action:none}\n.on-nav{position:relative;width:100%;margin:0 auto;background:#171717;border:0;box-shadow:none;border-radius:0;font-family:Inter, \"Inter var\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;color:#fff;pointer-events:auto}\n.on-bar{display:flex;align-items:center;gap:10px;min-height:72px;max-width:1120px;margin:0 auto;padding:calc(max(env(safe-area-inset-top),0px) + 8px) clamp(16px,3vw,36px) 10px}\n.on-brand{display:flex;align-items:baseline;gap:2px;margin-right:auto;min-width:max-content;white-space:nowrap;text-decoration:none;color:#fff;font-size:23px;font-weight:700;letter-spacing:-.03em;line-height:1}\n.on-brand-accent{color:__ACCENT__;font-weight:600}\n.on-desktop-links{display:flex;align-items:center;gap:2px}\n.on-link,.on-service-trigger,.on-mobile-link,.on-mobile-service-link{display:flex;align-items:center;justify-content:center;min-height:44px;padding:11px 14px;border-radius:999px;border:0;background:transparent;color:#fff;text-decoration:none;font-size:14px;font-weight:500;line-height:1.2;white-space:nowrap;cursor:pointer;transition:background .2s ease,color .2s ease}\n.on-link:hover,.on-service-trigger:hover,.on-mobile-link:hover,.on-mobile-service-link:hover{background:rgba(255,255,255,.08);color:#fff}\n.on-link[data-active=true],.on-service-trigger[data-active=true],.on-mobile-link[data-active=true],.on-mobile-service-link[data-active=true]{background:rgba(255,255,255,.14);color:#fff}\n.on-service-wrap{position:relative}\n.on-chevron{width:7px;height:7px;margin-left:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-1px) rotate(45deg);transition:transform .2s ease}\n.on-service-trigger[aria-expanded=true] .on-chevron{transform:translateY(2px) rotate(225deg)}\n.on-panel{position:absolute;left:0;top:100%;z-index:10;width:min(420px,90vw);padding:10px;background:#171717;border:1px solid rgba(255,255,255,.1);border-radius:18px;box-shadow:0 12px 24px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.04)}\n.on-panel[hidden]{display:none}\n.on-service-link{display:flex;align-items:center;min-height:42px;padding:10px 12px;border-radius:12px;text-decoration:none;color:#f3f3f3;font-size:14px;font-weight:500;line-height:1.3}\n.on-service-link:hover,.on-service-link[data-active=true]{background:rgba(255,255,255,.09)}\n.on-cta{display:flex;align-items:center;gap:14px;min-height:48px;padding:7px 8px 7px 17px;border-radius:999px;background:#fff;border:1px solid rgba(0,0,0,.14);text-decoration:none;color:#0d0d10;font-size:14px;font-weight:600;line-height:1;white-space:nowrap}\n.on-arrow{position:relative;display:block;width:32px;height:32px;border-radius:999px;background:#141417}\n.on-arrow:before{content:\"\";position:absolute;left:9px;top:15px;width:12px;height:1.5px;background:#fff}\n.on-arrow:after{content:\"\";position:absolute;left:16px;top:11px;width:7px;height:7px;border-top:1.5px solid #fff;border-right:1.5px solid #fff;transform:rotate(45deg)}\n.on-toggle{display:none;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.22);box-shadow:none;background:transparent;color:#fff;cursor:pointer}\n.on-toggle i{display:block;width:17px;height:2px;background:#fff;box-shadow:none;transition:transform .2s ease}\n.on-toggle[aria-expanded=true] i:first-child{transform:translateY(3.25px) rotate(45deg)}\n.on-toggle[aria-expanded=true] i:last-child{transform:translateY(-3.25px) rotate(-45deg)}\n.on-mobile-panel{display:none}\n.on-nav a:focus-visible,.on-nav button:focus-visible{outline:2px solid __ACCENT__;outline-offset:2px}\n.on-nav button,.on-nav a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}\nbody.on-nav-scroll-lock{overflow:hidden}\n@media (max-width: 980px){\n    .on-shell{padding:0}\n    .on-nav{border-radius:0;max-width:none;max-height:none;overflow:visible}\n    .on-bar{min-height:64px;padding:calc(max(env(safe-area-inset-top),0px) + 8px) clamp(16px,5vw,20px) 10px}\n    .on-brand{font-size:clamp(16px,5vw,22px);max-width:calc(100% - 56px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.1}\n    .on-desktop-links{display:none}\n    .on-cta{display:none}\n    .on-toggle{display:flex;flex-direction:column;gap:5px}\n    .on-mobile-panel{display:flex;flex-direction:column;gap:2px;padding:10px clamp(16px,5vw,20px) 14px;border-top:1px solid rgba(255,255,255,.1);background:#171717;border-radius:0;max-height:calc(100dvh - max(env(safe-area-inset-top),0px) - 84px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}\n    .on-mobile-panel[hidden]{display:none}\n    .on-mobile-link,.on-service-trigger{justify-content:space-between;width:100%;border-radius:12px;padding:13px 14px;font-size:15px}\n    .on-mobile-link,.on-mobile-panel .on-service-trigger,.on-mobile-service-link{color:rgba(255,255,255,.9)}\n    .on-mobile-link[data-active=true],.on-mobile-panel .on-service-trigger[data-active=true],.on-mobile-service-link[data-active=true]{background:rgba(255,255,255,.14);color:#fff}\n    .on-mobile-services{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px 10px}\n    .on-mobile-services[hidden]{display:none}\n    .on-mobile-service-link{justify-content:flex-start;border-radius:10px;padding:12px 12px;font-size:14px}\n    .on-cta-mobile{display:flex;margin-top:4px;justify-content:space-between}\n}\n@media (max-width: 360px){\n    .on-shell{padding:0}\n    .on-brand{font-size:17px}\n}\n@media (prefers-reduced-motion: reduce){\n    .on-nav *,.on-nav *:before,.on-nav *:after{transition:none !important;animation:none !important}\n}\n`;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"OptimaPillNavigation\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./OptimaPillNavigation.map","// Generated by Framer (6b21612)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,Container,cx,forwardLoader,GeneratedComponentContext,getFonts,PropertyOverrides,RenderTarget,runTasksWithYield,useCustomCursors,useHydratedBreakpointVariants,useIsOnFramerCanvas,useLocaleInfo,withCSS}from\"framer\";import{LayoutGroup,motion}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import Embed1 from\"https://framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/7LsYGOkyjLv3zWdmJA4n/Embed.js\";import Embed from\"https://framerusercontent.com/modules/o1PI5S8YtkA5bP5g4dFz/cAPMVEI6osbJ1UvICgTq/Embed.js\";import Footer from\"#framer/local/canvasComponent/JnzAem52X/JnzAem52X.js\";import OptimaPillNavigation from\"#framer/local/codeFile/zMc0Vsn/OptimaPillNavigation.js\";const OptimaPillNavigationFonts=getFonts(OptimaPillNavigation);const EmbedFonts=getFonts(Embed);const Embed1Fonts=getFonts(Embed1);const FooterFonts=getFonts(Footer);const breakpoints={Dst6lrXHO:\"(min-width: 1200px)\",JKJSCCaio:\"(max-width: 809.98px)\",X7aN0nU2I:\"(min-width: 810px) and (max-width: 1199.98px)\"};const isBrowser=()=>typeof document!==\"undefined\";const serializationHash=\"framer-7a9xB\";const variantClassNames={Dst6lrXHO:\"framer-v-1upato1\",JKJSCCaio:\"framer-v-12s58mq\",X7aN0nU2I:\"framer-v-rd941r\"};const matchVariant=(...args)=>{for(const arg of args){if(arg&&typeof arg===\"string\")return arg;}return undefined;};const breakpointRules={};const breakpointKeys=Object.keys(breakpointRules);const rules=[\".framer-7a9xB.framer-phyuta, .framer-7a9xB .framer-phyuta { display: block; }\",\".framer-7a9xB.framer-1upato1 { align-content: center; align-items: center; background-color: #ffffff; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0px; height: min-content; justify-content: flex-start; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: 100%; }\",\".framer-7a9xB .framer-cb6scc-container { flex: none; height: 72px; order: -1000; position: relative; width: 100%; }\",\".framer-7a9xB .framer-l82au1 { background: transparent; flex-grow: 1; height: 0px; margin: 0px; margin-bottom: -0px; position: relative; width: 0px; }\",\".framer-7a9xB .framer-1cofu7r-container { flex: none; height: auto; order: 1002; position: relative; width: 100%; }\",\".framer-7a9xB .framer-162f2jr-container { flex: none; height: auto; order: 1003; position: relative; width: 100%; }\",\".framer-7a9xB .framer-mykkz1-container { flex: none; height: auto; order: 1004; position: relative; width: 100%; }\",'[data-layout-template=\"true\"] > #overlay { margin-bottom: -0px; }'];const mediaQueries={Dst6lrXHO:\"(min-width: 1200px)\",JKJSCCaio:\"(max-width: 809.98px)\",X7aN0nU2I:\"(min-width: 810px) and (max-width: 1199.98px)\"};const humanReadableVariantMap={Desktop:\"Dst6lrXHO\",Phone:\"JKJSCCaio\",Tablet:\"X7aN0nU2I\"};const HTMLStyle=({value})=>{const onCanvas=useIsOnFramerCanvas();if(onCanvas)return null;return /*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:value},\"data-framer-html-style\":\"\"});};const getProps=({height,id,width,...props})=>{return{...props,variant:humanReadableVariantMap[props.variant]??props.variant??\"Dst6lrXHO\"};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,children,...restProps}=getProps(props);const[baseVariant,hydratedBaseVariant]=useHydratedBreakpointVariants(variant,breakpoints,false);const gestureVariant=undefined;const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);useCustomCursors({});return /*#__PURE__*/_jsx(GeneratedComponentContext.Provider,{value:{activeVariantId:baseVariant,humanReadableVariantMap,isLayoutTemplate:true,primaryVariantId:\"Dst6lrXHO\",variantClassNames},children:/*#__PURE__*/_jsxs(LayoutGroup,{id:layoutId??defaultLayoutId,children:[/*#__PURE__*/_jsx(HTMLStyle,{value:\":root body { background: rgb(255, 255, 255); }\"}),/*#__PURE__*/_jsxs(motion.div,{...restProps,className:cx(scopingClassNames,\"framer-1upato1\",className),\"data-layout-template\":true,ref:refBinding,style:{...style},children:[/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-cb6scc-container\",\"data-framer-name\":\"Main Navigation\",isAuthoredByUser:true,name:\"Main Navigation\",nodeId:\"obRRaAO_Q\",scopeId:\"qhnRAmdje\",children:/*#__PURE__*/_jsx(OptimaPillNavigation,{accentColor:\"rgb(127, 169, 255)\",brandOptima:\"Optima\",brandWebAI:\"WebAI\",height:\"100%\",id:\"obRRaAO_Q\",layoutId:\"obRRaAO_Q\",name:\"Main Navigation\",style:{height:\"100%\",width:\"100%\"},width:\"100%\"})})}),children,/*#__PURE__*/_jsx(\"div\",{className:\"framer-l82au1\"}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-1cofu7r-container\",isAuthoredByUser:true,isModuleExternal:true,nodeId:\"POIHqnTDS\",scopeId:\"qhnRAmdje\",children:/*#__PURE__*/_jsx(Embed,{height:\"100%\",html:'<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>Client Feedback</title></head><body>\\n<style>\\n  * { box-sizing: border-box; }\\n  html, body { margin: 0; width: 100%; background: #171717; }\\n  .ogr {\\n    --bg: #171717;\\n    --card: #1d1d1d;\\n    --line: rgba(255,255,255,.09);\\n    --muted: #8d8d8d;\\n    --blue: #3d9cff;\\n    width: 100%; overflow: hidden; color: #f6f6f3; background: var(--bg);\\n    padding: clamp(72px, 8vw, 128px) 0 clamp(76px, 8vw, 120px);\\n    font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\\n  }\\n  .ogr__head { width: min(1180px, calc(100% - 48px)); margin: 0 auto 48px; display: grid; justify-items: center; gap: 28px; text-align: center; }\\n  .ogr__eyebrow { display: flex; justify-content: center; align-items: center; gap: 9px; margin: 0 0 18px; color: #9b9b9b; font-size: 10px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }\\n  .ogr__eyebrow::before { content: \"\"; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 12px rgba(61,156,255,.7); }\\n  .ogr h2 { max-width: 760px; margin: 0; font-size: clamp(42px, 6.2vw, 86px); line-height: .94; letter-spacing: -.065em; font-weight: 660; }\\n  .ogr h2 span { color: inherit; }\\n  .ogr__summary { min-width: 215px; padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.018); }\\n  .ogr__brand { display: flex; align-items: center; gap: 9px; margin-bottom: 11px; color: #dedede; font-size: 11px; font-weight: 700; }\\n  .ogr__g { display: block; width: 21px; height: 21px; flex: 0 0 21px; }\\n  .ogr__score { display: flex; align-items: baseline; gap: 9px; }\\n  .ogr__rating { font-size: 31px; line-height: 1; font-weight: 690; letter-spacing: -.04em; }\\n  .ogr__stars { color: #fabb05; font-size: 13px; letter-spacing: 1px; white-space: nowrap; }\\n  .ogr__count { margin: 9px 0 0; color: var(--muted); font-size: 11px; }\\n  .ogr__tracks { display: grid; gap: 14px; }\\n  .ogr__row { display: flex; width: max-content; gap: 14px; will-change: transform; animation: ogr-left 24s linear infinite; }\\n  .ogr__row--reverse { animation-name: ogr-right; animation-duration: 28s; transform: translateX(calc(-50% - 7px)); }\\n  .ogr__card { position: relative; width: clamp(280px, 27vw, 380px); min-height: 218px; display: flex; flex-direction: column; padding: 20px; overflow: hidden; border: 1px solid rgba(255,255,255,.82); border-radius: 16px; background: #f7f9fc; color: #171717; text-decoration: none; box-shadow: 0 8px 24px rgba(0,0,0,.14); transform: perspective(900px) translateZ(0); transform-style: preserve-3d; transition: transform .42s cubic-bezier(.2,.8,.2,1), box-shadow .42s ease, background-color .42s ease; }\\n  .ogr__card::after { content: \"\"; position: absolute; inset: auto -40px -70px auto; width: 150px; height: 150px; border-radius: 50%; background: rgba(61,156,255,.055); filter: blur(20px); transition: transform .5s ease, opacity .5s ease; }\\n  .ogr__card:hover { transform: perspective(900px) translateY(-8px) rotateX(2.5deg) rotateY(-2.5deg) translateZ(12px); background: #ffffff; box-shadow: 0 22px 48px rgba(0,0,0,.3), 0 1px 0 rgba(255,255,255,.8) inset; }\\n  .ogr__card:nth-child(even):hover { transform: perspective(900px) translateY(-8px) rotateX(2.5deg) rotateY(2.5deg) translateZ(12px); }\\n  .ogr__card:hover::after { transform: scale(1.25); opacity: .9; }\\n  .ogr__author { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; }\\n  .ogr__avatar { width: 40px; height: 40px; flex: 0 0 40px; border-radius: 50%; object-fit: cover; background: #292929; border: 1px solid rgba(255,255,255,.12); }\\n  .ogr__initial { display: grid; place-items: center; color: #fff; font-size: 13px; font-weight: 750; }\\n  .ogr__person { min-width: 0; }\\n  .ogr__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #1b1b1b; font-size: 13px; font-weight: 700; }\\n  .ogr__name-line { display: flex; align-items: center; gap: 7px; min-width: 0; }\\n  .ogr__verified { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; color: #666; font-size: 9px; font-weight: 700; letter-spacing: .01em; }\\n  .ogr__verified svg { width: 12px; height: 12px; display: block; }\\n  .ogr__meta { margin-top: 4px; color: #77736b; font-size: 10px; }\\n  .ogr__google { width: 18px; height: 18px; margin-left: auto; align-self: flex-start; flex: 0 0 18px; }\\n  .ogr__card-stars { position: relative; z-index: 1; margin: 19px 0 12px; color: #fabb05; font-size: 13px; letter-spacing: 1.5px; }\\n  .ogr__text { position: relative; z-index: 1; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden; margin: 0; color: #4e4b45; font-size: 12px; line-height: 1.6; }\\n  .ogr__source { position: relative; z-index: 1; margin-top: auto; padding-top: 15px; color: #777169; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }\\n  .ogr__foot { width: min(1180px, calc(100% - 48px)); display: flex; justify-content: space-between; gap: 20px; margin: 24px auto 0; color: #626262; font-size: 9px; line-height: 1.5; }\\n  .ogr__foot a { color: #858585; text-decoration: none; }\\n  .ogr__status { width: min(1180px, calc(100% - 48px)); min-height: 160px; display: grid; place-items: center; margin: 0 auto; border: 1px solid var(--line); border-radius: 18px; color: #777; font-size: 12px; text-align: center; }\\n  .ogr__status-dot { width: 7px; height: 7px; margin: 0 auto 12px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 14px rgba(61,156,255,.8); animation: ogr-pulse 1.5s ease-in-out infinite; }\\n  @keyframes ogr-left { to { transform: translateX(calc(-50% - 7px)); } }\\n  @keyframes ogr-right { to { transform: translateX(0); } }\\n  @keyframes ogr-pulse { 50% { opacity: .35; transform: scale(.7); } }\\n  @media (max-width: 720px) {\\n    .ogr { padding: 68px 0 72px; }\\n    .ogr__head { width: min(100% - 32px, 1180px); margin-bottom: 34px; }\\n    .ogr h2 { font-size: clamp(40px, 13vw, 62px); }\\n    .ogr__summary { width: min(100%, 320px); min-width: 0; display: grid; grid-template-columns: auto 1fr; column-gap: 13px; align-items: center; text-align: left; }\\n    .ogr__brand { grid-row: 1 / 3; margin: 0; }\\n    .ogr__score, .ogr__count { margin: 0; }\\n    .ogr__card { width: min(78vw, 290px); min-height: 205px; padding: 17px; border-radius: 14px; }\\n    .ogr__avatar { width: 36px; height: 36px; flex-basis: 36px; }\\n    .ogr__name { font-size: 12px; }\\n    .ogr__verified { font-size: 8px; }\\n    .ogr__card-stars { margin: 15px 0 10px; }\\n    .ogr__text { -webkit-line-clamp: 5; font-size: 12px; line-height: 1.6; }\\n    .ogr__source { padding-top: 14px; }\\n    .ogr__foot { width: min(100% - 32px, 1180px); flex-direction: column; }\\n  }\\n  @media (prefers-reduced-motion: reduce) {\\n    .ogr__row { animation-play-state: paused; }\\n    .ogr__status-dot { animation: none; }\\n  }\\n  /* Shared Optima light theme; structure and review logic remain unchanged. */\\n  html,body{background:#f4f4f1}\\n  .ogr{--bg:#f4f4f1;--card:#f4f4f1;--line:rgba(17,18,20,.2);--muted:#55575a;--blue:#111;position:relative;isolation:isolate;color:#111;background:#f4f4f1}\\n  .ogr::before{content:\"\";position:absolute;z-index:0;inset:0;pointer-events:none;background-color:transparent;background-image:linear-gradient(rgba(17,18,20,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(17,18,20,.055) 1px,transparent 1px);background-size:72px 72px}\\n  .ogr__head,.ogr__live,.ogr__foot{position:relative;z-index:1}\\n  .ogr__head>div:first-child,.ogr__summary{background:#f4f4f1;box-shadow:0 0 0 16px #f4f4f1}\\n  .ogr h2{color:#111;font-weight:730;letter-spacing:-.052em}.ogr h2 span{color:#5f6063;font-weight:780}\\n  .ogr__eyebrow{color:#111;font-weight:800}.ogr__eyebrow::before{background:#111;box-shadow:0 0 0 5px rgba(17,17,17,.09)}\\n  .ogr__summary{border-color:#111;border-radius:5px}.ogr__brand{color:#111}.ogr__count,.ogr__foot{color:#55575a}\\n  .ogr__card{color:#111;background:#f4f4f1;border:1px solid #111;border-radius:5px;box-shadow:0 8px 24px rgba(17,18,20,.08)}\\n  .ogr__card::after{display:none}.ogr__card:hover{background:#f4f4f1;box-shadow:0 18px 42px rgba(17,18,20,.12)}\\n  .ogr__name,.ogr__text{color:#111}.ogr__meta,.ogr__verified,.ogr__source{color:#55575a}\\n  .ogr__status{color:#55575a;background:#f4f4f1;border-color:#111;border-radius:5px}.ogr__status-dot{background:#111;box-shadow:0 0 0 5px rgba(17,17,17,.09)}\\n  @media(max-width:720px){.ogr__head>div:first-child,.ogr__summary{box-shadow:0 0 0 10px #f4f4f1}}\\n\\n  /* Mobile-only refinement — desktop carousel and Google review logic remain unchanged. */\\n  @media(max-width:720px){\\n    .ogr{padding:52px 0 54px}\\n    .ogr__head{width:min(100% - 24px,1180px);gap:16px;margin-bottom:26px}\\n    .ogr__head>div:first-child,.ogr__summary{box-shadow:0 0 0 7px #f4f4f1}\\n    .ogr__eyebrow{gap:8px;margin-bottom:13px;font-size:8.5px}\\n    .ogr h2{font-size:clamp(39px,11.8vw,52px);line-height:.95}\\n    .ogr__summary{width:min(100%,285px);padding:12px 14px;column-gap:10px}\\n    .ogr__brand{gap:7px;font-size:9.5px}\\n    .ogr__g{width:18px;height:18px;flex-basis:18px}\\n    .ogr__rating{font-size:25px}\\n    .ogr__stars{font-size:11px}\\n    .ogr__count{font-size:9px}\\n    .ogr__tracks{gap:8px}\\n    .ogr__row{gap:8px}\\n    .ogr__card{width:min(70vw,250px);min-height:176px;padding:13px;border-radius:5px}\\n    .ogr__card:hover,.ogr__card:nth-child(even):hover{transform:none;background:#f4f4f1;box-shadow:0 8px 24px rgba(17,18,20,.08)}\\n    .ogr__author{gap:9px}\\n    .ogr__avatar{width:32px;height:32px;flex-basis:32px}\\n    .ogr__name{font-size:11px}\\n    .ogr__name-line{gap:5px}\\n    .ogr__verified{font-size:7px}\\n    .ogr__verified svg{width:10px;height:10px}\\n    .ogr__meta{margin-top:3px;font-size:8.5px}\\n    .ogr__google{width:15px;height:15px;flex-basis:15px}\\n    .ogr__card-stars{margin:11px 0 7px;font-size:11px}\\n    .ogr__text{-webkit-line-clamp:4;font-size:10.5px;line-height:1.45}\\n    .ogr__source{padding-top:9px;font-size:7.5px}\\n    .ogr__foot{width:min(100% - 24px,1180px);gap:8px;margin-top:17px;font-size:7.5px}\\n    .ogr__status{width:min(100% - 24px,1180px);min-height:120px;padding:18px;font-size:10.5px}\\n  }\\n\\n  @media(max-width:390px){\\n    .ogr h2{font-size:38px}\\n    .ogr__summary{width:100%}\\n    .ogr__card{width:min(72vw,238px);min-height:170px;padding:12px}\\n    .ogr__text{font-size:10px}\\n  }\\n\\n/* Compact, layered review cards. Google connection and review content unchanged. */\\n.ogr__tracks{gap:18px;padding:12px 0 22px}\\n.ogr__row{--review-gap:14px;gap:var(--review-gap)}\\n.ogr__card,.ogr__card:hover,.ogr__card:nth-child(even):hover{\\n width:clamp(268px,23vw,310px);min-height:202px;flex:0 0 auto;padding:17px;\\n overflow:visible;border:1px solid #11111145;border-radius:10px;background:#f4f4f1;\\n box-shadow:0 3px 0 #dededa,0 6px 0 -1px #c9c9c3,0 13px 20px -13px #1115;\\n transform:perspective(950px) rotateX(0) rotateY(0);transform-style:preserve-3d;\\n transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .3s;\\n}\\n.ogr__card::after{display:block;inset:0;width:auto;height:auto;border-radius:inherit;filter:none;pointer-events:none;background:linear-gradient(130deg,#ffffff80,transparent 42%,#ffffff18);opacity:.3;transform:translateZ(1px)}\\n.ogr__author{gap:9px;transform:translateZ(12px)}\\n.ogr__avatar{width:34px;height:34px;flex-basis:34px;border:2px solid #f4f4f1;box-shadow:0 2px 0 #1112,0 4px 8px #1111}\\n.ogr__person{flex:1;min-width:0}\\n.ogr__name-line{align-items:flex-start;flex-direction:column;gap:3px}\\n.ogr__name{max-width:100%;font-size:12px}\\n.ogr__verified{font-size:8px}\\n.ogr__meta{font-size:10px}\\n.ogr__card-stars{margin:13px 0 9px;transform:translateZ(15px);text-shadow:0 1px 0 #9b700022}\\n.ogr__text{font-size:12px;line-height:1.55;-webkit-line-clamp:4;transform:translateZ(10px)}\\n.ogr__source{font-size:9px;padding-top:12px;transform:translateZ(12px);text-decoration:underline;text-underline-offset:4px}\\n.ogr__summary{box-shadow:0 3px 0 #dededa,0 10px 20px -15px #1114,0 0 0 10px #f4f4f1;border-radius:10px}\\n.ogr__card:focus-visible{outline:2px solid #111;outline-offset:4px}\\n.ogr__tracks:focus-within .ogr__row{animation-play-state:paused}\\n@keyframes ogr-left{to{transform:translateX(calc(-50% - var(--review-gap)/2))}}\\n@keyframes ogr-right{from{transform:translateX(calc(-50% - var(--review-gap)/2))}to{transform:translateX(0)}}\\n@media(hover:hover) and (pointer:fine){\\n .ogr__tracks:hover .ogr__row{animation-play-state:paused}\\n .ogr__card:hover{z-index:3;transform:perspective(950px) translateY(-5px) rotateX(3deg) rotateY(-3deg);border-color:#1118;box-shadow:0 4px 0 #dededa,0 8px 0 -1px #c9c9c3,0 24px 26px -18px #1115}\\n .ogr__card:nth-child(even):hover{transform:perspective(950px) translateY(-5px) rotateX(3deg) rotateY(3deg)}\\n .ogr__card:hover::after{opacity:.7;transform:translateZ(1px)}\\n}\\n@media(max-width:720px){\\n .ogr{padding:44px 0}\\n .ogr__head{margin-bottom:20px}\\n .ogr__tracks{gap:14px;padding:9px 0 16px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}\\n .ogr__row{--review-gap:12px;animation:none;transform:none;padding:0 14px}\\n .ogr__card[aria-hidden=\"true\"]{display:none}\\n .ogr__card,.ogr__card:hover,.ogr__card:nth-child(even):hover{width:min(76vw,240px);min-height:190px;padding:14px;border-radius:10px;transform:none}\\n .ogr__card::after,.ogr__author,.ogr__card-stars,.ogr__text,.ogr__source{transform:none}\\n .ogr__avatar{width:30px;height:30px;flex-basis:30px}\\n .ogr__name{font-size:12px}.ogr__meta{font-size:10px}\\n .ogr__text{font-size:12px;line-height:1.55}\\n .ogr__card-stars{margin:11px 0 8px}\\n .ogr__source{font-size:9px;padding-top:11px}\\n .ogr__foot{font-size:10px;line-height:1.5}\\n}\\n@media(prefers-reduced-motion:reduce){\\n .ogr__tracks{overflow-x:auto}\\n .ogr__row{animation:none;transform:none}\\n .ogr__card,.ogr__card:hover,.ogr__card:nth-child(even):hover,.ogr__card *,.ogr__card::after{transition:none!important;animation:none!important;transform:none!important}\\n}\\n\\n/* Mobile autoplay; keep desktop motion and the Google connection unchanged. */\\n.ogr__motion-toggle{display:none}\\n@media(max-width:720px){\\n .ogr__tracks{overflow-x:hidden}\\n .ogr__row{padding:0;animation:ogr-left 38s linear infinite;transform:none}\\n .ogr__row--reverse{animation-name:ogr-right;animation-duration:44s}\\n .ogr__card[aria-hidden=\"true\"]{display:flex}\\n .ogr[data-motion-paused=\"true\"] .ogr__row,\\n .ogr[data-touch-paused=\"true\"] .ogr__row,\\n .ogr[data-background=\"true\"] .ogr__row{animation-play-state:paused}\\n .ogr__motion-toggle{display:inline-block;align-self:flex-start;min-height:44px;padding:8px 0;border:0;background:none;color:#55575a;font:600 12px/1.4 Inter,Arial,sans-serif;text-decoration:underline;text-underline-offset:4px;cursor:pointer}\\n .ogr__motion-toggle:focus-visible{outline:2px solid #111;outline-offset:3px}\\n}\\n@media(prefers-reduced-motion:reduce){\\n .ogr__tracks{overflow-x:auto}\\n .ogr__row{animation:none!important;transform:none;padding:0 14px}\\n .ogr__card[aria-hidden=\"true\"]{display:none}\\n .ogr__motion-toggle{display:none}\\n}\\n\\n/* Final slower carousel speeds. */\\n.ogr__row{animation-duration:40s}\\n.ogr__row--reverse{animation-duration:46s}\\n@media(max-width:720px){\\n .ogr__row{animation-duration:56s}\\n .ogr__row--reverse{animation-duration:64s}\\n}\\n\\n/* Final clean white theme. */\\nhtml,body{background:#fff}\\n.ogr{--bg:#fff;--card:#fff;--line:rgba(17,17,17,.18);--muted:#55575a;--blue:#111;background:#fff;color:#111}\\n.ogr::before{background-color:transparent;background-image:linear-gradient(rgba(17,17,17,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,17,.045) 1px,transparent 1px);background-size:72px 72px}\\n.ogr__head>div:first-child,.ogr__summary{background:#fff;box-shadow:0 0 0 16px #fff}\\n.ogr__summary{background:#fff}\\n.ogr__card,.ogr__card:hover,.ogr__card:nth-child(even):hover{background:#fff}\\n.ogr__avatar{border-color:#fff}\\n.ogr__status{background:#fff}\\n@media(max-width:720px){\\n .ogr__head>div:first-child,.ogr__summary{box-shadow:0 0 0 7px #fff}\\n .ogr__card:hover,.ogr__card:nth-child(even):hover{background:#fff}\\n .ogr__motion-toggle{display:none!important}\\n .ogr__tracks{gap:10px;padding:7px 0 13px}\\n .ogr__row{--review-gap:10px}\\n .ogr__card,.ogr__card:hover,.ogr__card:nth-child(even):hover{width:min(68vw,220px);min-height:172px;padding:12px;border-radius:9px}\\n .ogr__avatar{width:28px;height:28px;flex-basis:28px}\\n .ogr__name{font-size:11px}\\n .ogr__verified{font-size:7px}\\n .ogr__meta{font-size:8.5px}\\n .ogr__google{width:14px;height:14px;flex-basis:14px}\\n .ogr__card-stars{margin:9px 0 6px;font-size:10.5px}\\n .ogr__text{-webkit-line-clamp:4;font-size:10.5px;line-height:1.45}\\n .ogr__source{padding-top:8px;font-size:7.5px}\\n .ogr__foot{margin-top:13px;font-size:8px}\\n}\\n\\n@media(max-width:390px){\\n .ogr__card,.ogr__card:hover,.ogr__card:nth-child(even):hover{width:min(70vw,205px);min-height:166px;padding:11px}\\n .ogr__text{font-size:10px}\\n}\\n\\n</style>\\n\\n<section class=\"ogr\" aria-labelledby=\"ogr-title\">\\n  <div class=\"ogr__head\">\\n    <div>\\n      <p class=\"ogr__eyebrow\">Client feedback</p>\\n      <h2 id=\"ogr-title\">What our clients<br><span>say about us.</span></h2>\\n    </div>\\n    <div class=\"ogr__summary\" aria-live=\"polite\">\\n      <div class=\"ogr__brand\"><svg class=\"ogr__g\" viewBox=\"0 0 24 24\" aria-label=\"Google\" role=\"img\"><path fill=\"#4285F4\" d=\"M21.6 12.23c0-.71-.06-1.4-.18-2.06H12v3.89h5.38a4.6 4.6 0 0 1-2 3.02v2.53h3.24c1.9-1.75 2.98-4.33 2.98-7.38Z\"/><path fill=\"#34A853\" d=\"M12 22c2.7 0 4.96-.9 6.62-2.39l-3.24-2.53c-.9.6-2.05.96-3.38.96-2.6 0-4.81-1.76-5.6-4.13H3.06v2.61A10 10 0 0 0 12 22Z\"/><path fill=\"#FBBC05\" d=\"M6.4 13.91A6 6 0 0 1 6.09 12c0-.66.11-1.31.31-1.91V7.48H3.06A10 10 0 0 0 2 12c0 1.61.39 3.13 1.06 4.52l3.34-2.61Z\"/><path fill=\"#EA4335\" d=\"M12 5.96c1.47 0 2.79.51 3.83 1.5l2.87-2.88A9.63 9.63 0 0 0 12 2a10 10 0 0 0-8.94 5.48l3.34 2.61c.79-2.37 3-4.13 5.6-4.13Z\"/></svg> Google reviews</div>\\n      <div class=\"ogr__score\"><strong class=\"ogr__rating\">—</strong><span class=\"ogr__stars\">★★★★★</span></div>\\n      <p class=\"ogr__count\">Connecting to Google…</p>\\n    </div>\\n  </div>\\n\\n  <div class=\"ogr__live\">\\n    <div class=\"ogr__status\"><div><div class=\"ogr__status-dot\"></div>Loading verified customer feedback…</div></div>\\n  </div>\\n\\n  <div class=\"ogr__foot\">\\n    <span class=\"ogr__attribution\">Reviews supplied by Google Maps. Newest available reviews are shown first.</span>\\n  </div>\\n</section>\\n\\n<script>\\n(() => {\\n  const ENDPOINT = \"https://optimawebai-google-reviews.vercel.app/api/reviews?v=20260929\";\\n  const root = document.querySelector(\".ogr\");\\n  if (!root) return;\\n  const live = root.querySelector(\".ogr__live\");\\n  const ratingNode = root.querySelector(\".ogr__rating\");\\n  const countNode = root.querySelector(\".ogr__count\");\\n  const attributionNode = root.querySelector(\".ogr__attribution\");\\n  const escapeHTML = value => String(value ?? \"\").replace(/[&<>\"\\']/g, char => ({\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",\"\\\\\"\":\"&quot;\",\"\\'\":\"&#39;\"}[char]));\\n  const stars = value => {\\n    const rating = typeof value === \"string\" ? ({ONE:1,TWO:2,THREE:3,FOUR:4,FIVE:5}[value.toUpperCase()] || Number(value)) : Number(value);\\n    const rounded = Math.max(1, Math.min(5, Math.round(rating || 5)));\\n    return \"★\".repeat(rounded) + \"☆\".repeat(5 - rounded);\\n  };\\n  const formatDate = value => {\\n    const date = new Date(value);\\n    return Number.isNaN(date.getTime()) ? \"Google review\" : date.toLocaleDateString(undefined, { year:\"numeric\", month:\"short\", day:\"numeric\" });\\n  };\\n  const googleMark = \\'<svg class=\"ogr__google\" viewBox=\"0 0 24 24\" aria-label=\"Google\" role=\"img\"><path fill=\"#4285F4\" d=\"M21.6 12.23c0-.71-.06-1.4-.18-2.06H12v3.89h5.38a4.6 4.6 0 0 1-2 3.02v2.53h3.24c1.9-1.75 2.98-4.33 2.98-7.38Z\"/><path fill=\"#34A853\" d=\"M12 22c2.7 0 4.96-.9 6.62-2.39l-3.24-2.53c-.9.6-2.05.96-3.38.96-2.6 0-4.81-1.76-5.6-4.13H3.06v2.61A10 10 0 0 0 12 22Z\"/><path fill=\"#FBBC05\" d=\"M6.4 13.91A6 6 0 0 1 6.09 12c0-.66.11-1.31.31-1.91V7.48H3.06A10 10 0 0 0 2 12c0 1.61.39 3.13 1.06 4.52l3.34-2.61Z\"/><path fill=\"#EA4335\" d=\"M12 5.96c1.47 0 2.79.51 3.83 1.5l2.87-2.88A9.63 9.63 0 0 0 12 2a10 10 0 0 0-8.94 5.48l3.34 2.61c.79-2.37 3-4.13 5.6-4.13Z\"/></svg>\\';\\n  const card = review => {\\n    const name = review.name || \"Google reviewer\";\\n    const photo = review.photo ? \\'<img class=\"ogr__avatar\" src=\"\\' + escapeHTML(review.photo) + \\'\" alt=\"\" loading=\"lazy\" referrerpolicy=\"no-referrer\">\\' : \\'<span class=\"ogr__avatar ogr__initial\">\\' + escapeHTML(name.charAt(0).toUpperCase()) + \\'</span>\\';\\n    const message = String(review.comment || \"\").trim() || \"This customer left a rating on Google.\";\\n    const rating = typeof review.rating === \"string\" ? ({ONE:1,TWO:2,THREE:3,FOUR:4,FIVE:5}[review.rating.toUpperCase()] || 5) : Number(review.rating || 5);\\n    return \\'<article class=\"ogr__card\" aria-label=\"\\' + escapeHTML(name) + \\'\\\\\\'s Google review\"><div class=\"ogr__author\">\\' + photo + \\'<div class=\"ogr__person\"><div class=\"ogr__name-line\"><div class=\"ogr__name\">\\' + escapeHTML(name) + \\'</div><span class=\"ogr__verified\" title=\"Review sourced from Google\">Google review</span></div><div class=\"ogr__meta\">\\' + escapeHTML(formatDate(review.createdAt)) + \\'</div></div>\\' + googleMark + \\'</div><div class=\"ogr__card-stars\" aria-label=\"\\' + rating + \\' out of 5 stars\">\\' + stars(rating) + \\'</div><p class=\"ogr__text\">\\' + escapeHTML(message) + \\'</p><span class=\"ogr__source\">Google review</span></article>\\';\\n  };\\n  const row = (reviews, reverse = false) => {\\n    const cards = reviews.map(card).join(\"\");\\n    const repeats = cards.replaceAll(\\'class=\"ogr__card\"\\', \\'class=\"ogr__card\" aria-hidden=\"true\"\\').repeat(3);\\n    return \\'<div class=\"ogr__row\\' + (reverse ? \\' ogr__row--reverse\\' : \\'\\') + \\'\">\\' + cards + repeats + \\'</div>\\';\\n  };\\n  const showError = () => {\\n    live.innerHTML = \\'<div class=\"ogr__status\"><div>Live reviews are temporarily unavailable. Please try again shortly.</div></div>\\';\\n    ratingNode.textContent = \"—\";\\n    countNode.textContent = \"Live reviews unavailable\";\\n  };\\n  const load = async () => {\\n    try {\\n      const response = await fetch(ENDPOINT, { headers: { Accept: \"application/json\" } });\\n      if (!response.ok) throw new Error(\"Review service unavailable\");\\n      const data = await response.json();\\n      const reviews = Array.isArray(data.reviews) ? data.reviews.slice(0, 50).sort((a, b) => new Date(b.createdAt || 0) - new Date(a.createdAt || 0)) : [];\\n      if (!reviews.length) throw new Error(\"No reviews returned\");\\n      ratingNode.textContent = Number(data.averageRating || 0).toFixed(1);\\n      countNode.textContent = \\'Based on \\' + Number(data.totalReviewCount || reviews.length).toLocaleString() + \\' Google reviews\\';\\n      const midpoint = Math.max(1, Math.ceil(reviews.length / 2));\\n      const top = reviews.slice(0, midpoint);\\n      const bottom = reviews.slice(midpoint);\\n      live.innerHTML = \\'<div class=\"ogr__tracks\">\\' + row(top) + row(bottom.length ? bottom : top.slice().reverse(), true) + \\'</div>\\';\\n      attributionNode.textContent = \\'Reviews supplied by Google. Newest available reviews are shown first.\\';\\n    } catch (error) { console.error(\"OptimaWebAI live reviews:\", error); showError(); }\\n  };\\n  load();\\n})();\\n</script>\\n\\n<script>\\n(()=>{\\nconst root=document.querySelector(\\'.ogr\\');\\nif(!root)return;\\nconst visibility=()=>root.dataset.background=String(document.hidden);\\ndocument.addEventListener(\\'visibilitychange\\',visibility);visibility();\\nwindow.addEventListener(\\'pagehide\\',()=>document.removeEventListener(\\'visibilitychange\\',visibility),{once:true});\\n})();</script>\\n</body></html>\\n',id:\"POIHqnTDS\",layoutId:\"POIHqnTDS\",radius:\"0px\",style:{width:\"100%\"},type:\"html\",url:\"\",width:\"100%\",zoom:1})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(Container,{className:\"framer-162f2jr-container\",isModuleExternal:true,nodeId:\"WIkcq1NyQ\",scopeId:\"qhnRAmdje\",children:/*#__PURE__*/_jsx(Embed1,{height:\"100%\",html:'<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>Start your project</title></head><body>\\n<style>\\n  html,body { width:100%; margin:0; padding:0; background:#171717; }\\n  * { box-sizing:border-box; }\\n  .octa {\\n    --bg:#171717; --text:#f4f4f1; --muted:#919191; --blue:#3485ff; --line:rgba(255,255,255,.1);\\n    position:relative; display:grid; place-items:center; width:100%; min-height:clamp(430px,56vw,650px);\\n    overflow:hidden; padding:clamp(72px,9vw,118px) clamp(18px,5vw,64px);\\n    color:var(--text); background:var(--bg); text-align:center;\\n    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif;\\n    border-top:1px solid var(--line); border-bottom:1px solid var(--line);\\n  }\\n  .octa::before { content:\"\"; position:absolute; left:50%; bottom:-270px; width:min(720px,90vw); height:430px; background:rgba(52,133,255,.14); border-radius:50%; filter:blur(120px); transform:translateX(-50%); pointer-events:none; }\\n  .octa::after { content:\"\"; position:absolute; inset:20px; border:1px solid rgba(255,255,255,.045); border-radius:22px; pointer-events:none; }\\n  .octa__inner { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; width:min(900px,100%); }\\n  .octa__eyebrow { display:flex; align-items:center; justify-content:center; gap:10px; margin:0 0 22px; color:#aaa; font-size:10px; font-weight:720; letter-spacing:.17em; text-transform:uppercase; }\\n  .octa__eyebrow::before { content:\"\"; width:7px; height:7px; background:var(--blue); border-radius:50%; box-shadow:0 0 0 5px rgba(52,133,255,.11),0 0 16px rgba(52,133,255,.45); }\\n  .octa__title { margin:0; font-size:clamp(44px,6.8vw,86px); font-weight:560; letter-spacing:-.067em; line-height:.95; text-wrap:balance; }\\n  .octa__title span { color:#747474; }\\n  .octa__copy { max-width:610px; margin:clamp(24px,3vw,34px) auto 0; color:var(--muted); font-size:clamp(14px,1.4vw,17px); line-height:1.7; text-wrap:balance; }\\n  .octa__button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-width:220px; margin-top:clamp(30px,4vw,44px); padding:8px 9px 8px 24px; color:#171717; background:#f4f4f1; border:1px solid #f4f4f1; border-radius:999px; font-size:10px; font-weight:780; letter-spacing:.1em; text-decoration:none; text-transform:uppercase; transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,background .3s; }\\n  .octa__button i { display:grid; place-items:center; width:40px; height:40px; color:#fff; background:var(--blue); border-radius:50%; font-size:15px; font-style:normal; transition:transform .35s; }\\n  .octa__button:hover { background:#fff; transform:translateY(-4px); box-shadow:0 22px 55px rgba(0,0,0,.3); }\\n  .octa__button:hover i { transform:rotate(45deg); }\\n  .octa__note { display:flex; align-items:center; gap:8px; margin:17px 0 0; color:#656565; font-size:9px; font-weight:650; letter-spacing:.06em; }\\n  .octa__note::before { content:\"\"; width:5px; height:5px; background:#47bd7b; border-radius:50%; box-shadow:0 0 9px rgba(71,189,123,.55); }\\n  .octa-reveal { opacity:0; transform:translateY(22px); transition:opacity .75s ease,transform .75s cubic-bezier(.2,.75,.2,1); }\\n  .octa-reveal.is-visible { opacity:1; transform:none; }\\n  @media(max-width:560px) {\\n    .octa { min-height:500px; padding-inline:22px; }\\n    .octa::after { inset:10px; border-radius:17px; }\\n    .octa__title { font-size:clamp(43px,13.5vw,62px); }\\n    .octa__button { width:100%; max-width:310px; }\\n  }\\n  @media(prefers-reduced-motion:reduce) {\\n    .octa-reveal { opacity:1; transform:none; transition:none; }\\n    .octa__button,.octa__button i { transition:none; }\\n  }\\n  /* Shared Optima light theme; content and interactions stay intact. */\\n  html,body{background:#f4f4f1}\\n  .octa{--bg:#f4f4f1;--text:#111;--muted:#55575a;--blue:#111;--line:rgba(17,18,20,.2);isolation:isolate;background:#f4f4f1;border-color:rgba(17,18,20,.2)}\\n  .octa::before{content:\"\";position:absolute;z-index:0;inset:0;width:auto;height:auto;border-radius:0;filter:none;transform:none;pointer-events:none;background-color:transparent;background-image:linear-gradient(rgba(17,18,20,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(17,18,20,.055) 1px,transparent 1px);background-size:72px 72px}\\n  .octa::after{inset:20px;border:1px solid rgba(17,18,20,.18);border-radius:5px}\\n  .octa__inner{z-index:1}\\n  .octa__eyebrow,.octa__title,.octa__copy,.octa__note{position:relative;background:#f4f4f1;box-shadow:0 0 0 12px #f4f4f1}\\n  .octa__eyebrow{color:#111}.octa__eyebrow::before{background:#111;box-shadow:0 0 0 5px rgba(17,17,17,.09)}\\n  .octa h2{color:#111;font-weight:740;letter-spacing:-.055em}.octa h2 span{color:#5f6063;font-weight:780}\\n  .octa__copy{color:#55575a}.octa__note{color:#55575a}.octa__note::before{background:#111;box-shadow:none}\\n  .octa__button{color:#fff;background:#111;border:1px solid #111;font-weight:800}\\n  .octa__button:hover{color:#fff;background:#292929;box-shadow:0 18px 42px rgba(17,18,20,.14)}\\n  .octa__button i{position:relative;color:#111;background:#fff;font-size:0;transform:none}\\n  .octa__button i::before{content:\"\";grid-area:1/1;width:8px;height:8px;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:translate(2px,-2px)}\\n  .octa__button i::after{content:\"\";grid-area:1/1;width:12px;height:1.5px;background:currentColor;transform:rotate(-45deg)}\\n  .octa__button:hover i{transform:none}\\n  @media(max-width:560px){.octa::after{inset:10px;border-radius:5px}.octa__eyebrow,.octa__title,.octa__copy,.octa__note{box-shadow:0 0 0 9px #f4f4f1}}\\n\\n  /* Mobile-only refinement — desktop CTA remains unchanged. */\\n  @media(max-width:560px){\\n    .octa{min-height:390px;padding:48px 14px}\\n    .octa::after{inset:8px}\\n    .octa__inner{max-width:35rem}\\n    .octa__eyebrow{gap:8px;margin-bottom:14px;font-size:8.5px}\\n    .octa__eyebrow::before{width:6px;height:6px}\\n    .octa__title{font-size:clamp(39px,11.8vw,52px);line-height:.96}\\n    .octa__copy{max-width:31rem;margin-top:18px;font-size:12px;line-height:1.55}\\n    .octa__button{min-width:0;min-height:43px;margin-top:22px;padding:6px 7px 6px 16px;font-size:9px}\\n    .octa__button i{width:29px;height:29px}\\n    .octa__button:hover{transform:none}\\n    .octa__note{gap:6px;margin-top:12px;font-size:7.5px;line-height:1.4;text-align:center}\\n    .octa__eyebrow,.octa__title,.octa__copy,.octa__note{box-shadow:0 0 0 7px #f4f4f1}\\n  }\\n\\n  @media(max-width:390px){\\n    .octa{min-height:370px;padding-right:11px;padding-left:11px}\\n    .octa__title{font-size:38px}\\n    .octa__copy{font-size:11.5px}\\n    .octa__note{font-size:7px}\\n  }\\n\\n/* Charcoal finish and restrained dimensional motion. */\\nhtml,body{background:#171717}\\n.octa{--bg:#171717;--text:#f5f5f3;--muted:#b8b8bb;--line:#ffffff18;background:#171717;border-color:var(--line)}\\n.octa::before{background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);mask-image:radial-gradient(ellipse at center,transparent 28%,#000 90%);-webkit-mask-image:radial-gradient(ellipse at center,transparent 28%,#000 90%)}\\n.octa::after{border-color:#ffffff18}\\n.octa__eyebrow,.octa__title,.octa__copy,.octa__note{background:transparent;box-shadow:none}\\n.octa__eyebrow{color:#c6c6c8}.octa__eyebrow::before{background:#eee;box-shadow:0 0 0 5px #ffffff0d}\\n.octa h2{color:#f5f5f3}.octa h2 span{color:#a9a9ad}\\n.octa__copy{color:#b8b8bb}\\n.octa__button{position:relative;color:#171717;background:linear-gradient(155deg,#fff,#e6e6e3);border:1px solid #fff9;box-shadow:inset 0 1px 0 #fff,0 3px 0 #999,0 10px 22px #0004;min-height:58px;font-size:11px}\\n.octa__button:hover{color:#111;background:#fff;box-shadow:inset 0 1px 0 #fff,0 3px 0 #aaa,0 16px 32px #0006}\\n.octa__button:active{transform:translateY(1px);box-shadow:0 1px 0 #999,0 5px 12px #0003}\\n.octa__button:focus-visible{outline:2px solid #fff;outline-offset:6px}\\n.octa__button i{position:relative;flex-shrink:0;background:linear-gradient(145deg,#333,#111);color:#fff;box-shadow:inset 0 1px 0 #ffffff30,0 2px 3px #0003;overflow:hidden}\\n.octa__button i::before,.octa__button i::after{display:none}\\n.octa__arrow{position:relative;display:block;width:18px;height:16px;transition:transform .4s cubic-bezier(.2,.8,.2,1)}\\n.octa__arrow::before{content:\"\";position:absolute;left:0;top:7px;width:17px;height:2px;background:currentColor;border-radius:2px}\\n.octa__arrow::after{content:\"\";position:absolute;right:1px;top:3px;width:10px;height:10px;border-top:2px solid currentColor;border-right:2px solid currentColor;transform:rotate(45deg);border-radius:1px}\\n.octa__button:hover .octa__arrow,.octa__button:focus-visible .octa__arrow{animation:octa-arrow-pass .65s cubic-bezier(.2,.7,.2,1) both}\\n@keyframes octa-arrow-pass{0%{transform:translateX(0);opacity:1}45%{transform:translateX(26px);opacity:0}46%{transform:translateX(-26px);opacity:0}100%{transform:translateX(0);opacity:1}}\\n.octa__note{position:relative;isolation:isolate;max-width:100%;gap:12px;margin-top:28px;padding:13px 19px;color:#c9c9cc;font-size:12px;font-weight:400;letter-spacing:.01em;line-height:1.6;border:1px solid #ffffff22;border-radius:12px;background:linear-gradient(130deg,#ffffff0b,#ffffff03);box-shadow:inset 0 1px 0 #ffffff0c,0 7px 20px #0002}\\n.octa__note::before{flex:0 0 6px;width:6px;height:6px;background:#fff;box-shadow:0 0 0 4px #ffffff0b;animation:octa-live 3.4s ease-out infinite}\\n.octa__note strong{display:inline-block;color:#fff;font-weight:700;letter-spacing:-.02em;border-bottom:1px solid #ffffff70}\\n.octa__note-break{display:none}\\n@keyframes octa-live{0%,100%{box-shadow:0 0 0 3px #ffffff14}65%{box-shadow:0 0 0 10px #ffffff00}}\\n.octa-reveal,.octa-reveal.is-visible{opacity:1;transform:none}\\n@media(max-width:560px){\\n.octa{padding:54px 22px}.octa__copy{font-size:14px;line-height:1.65}\\n.octa__button{min-height:52px;font-size:10px}.octa__button i{width:36px;height:36px}\\n.octa__note{font-size:11px;padding:12px 15px;margin-top:23px}.octa__note-break{display:block}\\n}\\n@media(prefers-reduced-motion:reduce){\\n.octa *,.octa *::before,.octa *::after{animation:none!important;transition:none!important}\\n.octa__button:hover,.octa__button:active{transform:none}\\n}\\n\\n/* Final white theme. */\\nhtml,body{background:#fff}\\n.octa{--bg:#fff;--text:#111;--muted:#5f6268;--line:rgba(17,17,17,.16);background:#fff;color:#111;border-color:var(--line)}\\n.octa::before{inset:0;width:auto;height:auto;border-radius:0;filter:none;transform:none;background-color:transparent;background-image:linear-gradient(rgba(17,17,17,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(17,17,17,.045) 1px,transparent 1px);background-size:72px 72px;mask-image:none;-webkit-mask-image:none}\\n.octa::after{border-color:rgba(17,17,17,.16)}\\n.octa__eyebrow,.octa__title,.octa__copy,.octa__note{background:#fff;box-shadow:0 0 0 12px #fff}\\n.octa__eyebrow{color:#555b64}.octa__eyebrow::before{background:#111;box-shadow:0 0 0 5px rgba(17,17,17,.08)}\\n.octa h2{color:#111}.octa h2 span{color:#666a70}\\n.octa__copy{color:#5f6268}\\n.octa__button{color:#fff;background:#111;border-color:#111;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 3px 0 #000,0 12px 24px rgba(17,17,17,.16)}\\n.octa__button:hover{color:#fff;background:#292929;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 3px 0 #000,0 16px 32px rgba(17,17,17,.2)}\\n.octa__button:focus-visible{outline-color:#111}\\n.octa__button i{color:#111;background:#fff;box-shadow:inset 0 1px 0 #fff,0 2px 3px rgba(0,0,0,.2)}\\n.octa__note{color:#555b64;border-color:rgba(17,17,17,.16);background:#fff}\\n.octa__note::before{background:#111;box-shadow:none;animation:none}\\n.octa__note strong{color:#111;border-bottom-color:rgba(17,17,17,.55)}\\n@media(max-width:560px){.octa__eyebrow,.octa__title,.octa__copy,.octa__note{box-shadow:0 0 0 7px #fff}}\\n</style>\\n\\n<section class=\"octa\" aria-labelledby=\"octa-title\" data-conversion-cta>\\n  <div class=\"octa__inner octa-reveal\">\\n    <p class=\"octa__eyebrow\">Ready when you are</p>\\n    <h2 class=\"octa__title\" id=\"octa-title\">Your next customer<br><span>is already comparing you.</span></h2>\\n    <p class=\"octa__copy\">Book a short conversation and we’ll show you exactly what your website needs to build trust, stand out from competitors, and turn more visitors into genuine enquiries.</p>\\n    <a class=\"octa__button\" href=\"https://www.optimawebai.com/contact\" target=\"_top\" aria-label=\"Start your project with OptimaWebAI\"><span>Start your project</span><i aria-hidden=\"true\"><span class=\"octa__arrow\"></span></i></a>\\n    <p class=\"octa__note\"><span>Your website could be live<br class=\"octa__note-break\"> in as little as <strong>7 days.</strong></span></p>\\n  </div>\\n</section>\\n\\n<script>\\n(()=>{\\ndocument.querySelectorAll(\\'[data-conversion-cta]\\').forEach(root=>{\\n if(root.dataset.ready)return;root.dataset.ready=\\'true\\';\\n const item=root.querySelector(\\'.octa__inner\\'),motion=matchMedia(\\'(prefers-reduced-motion: reduce)\\');let animation;\\n const observer=\\'IntersectionObserver\\' in window?new IntersectionObserver(entries=>entries.forEach(e=>{\\n  if(!e.isIntersecting)return;observer.disconnect();\\n  if(!motion.matches&&item.animate)animation=item.animate([{opacity:.65,translate:\\'0 18px\\'},{opacity:1,translate:\\'0 0\\'}],{duration:800,easing:\\'cubic-bezier(.2,.75,.2,1)\\'});\\n }),{threshold:.15}):null;\\n observer?.observe(item);\\n function stop(){if(motion.matches)animation?.cancel()}\\n motion.addEventListener(\\'change\\',stop);\\n window.addEventListener(\\'pagehide\\',()=>{observer?.disconnect();animation?.cancel();motion.removeEventListener(\\'change\\',stop)},{once:true});\\n});\\n})();\\n</script>\\n\\n</body></html>\\n',id:\"WIkcq1NyQ\",layoutId:\"WIkcq1NyQ\",radius:\"0px\",style:{width:\"100%\"},type:\"html\",url:\"\",width:\"100%\",zoom:1})})}),/*#__PURE__*/_jsx(ComponentViewportProvider,{height:471,width:\"100vw\",y:1872,children:/*#__PURE__*/_jsx(Container,{className:\"framer-mykkz1-container\",nodeId:\"pLHToeQzg\",scopeId:\"qhnRAmdje\",children:/*#__PURE__*/_jsx(PropertyOverrides,{breakpoint:baseVariant,overrides:{JKJSCCaio:{variant:matchVariant(\"Qk6E2mkA1\")},X7aN0nU2I:{variant:matchVariant(\"EAE4hFzUn\")}},children:/*#__PURE__*/_jsx(Footer,{height:\"100%\",id:\"pLHToeQzg\",layoutId:\"pLHToeQzg\",style:{width:\"100%\"},variant:matchVariant(\"qxcUNJcIB\"),width:\"100%\"})})})})]}),/*#__PURE__*/_jsx(\"div\",{id:\"template-overlay\"})]})});});const css=target=>{const isStaticRenderer=target===RenderTarget.canvas||target===RenderTarget.export;if(!isStaticRenderer){return[...rules,...breakpointKeys.map(key=>{const query=mediaQueries[key];return`@media ${query} { ${breakpointRules[key].join(\" \")} }`;})];}return[...rules,...breakpointKeys.flatMap(key=>{const selector=breakpointRules[key];return breakpointRules[key].map(rule=>`${selector} {${rule}}`);})];};/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 1723\n * @framerIntrinsicWidth 1200\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]},\"X7aN0nU2I\":{\"layout\":[\"fixed\",\"fixed\"]},\"JKJSCCaio\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n * @framerHitTargets {\"Dst6lrXHO\":[\".framer-cb6scc-container\",\".framer-1cofu7r-container\",\".framer-162f2jr-container\",\".framer-mykkz1-container\"],\"X7aN0nU2I\":[\".framer-cb6scc-container\",\".framer-1cofu7r-container\",\".framer-162f2jr-container\",\".framer-mykkz1-container\"],\"JKJSCCaio\":[\".framer-cb6scc-container\",\".framer-1cofu7r-container\",\".framer-162f2jr-container\",\".framer-mykkz1-container\"]}\n * @framerBreakpoints {\"Dst6lrXHO\":{\"min\":1200,\"canvasClassName\":\"framer-1upato1-override\",\"minHeight\":1723,\"name\":\"Desktop\",\"width\":1200,\"rootFontSize\":16},\"X7aN0nU2I\":{\"min\":810,\"max\":1199,\"canvasClassName\":\"framer-rd941r-override\",\"minHeight\":1723,\"viewportHeight\":1080,\"name\":\"Tablet\",\"width\":810,\"rootFontSize\":16},\"JKJSCCaio\":{\"max\":809,\"canvasClassName\":\"framer-12s58mq-override\",\"minHeight\":1723,\"viewportHeight\":844,\"name\":\"Phone\",\"width\":390,\"rootFontSize\":16}}\n * @framerDefaultVariant Dst6lrXHO\n * @framerLayoutTemplate true\n */const FramerqhnRAmdje=withCSS(Component,css,\"framer-7a9xB\");export default FramerqhnRAmdje;FramerqhnRAmdje.displayName=\"Main\";FramerqhnRAmdje.defaultProps={height:1723,width:1200};addFonts(FramerqhnRAmdje,[{explicitInter:true,fonts:[]},...OptimaPillNavigationFonts,...EmbedFonts,...Embed1Fonts,...FooterFonts],{supportsExplicitInterCodegen:true});FramerqhnRAmdje.loader={load:(props,context)=>{return runTasksWithYield([()=>forwardLoader(Footer,{},context)],context);}};\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerqhnRAmdje\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerHitTargets\":\"{\\\"Dst6lrXHO\\\":[\\\".framer-cb6scc-container\\\",\\\".framer-1cofu7r-container\\\",\\\".framer-162f2jr-container\\\",\\\".framer-mykkz1-container\\\"],\\\"X7aN0nU2I\\\":[\\\".framer-cb6scc-container\\\",\\\".framer-1cofu7r-container\\\",\\\".framer-162f2jr-container\\\",\\\".framer-mykkz1-container\\\"],\\\"JKJSCCaio\\\":[\\\".framer-cb6scc-container\\\",\\\".framer-1cofu7r-container\\\",\\\".framer-162f2jr-container\\\",\\\".framer-mykkz1-container\\\"]}\",\"framerContractVersion\":\"1\",\"framerAutoSizeImages\":\"true\",\"framerDefaultVariant\":\"Dst6lrXHO\",\"framerIntrinsicHeight\":\"1723\",\"framerBreakpoints\":\"{\\\"Dst6lrXHO\\\":{\\\"min\\\":1200,\\\"canvasClassName\\\":\\\"framer-1upato1-override\\\",\\\"minHeight\\\":1723,\\\"name\\\":\\\"Desktop\\\",\\\"width\\\":1200,\\\"rootFontSize\\\":16},\\\"X7aN0nU2I\\\":{\\\"min\\\":810,\\\"max\\\":1199,\\\"canvasClassName\\\":\\\"framer-rd941r-override\\\",\\\"minHeight\\\":1723,\\\"viewportHeight\\\":1080,\\\"name\\\":\\\"Tablet\\\",\\\"width\\\":810,\\\"rootFontSize\\\":16},\\\"JKJSCCaio\\\":{\\\"max\\\":809,\\\"canvasClassName\\\":\\\"framer-12s58mq-override\\\",\\\"minHeight\\\":1723,\\\"viewportHeight\\\":844,\\\"name\\\":\\\"Phone\\\",\\\"width\\\":390,\\\"rootFontSize\\\":16}}\",\"framerLayoutTemplate\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"X7aN0nU2I\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]},\\\"JKJSCCaio\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicWidth\":\"1200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","\r\n\t\timport * as Framer from \"framer\";\r\nimport * as React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport * as ReactDOM from \"react-dom/client\";\r\nimport Main from \"https://framerusercontent.com/modules/6Z29e0zv6aU2AwJdzeUi/FdPCx8cQbcJzxbuhZ0PJ/qhnRAmdje.js\";\r\n\r\n\t\tconst routes = {augiA20Il: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/oiXsQFToSk7uUtt4yKc4/4OcgVbgW5BqEP9rRSP61/augiA20Il.js\")), path: \"/\"}, GjQI_B82s: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/Rtz1e9RKrDiSnY0ziow5/A3gJfkFVPAtxutOpLy3b/GjQI_B82s.js\")), path: \"/contact\"}, eUrueYB8r: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/8vKeZU6grMFCLhv1wXIZ/7efbTB2SwwayrCRjVstY/eUrueYB8r.js\")), path: \"/about\"}, Ut3jRQf0w: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ezEQ8E0GMslb9PuYc0Kh/CjlvsUdCd6PqjMLeA2Od/Ut3jRQf0w.js\")), path: \"/projects\"}, t7hebT43B: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/j3Iwz1cX7Bg2EkPdMXfY/tkWjeF9SKkONlQBKMfrX/t7hebT43B.js\")), path: \"/404\"}, wfuEsIQdN: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/cWS0dOj0AwRM0RA2XdRq/uUAIt96dMEEW80FGEnp7/wfuEsIQdN.js\"))}, AhVuLVFn3: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/bh4kIeGIHEwaC4NY2r4A/CRYfq5VUagHIYj7lSgdS/AhVuLVFn3.js\")), path: \"/experience-lab\"}, sxtmEF53n: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/8n3wRUIYo9QvgIOcGLXb/CXgLU7weO2nEaY7lMZqJ/sxtmEF53n.js\")), path: \"/web-design\"}, Z21kgnOoJ: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/1jM8jEs9cBIAvrwxwGAz/4XUI39q7hPH08zLeeogB/Z21kgnOoJ.js\")), path: \"/ecommerce-web-design\"}, YbQWkhTd0: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ofZpZQ1ldgh3Al4p7Phm/feIcAaw9Q7Ba0E85ctsv/YbQWkhTd0.js\")), path: \"/shopify-web-design\"}, KOZu0eT83: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/isLcuUP3vdOrPxcMTgIW/ko8cU6GHKo91uLBNdUyq/KOZu0eT83.js\")), path: \"/custom-web-development\"}, FHrrxenhk: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/hQbyoTWejHZTEjBVgKWf/baY6T43RCa3y8WHPnc61/FHrrxenhk.js\")), path: \"/website-redesign\"}, BGE16AQ6b: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/76AufwcXbZXFk8Ff58T8/FQfqBCH5DSzYFG4xvZsW/BGE16AQ6b.js\")), path: \"/interactive-web-design\"}, ttv6phx9j: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/OphpU8hMwPcLbhELDaov/7YivI9ZeHjWiA0pF0yTR/ttv6phx9j.js\")), path: \"/landing-page-design\"}, ZFeBeVv_Y: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/VWHRz8jGxn8cONNUETq9/khN686M27AU4HorudkOM/ZFeBeVv_Y.js\")), path: \"/pricing\"}, C_zIb4FOn: {collectionId: \"jNTn1_54d\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/6GSPmoPiQBqveIQtKWqD/k2lBUFgRobBRzYexOqwm/C_zIb4FOn.js\")), path: \"/projects/:cgdrFtBQf\"}, sHEHHPUZ6: {collectionId: \"zZao9MpMu\", elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/AjjTOZix3c1GNVUZfpRz/UrtaqLQbfTJI5Fv8E8r7/sHEHHPUZ6.js\")), path: \"/legal-pages/:yFci79a0S\"}}\r\n\r\n\t\tconst locales = [{code: \"en\", id: \"default\", name: \"English\", slug: \"\", textDirection: \"ltr\"}]\r\n\t\tconst collectionUtils = {jNTn1_54d: async () => (await import(\"https://framerusercontent.com/modules/9pScq5PhVhsBaUoCQJsU/URtDMnPDYoCVPRm7R6FW/jNTn1_54d.js\"))?.[\"utils\"], zZao9MpMu: async () => (await import(\"https://framerusercontent.com/modules/bsbdi6Aj9TZp5ko8Jbjx/NYfpE5LolbtKE7LNabof/zZao9MpMu.js\"))?.[\"utils\"]}\r\n\t\tconst serverDatabaseClient = undefined\r\n\t\tconst framerSiteId = \"270f02dfb27fb8f6380556a2a85510f959a1a52128958ccaf41e5a5495884151\"\r\n\t\tfunction Template({webPageId, children, style, ...rest}) {const templateProps = {}\r\nconst props = templateProps[webPageId] ?? {}\r\nswitch (webPageId) {case \"augiA20Il\":\r\ncase \"GjQI_B82s\":\r\ncase \"eUrueYB8r\":\r\ncase \"Ut3jRQf0w\":\r\ncase \"t7hebT43B\":\r\ncase \"wfuEsIQdN\":\r\ncase \"AhVuLVFn3\":\r\ncase \"sxtmEF53n\":\r\ncase \"Z21kgnOoJ\":\r\ncase \"YbQWkhTd0\":\r\ncase \"KOZu0eT83\":\r\ncase \"FHrrxenhk\":\r\ncase \"BGE16AQ6b\":\r\ncase \"ttv6phx9j\":\r\ncase \"ZFeBeVv_Y\":\r\ncase \"C_zIb4FOn\":\r\ncase \"sHEHHPUZ6\":\r\nreturn React.createElement(Main, {...props, key: \"Main\", style}, children(true));\r\ndefault: { return children(false) }}}\r\nexport function getLayoutTemplateBreakpoints(routeId) {switch (routeId) {case \"augiA20Il\":\r\ncase \"GjQI_B82s\":\r\ncase \"eUrueYB8r\":\r\ncase \"Ut3jRQf0w\":\r\ncase \"t7hebT43B\":\r\ncase \"wfuEsIQdN\":\r\ncase \"AhVuLVFn3\":\r\ncase \"sxtmEF53n\":\r\ncase \"Z21kgnOoJ\":\r\ncase \"YbQWkhTd0\":\r\ncase \"KOZu0eT83\":\r\ncase \"FHrrxenhk\":\r\ncase \"BGE16AQ6b\":\r\ncase \"ttv6phx9j\":\r\ncase \"ZFeBeVv_Y\":\r\ncase \"C_zIb4FOn\":\r\ncase \"sHEHHPUZ6\":\r\nreturn [{hash: \"1upato1\", mediaQuery: \"(min-width: 1200px)\"}, {hash: \"rd941r\", mediaQuery: \"(min-width: 810px) and (max-width: 1199.98px)\"}, {hash: \"12s58mq\", mediaQuery: \"(max-width: 809.98px)\"}]\r\ndefault: { return undefined }}}\r\n\r\n\t\tconst isBrowser = typeof document !== \"undefined\"\r\n\t\tconst isBot = isBrowser && /bot|-google|google-|yandex|ia_archiver|crawl|spider/iu.test(navigator.userAgent)\r\n\r\n\t\t\r\n\t\t\r\n\r\n\t\texport async function getPageRoot({\r\n\t\t\trouteId,\r\n\t\t\tpathVariables,\r\n\t\t\tcanonicalPathVariables,\r\n\t\t\tlocaleId,\r\n\t\t\tcollectionItemId,\r\n\t\t\tcontentLocaleId,\r\n\t\t\tshouldResolveInitialRouteContentState = false,\r\n\t\t}) {\r\n\t\t\tconst rootPreload = routes[routeId].page.preload()\r\n\r\n\t\t\t\r\n\r\n\t\t\tFramer.setLibraryFeatures({checkServerSideRouter: true, disableCustomCode: false, disableHoverOnMobile: false, editorBarDisableFrameAncestorsSecurity: false, motionDivToDiv: false, onPageLocalizationSupport: true, onPageMoveTool: true, onPageRichTextBlockSelection: true, scrollRestoration: true, synchronousNavigationOnDesktop: false, yieldOnTap: false})\r\n\t\t\tFramer.setCurrentSiteId(framerSiteId)\r\n\r\n\t\t\tconst content = React.createElement(\r\n\t\t\t\tFramer.PageRoot,\r\n\t\t\t\t{\r\n\t\t\t\t\tisWebsite: true,\r\n\t\t\t\t\tenvironment: \"site\",\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\troutes,\r\n\t\t\t\t\tcollectionUtils,\r\n\t\t\t\t\tserverDatabaseClient,\r\n\t\t\t\t\tframerSiteId,\r\n\t\t\t\t\tnotFoundPage: Framer.lazy(() => import(\"https://framerusercontent.com/modules/j3Iwz1cX7Bg2EkPdMXfY/tkWjeF9SKkONlQBKMfrX/t7hebT43B.js\")),\r\n\t\t\t\t\tisReducedMotion: true,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tlocales,\r\n\t\t\t\t\tpreserveQueryParams: undefined,\r\n\t\t\t\t\tsiteCanonicalURL: \"https://www.optimawebai.com\",\r\n\t\t\t\t\tEditorBar: \r\n\t\t\ttypeof window !== \"undefined\" ? (() => {\r\n\t\t\t\tif (isBot) {\r\n\t\t\t\t\tconsole.log(\"[Framer On-Page Editing] Unavailable because navigator is bot\")\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Framer.lazy(async () => {\r\n\t\t\t\t\tconst dependencies = {\r\n\t\t\t\t\t\t__version: 3,\r\n\t\t\t\t\t\tframer: {\r\n\t\t\t\t\t\t\tuseCurrentRoute: Framer.useCurrentRoute,\r\n\t\t\t\t\t\t\tuseLocaleInfo: Framer.useLocaleInfo,\r\n\t\t\t\t\t\t\tuseRouter: Framer.useRouter,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\treact: {\r\n\t\t\t\t\t\t\tcreateElement: React.createElement,\r\n\t\t\t\t\t\t\tFragment: React.Fragment,\r\n\t\t\t\t\t\t\tmemo: React.memo,\r\n\t\t\t\t\t\t\tuseCallback: React.useCallback,\r\n\t\t\t\t\t\t\tuseEffect: React.useEffect,\r\n\t\t\t\t\t\t\tuseRef: React.useRef,\r\n\t\t\t\t\t\t\tuseState: React.useState,\r\n\t\t\t\t\t\t\tuseLayoutEffect: React.useLayoutEffect,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\"react-dom\": { createPortal },\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\twindow.__framer_editorBarDependencies = dependencies\r\n\r\n\t\t\t\t\tconst { createEditorBar } = await import(\"https://framer.com/edit/init.mjs\")\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tdefault: createEditorBar(),\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t})() : undefined\r\n\t\t,\r\n\t\t\t\t\tadaptLayoutToTextDirection: false,\r\n\t\t\t\t\tLayoutTemplate: Template,\r\n\t\t\t\t\tloadSnippetsModule: new Framer.LazyValue(() => import(\"https://framerusercontent.com/modules/pxw5aoaELly8CSBvrFU1/jaAcIDwI1jNHTSG7ge7F/snippets.js\")),\r\n\t\t\t\t\tinitialCollectionItemId: collectionItemId,\r\n\t\t\t\t\tinitialContentLocaleIdOverride: contentLocaleId,\r\n\t\t\t\t}\r\n\t\t\t)\r\n\r\n\t\t\tconst contentWithGracefullyDegradingErrorBoundary = React.createElement(Framer.GracefullyDegradingErrorBoundary, {\r\n\t\t\t\tchildren: content\r\n\t\t\t})\r\n\r\n\t\t\t\r\n\t\t\tconst page = React.createElement(Framer.PageEffectsProvider, {\r\n\t\t\t\tchildren: contentWithGracefullyDegradingErrorBoundary,\r\n\t\t\t\tvalue: {routes: {}}\r\n\t\t\t})\r\n\r\n\t\t\t// We don't want the initial render to immediately have to suspend.\r\n\t\t\tawait rootPreload\r\n\t\t\treturn page\r\n\t\t}\r\n\t\r\n\r\n\t\tif (isBrowser) {\r\n\t\t\t// Note: HTTPArchive also uses this function to detect Framer sites; see https://github.com/HTTPArchive/wappalyzer/blob/371a17583f74fd9171b9077f59a5619b24062891/src/technologies/f.json#L1722-L1748.\r\n\t\t\twindow.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\r\n\t\t\t\treturn React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\r\n\t\t\t}\r\n\r\n\t\t\twindow.__framer_events = window.__framer_events || []\r\n\r\n\t\t\t// Initialize lazy modules cache for hydration\r\n\t\t\tFramer.initLazyModulesCache()\r\n\r\n\t\t\tconst container = document.getElementById(\"main\")\r\n\t\t\t// We know that #main is parsed before this script, so we don't need to wait for DOMContentLoaded or similar events.\r\n\t\t\tif (\"framerHydrateV2\" in container.dataset) main(true, container)\r\n\t\t\telse main(false, container)\r\n\t\t}\r\n\r\n\t\tfunction track() {\r\n\t\t\tif (!isBrowser) return\r\n\t\t\twindow.__framer_events.push(arguments)\r\n\t\t}\r\n\r\n\t\tasync function main(shouldHydrate, container) {\r\n\t\t\tfunction handleError(error, errorInfo, recoverable = true) {\r\n\t\t\t\tif (error.caught || window.__framer_hadFatalError) return // we already logged it\r\n\r\n\t\t\t\tconst componentStack = errorInfo?.componentStack\r\n\t\t\t\tif (recoverable) {\r\n\t\t\t\t\tconsole.warn(\"Caught a recoverable error. The site is still functional, but might have some UI flickering or degraded page load performance. If you are the author of this website, update external components and check recently added custom code or code overrides to fix the following server/client mismatches:\\n\", error, componentStack)\r\n\t\t\t\t\t// we only want to collect 1%, because this can be quite noisy (floods the data pipeline)\r\n\t\t\t\t\tif (Math.random() > 0.01) return\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.error(\"Caught a fatal error. Please report the following to the Framer team via https://www.framer.com/contact/:\\n\", error, componentStack)\r\n\t\t\t\t}\r\n\t\t\t\ttrack(recoverable ? \"published_site_load_recoverable_error\" : \"published_site_load_error\", {\r\n\t\t\t\t\tmessage: String(error),\r\n\t\t\t\t\tcomponentStack, // componentStack is more useful\r\n\t\t\t\t\tstack: componentStack ? undefined : error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\r\n\t\t\t\t})\r\n\t\t\t}\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet routeId, localeId, contentLocaleId, pathVariables, canonicalPathVariables, breakpoints, routeData\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\trouteData = JSON.parse(container.dataset[\"framerHydrateV2\"])\r\n\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\tcontentLocaleId = routeData.contentLocaleId\r\n\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\tcanonicalPathVariables = routeData.canonicalPathVariables\r\n\t\t\t\t\tbreakpoints = routeData.breakpoints\r\n\r\n\t\t\t\t\trouteId = Framer.patchRoutesForABTesting(routes, routeId) // Prioritize optimized route id to avoid flickering in browsers not supporting the server-timing header (Safari older than 16.4)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tFramer.patchRoutesForABTesting(routes, undefined) // This must happen before inferInitialRouteFromPath\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\tconst serverRoute = performance.getEntriesByType(\"navigation\")[0]?.serverTiming?.find(e => e.name === \"route\")?.description\r\n\t\t\t\t\tif (serverRoute) {\r\n\t\t\t\t\t\tconst routeData = new URLSearchParams(serverRoute)\r\n\t\t\t\t\t\trouteId = routeData.get(\"id\")\r\n\t\t\t\t\t\tlocaleId = routeData.get(\"locale\")\r\n\t\t\t\t\t\tfor (const [key, value] of routeData.entries()) {\r\n\t\t\t\t\t\t\tif (!key.startsWith(\"var.\")) continue\r\n\t\t\t\t\t\t\tpathVariables ??= {}\r\n\t\t\t\t\t\t\tpathVariables[key.slice(4)] = value\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (!routeId || !localeId) {\r\n\t\t\t\t\t\tconst routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\r\n\t\t\t\t\t\trouteId = routeData.routeId\r\n\t\t\t\t\t\tlocaleId = routeData.localeId\r\n\t\t\t\t\t\tpathVariables = routeData.pathVariables\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst pagePromise = getPageRoot({\r\n\t\t\t\t\trouteId,\r\n\t\t\t\t\tlocaleId,\r\n\t\t\t\t\tcontentLocaleId,\r\n\t\t\t\t\tpathVariables,\r\n\t\t\t\t\tcanonicalPathVariables,\r\n\t\t\t\t\tcollectionItemId: shouldHydrate ? routeData?.collectionItemId : undefined,\r\n\t\t\t\t\tshouldResolveInitialRouteContentState: !shouldHydrate,\r\n\t\t\t\t})\r\n\r\n\t\t\t\t\r\nif (typeof window !== \"undefined\") {\r\n\tvoid (async () => {\r\n\t\tconst route = routes[routeId]\r\n\r\n\t\tconst defaultLocaleId = \"default\"\r\n\t\tconst framerLocale = locales.find(({ id }) => !localeId ? id === defaultLocaleId : id === localeId).code\r\n\r\n\t\t\r\n\t\tlet collectionItemId = routeData?.collectionItemId ?? null\r\n\t\tif (collectionItemId === null && route?.collectionId && collectionUtils) {\r\n\t\t\tconst utils = await collectionUtils[route.collectionId]?.()\r\n\t\t\tconst [slug] = Object.values(pathVariables)\r\n\t\t\tif (utils && typeof slug === \"string\") {\r\n\t\t\t\tcollectionItemId = (await utils.getRecordIdBySlug(slug, framerLocale || undefined)) ?? null\r\n\t\t\t}\r\n\t\t}\r\n\t\r\n\r\n\t\tconst resolvedDateTimeOptions = Intl.DateTimeFormat().resolvedOptions()\r\n\t\tconst timezone = resolvedDateTimeOptions.timeZone\r\n\t\tconst locale = resolvedDateTimeOptions.locale\r\n\r\n\t\t// wait for the page to be activated before sending the pageview event\r\n\t\t// https://developer.chrome.com/docs/web-platform/prerender-pages#impact-on-analytics\r\n\t\tawait new Promise((resolve) => {\r\n\t\t\tif (document.prerendering) {\r\n\t\t\t\tdocument.addEventListener(\"prerenderingchange\", resolve, { once: true })\r\n\t\t\t} else {\r\n\t\t\t\tresolve()\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\twindow.__framer_events.push([\r\n\t\t\t\"published_site_pageview\",\r\n\t\t\t{\r\n\t\t\t\tframerSiteId,\r\n\t\t\t\tversion: 2,\r\n\t\t\t\troutePath: route?.path || \"/\",\r\n\t\t\t\tcollectionItemId,\r\n\t\t\t\tframerLocale: framerLocale || null,\r\n\t\t\t\twebPageId: route?.abTestingVariantId ?? routeId,\r\n\t\t\t\tabTestId: route?.abTestId,\r\n\t\t\t\treferrer: document.referrer || null,\r\n\t\t\t\turl: window.location.href,\r\n\t\t\t\thostname: window.location.hostname || null,\r\n\t\t\t\tpathname: window.location.pathname || null,\r\n\t\t\t\thash: window.location.hash || null,\r\n\t\t\t\tsearch: window.location.search || null,\r\n\t\t\t\ttimezone,\r\n\t\t\t\tlocale,\r\n\t\t\t},\r\n\t\t\t\"eager\"\r\n\t\t])\r\n\r\n\t\t// Yield to avoid blocking the main thread with the user code\r\n\t\tawait Framer.yieldToMain({ priority: \"background\", ensureContinueBeforeUnload: true, continueAfter: \"paint\" })\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent(\"framer:pageview\", {\r\n\t\t\tdetail: { framerLocale: framerLocale || null }\r\n\t\t}))\r\n\t})()\r\n}\r\n\r\n\r\n\t\t\t\tconst page = await pagePromise\r\n\t\t\t\tif (shouldHydrate) {\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tFramer.withPerformanceMarks(\"framer-rewrite-breakpoints\", () => {\r\n\t\t\t\t\t\tFramer.removeHiddenBreakpointLayersV2(breakpoints)\r\n\t\t\t\t\t\twindow.__framer_onRewriteBreakpoints?.(breakpoints)\r\n\t\t\t\t\t})\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\tconst startTransition = isBot ? cb => cb() : React.startTransition\r\n\t\t\t\t\tstartTransition(() => {\r\n\t\t\t\t\t\tFramer.markHydrationStart()\r\n\t\t\t\t\t\tFramer.turnOffReactEventHandling()\r\n\t\t\t\t\t\tReactDOM.hydrateRoot(container, page, { onRecoverableError: handleError })\r\n\t\t\t\t\t})\r\n\t\t\t\t} else {\r\n\t\t\t\t\t\r\n\t\t\t\t\tReactDOM.createRoot(container, { onRecoverableError: handleError }).render(page)\r\n\t\t\t\t}\r\n\t\t\t} catch (error) {\r\n\t\t\t\thandleError(error, undefined, false)\r\n\t\t\t\tthrow error\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t"],"mappings":"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"}