Sentrix Operations Group LLC
Home

Terms of Service

Last updated: January 1, 2025

These Terms of Service govern your use of sentrixoperations.com and any service inquiries submitted through the website. By using this site, you agree to these terms.

Website Use

This website is operated by Sentrix Operations Group LLC for informational and lead generation purposes. The content on this site describes our commercial cleaning services, service areas, and company information. All content is provided for general information only and may change without notice.

Service Agreements

Submitting a quote request through this website does not constitute a service agreement. All commercial cleaning services are governed by a separate written service agreement executed between Sentrix Operations Group LLC and the client. No service will begin without a signed agreement.

Accuracy of Information

We make reasonable efforts to ensure the accuracy of information on this website. However, we do not warrant that all information is complete, accurate, or current. Pricing, service availability, and service area coverage may change. Contact us directly to confirm current information.

Intellectual Property

All content on this website, including text, graphics, logos, and design, is the property of Sentrix Operations Group LLC and may not be reproduced, distributed, or used without written permission.

Limitation of Liability

Sentrix Operations Group LLC is not liable for any damages arising from your use of this website. The website is provided “as is” without warranty of any kind.

Governing Law

These Terms are governed by the laws of the State of Nevada. Any disputes shall be resolved in Clark County, Nevada.

Contact

For questions about these Terms: (702) 850-1575 • (702) 850-1575 • Las Vegas, NV

© 2025 Sentrix Operations Group LLC. Las Vegas, NV

/* ══════════════════════════════════════════════════════════ SENTRIX OPERATIONS GROUP LLC — MAIN JAVASCRIPT sentrixoperations.com ══════════════════════════════════════════════════════════ */ 'use strict'; // ── Header scroll behavior ── (function() { const header = document.getElementById('site-header'); if (!header) return; let lastScroll = 0; let ticking = false; function updateHeader() { const scrollY = window.scrollY; if (scrollY > 60) { header.classList.add('scrolled'); } else { header.classList.remove('scrolled'); } lastScroll = scrollY; ticking = false; } window.addEventListener('scroll', function() { if (!ticking) { requestAnimationFrame(updateHeader); ticking = true; } }, { passive: true }); })(); // ── Mobile nav ── (function() { const hamburger = document.getElementById('hamburger'); const overlay = document.getElementById('mobile-nav-overlay'); const closeBtn = document.getElementById('mobile-nav-close'); if (!hamburger || !overlay) return; function openNav() { hamburger.classList.add('open'); overlay.classList.add('open'); overlay.setAttribute('aria-hidden', 'false'); hamburger.setAttribute('aria-expanded', 'true'); document.body.style.overflow = 'hidden'; } function closeNav() { hamburger.classList.remove('open'); overlay.classList.remove('open'); overlay.setAttribute('aria-hidden', 'true'); hamburger.setAttribute('aria-expanded', 'false'); document.body.style.overflow = ''; } hamburger.addEventListener('click', function() { if (overlay.classList.contains('open')) { closeNav(); } else { openNav(); } }); if (closeBtn) closeBtn.addEventListener('click', closeNav); // Close on overlay link click overlay.querySelectorAll('a').forEach(function(link) { link.addEventListener('click', closeNav); }); // Close on Escape document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && overlay.classList.contains('open')) { closeNav(); } }); })(); // ── Scroll-triggered animations ── (function() { const elements = document.querySelectorAll('[data-animate]'); if (!elements.length) return; // Apply delay from data-delay attribute elements.forEach(function(el) { const delay = el.getAttribute('data-delay'); if (delay) { el.style.transitionDelay = delay + 'ms'; } }); if ('IntersectionObserver' in window) { const observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { entry.target.classList.add('animated'); observer.unobserve(entry.target); } }); }, { threshold: 0.12, rootMargin: '0px 0px -40px 0px' }); elements.forEach(function(el) { observer.observe(el); }); } else { // Fallback: show all elements.forEach(function(el) { el.classList.add('animated'); }); } })(); // ── Active nav link highlighting ── (function() { const currentPath = window.location.pathname; const navLinks = document.querySelectorAll('.main-nav a'); navLinks.forEach(function(link) { const href = link.getAttribute('href'); if (href && currentPath !== '/' && currentPath.includes(href.replace('.html', ''))) { link.classList.add('active'); } if (currentPath === '/' && href === '/') { link.classList.add('active'); } }); })(); // ── Smooth scroll for anchor links ── (function() { document.querySelectorAll('a[href^="#"]').forEach(function(anchor) { anchor.addEventListener('click', function(e) { const targetId = this.getAttribute('href').slice(1); const target = document.getElementById(targetId); if (target) { e.preventDefault(); const headerH = document.getElementById('site-header')?.offsetHeight || 80; const top = target.getBoundingClientRect().top + window.scrollY - headerH - 20; window.scrollTo({ top: top, behavior: 'smooth' }); } }); }); })(); // ── Phone click tracking (gtag fallback) ── (function() { if (typeof gtag === 'undefined') { window.gtag = function() {}; } })(); // ── Lazy load images ── (function() { if ('loading' in HTMLImageElement.prototype) return; // Native support const lazyImages = document.querySelectorAll('img[loading="lazy"]'); if (!lazyImages.length) return; const observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { const img = entry.target; if (img.dataset.src) img.src = img.dataset.src; observer.unobserve(img); } }); }); lazyImages.forEach(function(img) { observer.observe(img); }); })(); // ── Counter animation for stats ── (function() { const stats = document.querySelectorAll('.stat-num'); if (!stats.length) return; function animateCounter(el) { const text = el.textContent; const match = text.match(/(\d+)/); if (!match) return; const target = parseInt(match[1]); const suffix = text.replace(match[0], ''); const prefix = text.substring(0, text.indexOf(match[0])); const duration = 1500; const start = performance.now(); function update(now) { const elapsed = now - start; const progress = Math.min(elapsed / duration, 1); const eased = 1 - Math.pow(1 - progress, 3); // ease-out cubic const current = Math.round(eased * target); el.textContent = prefix + current + suffix; if (progress < 1) requestAnimationFrame(update); } requestAnimationFrame(update); } if ('IntersectionObserver' in window) { const observer = new IntersectionObserver(function(entries) { entries.forEach(function(entry) { if (entry.isIntersecting) { animateCounter(entry.target); observer.u