// modules are defined as an array
// [ module function, map of requires ]
//
// map of requires is short require name -> numeric require
//
// anything defined in a previous bundle is accessed via the
// orig method which is the require for previous bundles
parcelRequire = (function (modules, cache, entry, globalName) {
  // Save the require from previous bundle to this closure if any
  var previousRequire = typeof parcelRequire === 'function' && parcelRequire;
  var nodeRequire = typeof require === 'function' && require;

  function newRequire(name, jumped) {
    if (!cache[name]) {
      if (!modules[name]) {
        // if we cannot find the module within our internal map or
        // cache jump to the current global require ie. the last bundle
        // that was added to the page.
        var currentRequire = typeof parcelRequire === 'function' && parcelRequire;
        if (!jumped && currentRequire) {
          return currentRequire(name, true);
        }

        // If there are other bundles on this page the require from the
        // previous one is saved to 'previousRequire'. Repeat this as
        // many times as there are bundles until the module is found or
        // we exhaust the require chain.
        if (previousRequire) {
          return previousRequire(name, true);
        }

        // Try the node require function if it exists.
        if (nodeRequire && typeof name === 'string') {
          return nodeRequire(name);
        }

        var err = new Error('Cannot find module \'' + name + '\'');
        err.code = 'MODULE_NOT_FOUND';
        throw err;
      }

      localRequire.resolve = resolve;
      localRequire.cache = {};

      var module = cache[name] = new newRequire.Module(name);

      modules[name][0].call(module.exports, localRequire, module, module.exports, this);
    }

    return cache[name].exports;

    function localRequire(x){
      return newRequire(localRequire.resolve(x));
    }

    function resolve(x){
      return modules[name][1][x] || x;
    }
  }

  function Module(moduleName) {
    this.id = moduleName;
    this.bundle = newRequire;
    this.exports = {};
  }

  newRequire.isParcelRequire = true;
  newRequire.Module = Module;
  newRequire.modules = modules;
  newRequire.cache = cache;
  newRequire.parent = previousRequire;
  newRequire.register = function (id, exports) {
    modules[id] = [function (require, module) {
      module.exports = exports;
    }, {}];
  };

  var error;
  for (var i = 0; i < entry.length; i++) {
    try {
      newRequire(entry[i]);
    } catch (e) {
      // Save first error but execute all entries
      if (!error) {
        error = e;
      }
    }
  }

  if (entry.length) {
    // Expose entry point to Node, AMD or browser globals
    // Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
    var mainExports = newRequire(entry[entry.length - 1]);

    // CommonJS
    if (typeof exports === "object" && typeof module !== "undefined") {
      module.exports = mainExports;

    // RequireJS
    } else if (typeof define === "function" && define.amd) {
     define(function () {
       return mainExports;
     });

    // <script>
    } else if (globalName) {
      this[globalName] = mainExports;
    }
  }

  // Override the current require with this new one
  parcelRequire = newRequire;

  if (error) {
    // throw error from earlier, _after updating parcelRequire_
    throw error;
  }

  return newRequire;
})({"js/main.js":[function(require,module,exports) {
// Wait for DOM to load
document.addEventListener('DOMContentLoaded', function () {
  // Navbar scroll effect
  var navbar = document.querySelector('.navbar');
  var lastScroll = 0;
  window.addEventListener('scroll', function () {
    var currentScroll = window.pageYOffset;
    if (currentScroll > 50) {
      navbar.classList.add('scrolled');
    } else {
      navbar.classList.remove('scrolled');
    }
    lastScroll = currentScroll;
  });

  // Mobile menu toggle
  var mobileMenuToggle = document.querySelector('.mobile-menu-toggle');
  var navMenu = document.querySelector('.nav-menu');
  if (mobileMenuToggle) {
    mobileMenuToggle.addEventListener('click', function () {
      mobileMenuToggle.classList.toggle('active');
      navMenu.classList.toggle('active');
    });
  }

  // Smooth scrolling for navigation links
  var navLinks = document.querySelectorAll('a[href^="#"]');
  navLinks.forEach(function (link) {
    link.addEventListener('click', function (e) {
      e.preventDefault();
      var targetId = this.getAttribute('href');
      var targetSection = document.querySelector(targetId);
      if (targetSection) {
        var navHeight = navbar.offsetHeight;
        var targetPosition = targetSection.offsetTop - navHeight;
        window.scrollTo({
          top: targetPosition,
          behavior: 'smooth'
        });

        // Close mobile menu if open
        mobileMenuToggle.classList.remove('active');
        navMenu.classList.remove('active');
      }
    });
  });

  // Number counter animation
  var animateNumbers = function animateNumbers() {
    var numbers = document.querySelectorAll('.stat-number');
    numbers.forEach(function (number) {
      var target = parseInt(number.getAttribute('data-target'));
      var increment = target / 100;
      var current = 0;
      var _updateNumber = function updateNumber() {
        if (current < target) {
          current += increment;
          number.textContent = Math.floor(current).toLocaleString();
          requestAnimationFrame(_updateNumber);
        } else {
          number.textContent = target.toLocaleString();
        }
      };
      _updateNumber();
    });
  };

  // Intersection Observer for animations
  var observerOptions = {
    threshold: 0.1,
    rootMargin: '0px 0px -100px 0px'
  };
  var observer = new IntersectionObserver(function (entries) {
    entries.forEach(function (entry) {
      if (entry.isIntersecting) {
        entry.target.style.animationPlayState = 'running';

        // Trigger number animation for stats section
        if (entry.target.classList.contains('stats')) {
          animateNumbers();
        }
        observer.unobserve(entry.target);
      }
    });
  }, observerOptions);

  // Observe all animated elements
  var animatedElements = document.querySelectorAll('.fade-in-up, .fade-in-down, .slide-in-left, .slide-in-right, .stats, .pop-in');
  animatedElements.forEach(function (el) {
    if (el.classList.contains('pop-in')) {
      el.addEventListener('animationend', function () {
        var icon = this.querySelector('.step-icon');
        if (icon) {
          icon.classList.add('is-animating');
        }
      }, {
        once: true
      });
    }
    el.style.animationPlayState = 'paused';
    observer.observe(el);
  });

  // Add hover effect to cards
  var cards = document.querySelectorAll('.feature-card, .card');
  cards.forEach(function (card) {
    card.addEventListener('mouseenter', function (e) {
      var rect = this.getBoundingClientRect();
      var x = e.clientX - rect.left;
      var y = e.clientY - rect.top;
      this.style.transform = "\n                perspective(1000px)\n                rotateX(".concat((y - rect.height / 2) / 10, "deg)\n                rotateY(").concat((x - rect.width / 2) / 10, "deg)\n                translateZ(10px)\n            ");
    });
    card.addEventListener('mouseleave', function () {
      this.style.transform = '';
    });
  });

  // Button ripple effect
  var buttons = document.querySelectorAll('.btn-primary, .btn-outline');
  buttons.forEach(function (button) {
    button.addEventListener('click', function (e) {
      var ripple = document.createElement('span');
      var rect = this.getBoundingClientRect();
      var size = Math.max(rect.width, rect.height);
      var x = e.clientX - rect.left - size / 2;
      var y = e.clientY - rect.top - size / 2;
      ripple.style.width = ripple.style.height = size + 'px';
      ripple.style.left = x + 'px';
      ripple.style.top = y + 'px';
      ripple.classList.add('ripple');
      this.appendChild(ripple);
      setTimeout(function () {
        ripple.remove();
      }, 600);
    });
  });

  // Floating elements animation
  var floatingElements = document.querySelectorAll('.floating');
  floatingElements.forEach(function (el, index) {
    el.style.animationDelay = "".concat(index * 0.2, "s");
  });

  // Lazy loading for images
  var images = document.querySelectorAll('img[data-src]');
  var imageObserver = new IntersectionObserver(function (entries) {
    entries.forEach(function (entry) {
      if (entry.isIntersecting) {
        var img = entry.target;
        img.src = img.dataset.src;
        img.removeAttribute('data-src');
        imageObserver.unobserve(img);
      }
    });
  });
  images.forEach(function (img) {
    return imageObserver.observe(img);
  });

  // Form validation (if you add forms later)
  var forms = document.querySelectorAll('form');
  forms.forEach(function (form) {
    form.addEventListener('submit', function (e) {
      e.preventDefault();

      // Add your form submission logic here
      console.log('Form submitted');
    });
  });
});

// Add ripple effect styles dynamically
var style = document.createElement('style');
style.textContent = "\n    .ripple {\n        position: absolute;\n        border-radius: 50%;\n        background: rgba(255, 255, 255, 0.6);\n        transform: scale(0);\n        animation: ripple-animation 0.6s ease-out;\n        pointer-events: none;\n    }\n    \n    @keyframes ripple-animation {\n        to {\n            transform: scale(4);\n            opacity: 0;\n        }\n    }\n    \n    .nav-menu.active {\n        display: flex !important;\n        position: fixed;\n        top: 70px;\n        left: 0;\n        right: 0;\n        background: rgba(255, 255, 255, 0.98);\n        flex-direction: column;\n        padding: 2rem;\n        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);\n        backdrop-filter: blur(10px);\n    }\n\n    \n";
document.head.appendChild(style);

// Logo slider auto-slide
var sliderSection = document.querySelector('.logo-slider-section');
var logos = sliderSection.querySelectorAll('.logo-img');
var dots = sliderSection.querySelectorAll('.slider-dots .dot');
var currentLogo = 0;
var logoCount = logos.length;
var sliderInterval;
function showLogo(index) {
  logos.forEach(function (logo, i) {
    logo.classList.toggle('active', i === index);
  });
  dots.forEach(function (dot, i) {
    dot.classList.toggle('active', i === index);
  });
  currentLogo = index;
}
function nextLogo() {
  var next = (currentLogo + 1) % logoCount;
  showLogo(next);
}
sliderInterval = setInterval(nextLogo, 2300); // Change logo every 2.3 seconds

// Optional: Click dots to select logo
dots.forEach(function (dot, idx) {
  dot.addEventListener('click', function () {
    showLogo(idx);
    clearInterval(sliderInterval); // Stop auto-slide on manual select
    sliderInterval = setInterval(nextLogo, 2300); // Resume after click
  });
});

// Initial show
showLogo(0);

// Intersection Observer for distributor section animations
var fadeEls = document.querySelectorAll('.fade-in-up');
var onScroll = function onScroll() {
  fadeEls.forEach(function (el) {
    var rect = el.getBoundingClientRect();
    if (rect.top < window.innerHeight - 60) {
      el.classList.add('visible');
    }
  });
};
window.addEventListener('scroll', onScroll);
window.addEventListener('load', onScroll);
document.querySelectorAll('.faq-accordion .faq-question').forEach(function (btn) {
  btn.addEventListener('click', function () {
    var parent = this.parentElement;
    if (parent.classList.contains('active')) {
      parent.classList.remove('active');
    } else {
      // Close others
      parent.parentElement.querySelectorAll('.faq-item').forEach(function (i) {
        return i.classList.remove('active');
      });
      parent.classList.add('active');
    }
  });
});
document.addEventListener('DOMContentLoaded', function () {
  var track = document.querySelector('.carousel-track');
  if (!track) return;
  var cards = Array.from(track.children);
  // Duplicate all testimonial cards for seamless loop
  cards.forEach(function (card) {
    var clone = card.cloneNode(true);
    track.appendChild(clone);
  });

  // Calculate total width of one set of cards
  var cardWidth = cards[0].offsetWidth;
  var gap = parseInt(getComputedStyle(track).gap) || 32;
  var totalWidth = (cardWidth + gap) * cards.length;
  var pos = 0;
  function animate() {
    pos -= 1; // px per frame, decrease for slower scroll
    if (Math.abs(pos) >= totalWidth) {
      pos = 0;
    }
    track.style.transform = "translateX(".concat(pos, "px)");
    requestAnimationFrame(animate);
  }
  animate();

  // Optional: recalculate on resize for super accuracy
  window.addEventListener('resize', function () {});
});
},{}],"../node_modules/parcel-bundler/src/builtins/hmr-runtime.js":[function(require,module,exports) {
var global = arguments[3];
var OVERLAY_ID = '__parcel__error__overlay__';
var OldModule = module.bundle.Module;
function Module(moduleName) {
  OldModule.call(this, moduleName);
  this.hot = {
    data: module.bundle.hotData,
    _acceptCallbacks: [],
    _disposeCallbacks: [],
    accept: function (fn) {
      this._acceptCallbacks.push(fn || function () {});
    },
    dispose: function (fn) {
      this._disposeCallbacks.push(fn);
    }
  };
  module.bundle.hotData = null;
}
module.bundle.Module = Module;
var checkedAssets, assetsToAccept;
var parent = module.bundle.parent;
if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {
  var hostname = "" || location.hostname;
  var protocol = location.protocol === 'https:' ? 'wss' : 'ws';
  var ws = new WebSocket(protocol + '://' + hostname + ':' + "61072" + '/');
  ws.onmessage = function (event) {
    checkedAssets = {};
    assetsToAccept = [];
    var data = JSON.parse(event.data);
    if (data.type === 'update') {
      var handled = false;
      data.assets.forEach(function (asset) {
        if (!asset.isNew) {
          var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);
          if (didAccept) {
            handled = true;
          }
        }
      });

      // Enable HMR for CSS by default.
      handled = handled || data.assets.every(function (asset) {
        return asset.type === 'css' && asset.generated.js;
      });
      if (handled) {
        console.clear();
        data.assets.forEach(function (asset) {
          hmrApply(global.parcelRequire, asset);
        });
        assetsToAccept.forEach(function (v) {
          hmrAcceptRun(v[0], v[1]);
        });
      } else if (location.reload) {
        // `location` global exists in a web worker context but lacks `.reload()` function.
        location.reload();
      }
    }
    if (data.type === 'reload') {
      ws.close();
      ws.onclose = function () {
        location.reload();
      };
    }
    if (data.type === 'error-resolved') {
      console.log('[parcel] ✨ Error resolved');
      removeErrorOverlay();
    }
    if (data.type === 'error') {
      console.error('[parcel] 🚨  ' + data.error.message + '\n' + data.error.stack);
      removeErrorOverlay();
      var overlay = createErrorOverlay(data);
      document.body.appendChild(overlay);
    }
  };
}
function removeErrorOverlay() {
  var overlay = document.getElementById(OVERLAY_ID);
  if (overlay) {
    overlay.remove();
  }
}
function createErrorOverlay(data) {
  var overlay = document.createElement('div');
  overlay.id = OVERLAY_ID;

  // html encode message and stack trace
  var message = document.createElement('div');
  var stackTrace = document.createElement('pre');
  message.innerText = data.error.message;
  stackTrace.innerText = data.error.stack;
  overlay.innerHTML = '<div style="background: black; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; opacity: 0.85; font-family: Menlo, Consolas, monospace; z-index: 9999;">' + '<span style="background: red; padding: 2px 4px; border-radius: 2px;">ERROR</span>' + '<span style="top: 2px; margin-left: 5px; position: relative;">🚨</span>' + '<div style="font-size: 18px; font-weight: bold; margin-top: 20px;">' + message.innerHTML + '</div>' + '<pre>' + stackTrace.innerHTML + '</pre>' + '</div>';
  return overlay;
}
function getParents(bundle, id) {
  var modules = bundle.modules;
  if (!modules) {
    return [];
  }
  var parents = [];
  var k, d, dep;
  for (k in modules) {
    for (d in modules[k][1]) {
      dep = modules[k][1][d];
      if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {
        parents.push(k);
      }
    }
  }
  if (bundle.parent) {
    parents = parents.concat(getParents(bundle.parent, id));
  }
  return parents;
}
function hmrApply(bundle, asset) {
  var modules = bundle.modules;
  if (!modules) {
    return;
  }
  if (modules[asset.id] || !bundle.parent) {
    var fn = new Function('require', 'module', 'exports', asset.generated.js);
    asset.isNew = !modules[asset.id];
    modules[asset.id] = [fn, asset.deps];
  } else if (bundle.parent) {
    hmrApply(bundle.parent, asset);
  }
}
function hmrAcceptCheck(bundle, id) {
  var modules = bundle.modules;
  if (!modules) {
    return;
  }
  if (!modules[id] && bundle.parent) {
    return hmrAcceptCheck(bundle.parent, id);
  }
  if (checkedAssets[id]) {
    return;
  }
  checkedAssets[id] = true;
  var cached = bundle.cache[id];
  assetsToAccept.push([bundle, id]);
  if (cached && cached.hot && cached.hot._acceptCallbacks.length) {
    return true;
  }
  return getParents(global.parcelRequire, id).some(function (id) {
    return hmrAcceptCheck(global.parcelRequire, id);
  });
}
function hmrAcceptRun(bundle, id) {
  var cached = bundle.cache[id];
  bundle.hotData = {};
  if (cached) {
    cached.hot.data = bundle.hotData;
  }
  if (cached && cached.hot && cached.hot._disposeCallbacks.length) {
    cached.hot._disposeCallbacks.forEach(function (cb) {
      cb(bundle.hotData);
    });
  }
  delete bundle.cache[id];
  bundle(id);
  cached = bundle.cache[id];
  if (cached && cached.hot && cached.hot._acceptCallbacks.length) {
    cached.hot._acceptCallbacks.forEach(function (cb) {
      cb();
    });
    return true;
  }
}
},{}]},{},["../node_modules/parcel-bundler/src/builtins/hmr-runtime.js","js/main.js"], null)
//# sourceMappingURL=/main.fb6bbcaf.js.map