{"version":3,"file":"shared-lib.Hk69oEe1.mjs","names":[],"sources":["https:/framerusercontent.com/modules/9fb3fifHivgI1PWEgd41/vqz2DlYi7GQb0LollgMA/siteMetadata.js"],"sourcesContent":["// Generated by Framer (cd22f02)\nexport default function metadata(params,activeLocale){return{customHTMLBodyEnd:\"<script>\\n  // Disable right-click anywhere on the page\\n  document.addEventListener('contextmenu', event => event.preventDefault());\\n</script>\\n\",customHTMLBodyStart:\"<style>\\n  @keyframes slideUp {\\n    from { transform: translateY(100%); }\\n    to   { transform: translateY(0); }\\n  }\\n\\n  .discount-banner {\\n    position: fixed;\\n    bottom: -100px;\\n    left: 0;\\n    width: 100%;\\n    background-color: #DA0001;\\n    color: white;\\n    font-family: 'Montserrat', sans-serif;\\n    font-size: 14px;\\n    display: flex;\\n    align-items: center;\\n    justify-content: center;\\n    text-align: center;\\n    box-shadow: 0 -2px 5px rgba(0,0,0,0.2);\\n    padding: 8px 15px;\\n    gap: 10px;\\n    flex-wrap: wrap;\\n    z-index: 9999;\\n    visibility: hidden;\\n    transition: bottom 0.3s ease;\\n  }\\n\\n  .discount-banner.show {\\n    visibility: visible;\\n    bottom: 0;\\n    animation: slideUp 0.5s ease-out;\\n  }\\n\\n  .discount-banner span {\\n    flex: 1;\\n    min-width: 200px;\\n    max-width: 600px;\\n  }\\n\\n  .discount-banner button {\\n    background-color: white;\\n    color: #1690D5;\\n    border: none;\\n    padding: 6px 12px;\\n    font-size: 13px;\\n    font-family: 'Montserrat', sans-serif;\\n    cursor: pointer;\\n    border-radius: 4px;\\n    white-space: nowrap;\\n  }\\n\\n  @media (max-width: 768px) {\\n    .discount-banner { display: none !important; }\\n  }\\n</style>\\n\\n<div class=\\\"discount-banner\\\" id=\\\"discountBanner\\\" style=\\\"display:none\\\">\\n  <strong>\\n    <span>\\n      🔥 50% OFF Site-Wide — Use code \\\"50OFF\\\" at checkout.\\n      Special offer ends in: <span id=\\\"timer\\\"></span> 🔥\\n    </span>\\n  </strong>\\n  <button id=\\\"discountBannerClose\\\">Ok! Got it</button>\\n</div>\\n\\n<script>\\n(function () {\\n  if (window.__discountBannerInit) return;\\n  window.__discountBannerInit = true;\\n\\n  // ✅ Hide on both paths\\n  const EXCLUDE_REGEX = /(\\\\/lifetime-deal|\\\\/case-studies-testimonials|\\\\/faqs)(?:\\\\/|$|\\\\?|#)/i;\\n\\n  let timerInterval = null;\\n  let lastHref = location.href;\\n\\n  function isExcludedPage() {\\n    return EXCLUDE_REGEX.test((location.href || \\\"\\\").toLowerCase());\\n  }\\n\\n  function getEndOfMonthTimestamp() {\\n    const now = new Date();\\n    const end = new Date(now.getFullYear(), now.getMonth() + 1, 1);\\n    end.setSeconds(-1);\\n    return end.getTime();\\n  }\\n\\n  function startTimer() {\\n    const timerDisplay = document.getElementById('timer');\\n    if (!timerDisplay) return;\\n\\n    let storedEnd = localStorage.getItem('discountMonthEnd');\\n    let endTime = getEndOfMonthTimestamp();\\n\\n    if (!storedEnd || Number(storedEnd) < Date.now()) {\\n      localStorage.setItem('discountMonthEnd', endTime);\\n    } else {\\n      endTime = Number(storedEnd);\\n    }\\n\\n    function updateTimer() {\\n      const now = Date.now();\\n      let remaining = endTime - now;\\n\\n      if (remaining <= 0) {\\n        endTime = getEndOfMonthTimestamp();\\n        localStorage.setItem('discountMonthEnd', endTime);\\n        remaining = endTime - now;\\n      }\\n\\n      const days = Math.floor(remaining / 86400000);\\n      const hours = Math.floor((remaining / 3600000) % 24);\\n      const minutes = Math.floor((remaining / 60000) % 60);\\n      const seconds = Math.floor((remaining / 1000) % 60);\\n\\n      timerDisplay.textContent =\\n        (days > 0 ? days + \\\"d \\\" : \\\"\\\") +\\n        hours + \\\"h \\\" + minutes + \\\"m \\\" + seconds + \\\"s\\\";\\n    }\\n\\n    updateTimer();\\n    clearInterval(timerInterval);\\n    timerInterval = setInterval(updateTimer, 1000);\\n  }\\n\\n  function showBanner() {\\n    const banner = document.getElementById('discountBanner');\\n    if (!banner) return;\\n    banner.style.display = '';\\n    banner.classList.add('show');\\n    startTimer();\\n  }\\n\\n  function hideBanner() {\\n    const banner = document.getElementById('discountBanner');\\n    if (!banner) return;\\n\\n    banner.classList.remove('show');\\n    banner.style.visibility = 'hidden';\\n    banner.style.bottom = '-100px';\\n\\n    if (timerInterval) {\\n      clearInterval(timerInterval);\\n      timerInterval = null;\\n    }\\n  }\\n\\n  function resetBannerForRoute() {\\n    const banner = document.getElementById('discountBanner');\\n\\n    if (isExcludedPage()) {\\n      hideBanner();\\n      if (banner) banner.style.display = 'none';\\n      return;\\n    }\\n\\n    if (banner) banner.style.display = '';\\n    setTimeout(showBanner, 4000); // 2s delay\\n  }\\n\\n  function hookHistory(cb) {\\n    const push = history.pushState;\\n    const replace = history.replaceState;\\n\\n    history.pushState = function () {\\n      const ret = push.apply(this, arguments);\\n      cb();\\n      return ret;\\n    };\\n    history.replaceState = function () {\\n      const ret = replace.apply(this, arguments);\\n      cb();\\n      return ret;\\n    };\\n\\n    window.addEventListener('popstate', cb);\\n  }\\n\\n  function onRouteChange() {\\n    const currentHref = location.href;\\n    if (currentHref === lastHref) return;\\n    lastHref = currentHref;\\n    hideBanner();\\n    resetBannerForRoute();\\n  }\\n\\n  document.getElementById('discountBannerClose')?.addEventListener('click', () => {\\n    const banner = document.getElementById('discountBanner');\\n    if (banner) banner.style.display = 'none';\\n    hideBanner();\\n  });\\n\\n  resetBannerForRoute();\\n\\n  hookHistory(onRouteChange);\\n\\n  setInterval(() => {\\n    if (location.href !== lastHref) onRouteChange();\\n  }, 500);\\n\\n})();\\n</script>\",customHTMLHeadEnd:\"<!-- Meta Pixel Code -->\\n<script>\\n!function(f,b,e,v,n,t,s)\\n{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\\nn.callMethod.apply(n,arguments):n.queue.push(arguments)};\\nif(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\\nn.queue=[];t=b.createElement(e);t.async=!0;\\nt.src=v;s=b.getElementsByTagName(e)[0];\\ns.parentNode.insertBefore(t,s)}(window, document,'script',\\n'https://connect.facebook.net/en_US/fbevents.js');\\nfbq('init', '632099089290671');\\nfbq('track', 'PageView');\\n</script>\\n<noscript></noscript>\",customHTMLHeadStart:'<!-- Start of Async ProveSource Code --><script>!function(o,i){window.provesrc&&window.console&&console.error&&console.error(\"ProveSource is included twice in this page.\"),window.provesrc={dq:[],display:function(){this.dq.push(arguments)}},o._provesrcAsyncInit=function(){window.provesrc.init({apiKey:\"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50SWQiOiI2N2EzNDRjYWI2ODQwMmZiNjZjNWE0YjgiLCJpYXQiOjE3Mzg3NTMyMjZ9.3vy7nh5wo25VKTQ7uz8Id_XZbbNUEfMBHvHBWSPzXxM\",v:\"0.0.4\"})};var r=i.createElement(\"script\");r.type=\"text/javascript\",r.async=!0,r[\"ch\"+\"ar\"+\"set\"]=\"UTF-8\",r.src=\"https://cdn.provesrc.com/provesrc.js\";var e=i.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)}(window,document);</script><!-- End of Async ProveSource Code -->\\n<!-- Lucky orange start -->\\n<script async=\"\" defer=\"\" src=\"https://tools.luckyorange.com/core/lo.js?site-id=7069f477\">\\n</script>\\n<!-- Lucky orange end -->',description:\"Transform your business with Centerfy AI! Automate lead qualification, appointment scheduling & follow-ups. Scale your company with the most advanced AI voice platform on the market.\",favicon:\"https://framerusercontent.com/assets/EIjjscxXdK6XbpX9Ekr6IlXt2o.svg\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/BPXIcNO8bADTSxm9Iu4H8B8fsts.png\",title:\"Centerfy™ AI Voice & Chat CRM For Businesses & Agencies\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"2DACA,SAAwB,EAAS,EAAO,EAAa,CAAC,MAAM,CAAC,kBAAkB;;;;EAAqJ,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAAmmK,kBAAkB;;;;;;;;;;;;;uBAA4gB,oBAAoB;;;;2BAAk5B,YAAY,yLAAyL,QAAQ,sEAAsE,OAAO,0BAA0B,YAAY,uEAAuE,MAAM,0DAA0D"}