<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<meta name="description" content="Groupe Novitec - Services TI gérés (MSP) et cybersécurité Novigarde au Québec. Support technique 24/7, infrastructure cloud, Microsoft 365 et protection ransomware pour PME à Mascouche, Terrebonne et Rive-Nord ☎ 514-360-1757" />
<meta name="keywords" content="MSP Québec, services TI Mascouche, cybersécurité Terrebonne, support informatique Rive-Nord, Novigarde, cloud Québec, Microsoft 365, protection ransomware" />
<title>GROUPE NOVITEC | MSP & Cybersécurité Québec</title>
<!-- Performance: Preconnect to external domains -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://www.googletagmanager.com">
<link rel="dns-prefetch" href="https://images.unsplash.com">
<!-- Google Analytics (GA4) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-CN84L1CQNS"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-CN84L1CQNS');
</script>
<!-- Google Ads Conversion Tracking -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-17893576436"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-17893576436');
</script>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Inter', 'sans-serif'],
},
animation: {
'slow-zoom': 'zoom 20s infinite alternate',
'fade-in-up': 'fadeInUp 0.8s ease-out forwards',
'pulse-slow': 'pulse 4s cubic-bezier(0.4, 0, 0.6, 1) infinite',
'spin-slow': 'spin 10s linear infinite',
'bounce-slow': 'bounce 3s infinite',
},
keyframes: {
zoom: {
'0%': { transform: 'scale(1)' },
'100%': { transform: 'scale(1.1)' },
},
fadeInUp: {
'0%': { opacity: '0', transform: 'translateY(20px)' },
'100%': { opacity: '1', transform: 'translateY(0)' },
}
}
}
}
}
</script>
<style type="text/tailwindcss">
@layer utilities {
.perspective-1000 {
perspective: 1000px;
}
.transform-style-3d {
transform-style: preserve-3d;
}
.backface-hidden {
backface-visibility: hidden;
}
.rotate-y-0 {
transform: rotateY(0deg);
}
.rotate-y-12 {
transform: rotateY(12deg);
}
.rotate-y-180 {
transform: rotateY(180deg);
}
}
/* Custom Scrollbar */
::-webkit-scrollbar {
width: 10px;
}
::-webkit-scrollbar-track {
background: #f1f5f9;
}
::-webkit-scrollbar-thumb {
background: #cbd5e1;
border-radius: 5px;
}
::-webkit-scrollbar-thumb:hover {
background: #94a3b8;
}
</style>
<script type="importmap">
{
"imports": {
"lucide-react": "https://aistudiocdn.com/lucide-react@^0.556.0",
"react/": "https://aistudiocdn.com/react@^19.2.1/",
"react": "https://aistudiocdn.com/react@^19.2.1",
"react-router-dom": "https://aistudiocdn.com/react-router-dom@^7.10.1",
"react-dom/": "https://aistudiocdn.com/react-dom@^19.2.1/",
"vite": "https://esm.sh/vite@^7.3.0",
"@vitejs/plugin-react": "https://esm.sh/@vitejs/plugin-react@^5.1.2",
"@google/genai": "https://esm.sh/@google/genai@^1.34.0"
}
}
</script>
<script type="module" crossorigin src="/assets/index-BkWv-6Za.js"></script>
</head>
<body class="bg-slate-50 text-slate-900 antialiased selection:bg-blue-200 selection:text-blue-900">
<div id="root"></div>
</body>
</html>