feat: pivot complet - agence web artisans BTP Nord + Sanity CMS

Transformation complète du site HookLab de formation TikTok Shop
vers une landing page haute conversion pour agence web locale ciblant
les artisans du bâtiment dans le Nord (Douai, Orchies, Valenciennes).

- Nouveau design system : bleu nuit/orange sur fond clair (mobile-first)
- Hero avec promesse artisan + CTA orange "Réserver mon Audit"
- Section "Le Système" (3 étapes : Trouvé, Choisi, Contacté)
- Portfolio connecté à Sanity.io (fallback data intégré)
- Section "Qui suis-je" avec carte OpenStreetMap interactive
- FAQ orientée artisans avec JSON-LD pour Google
- Formulaire contact audit gratuit
- SEO local : 12 keywords artisans, JSON-LD LocalBusiness
- Sanity.io schemas (portfolio, siteSettings) + client conditionnel
- Accessibilité : skip-to-content, focus-visible, aria-labels

https://claude.ai/code/session_01H2aRGDaKgarPvhay2HxN6Y
This commit is contained in:
Claude
2026-02-15 12:50:52 +00:00
parent 1926d51213
commit bca3745603
26 changed files with 1364 additions and 571 deletions

View File

@@ -2,118 +2,109 @@
@import "tailwindcss";
@theme inline {
--color-primary: #6D5EF6;
--color-primary-hover: #5B4FDB;
--color-primary-50: #F3F1FF;
--color-primary-100: #E9E5FF;
--color-primary-light: #9D8FF9;
--color-navy: #1B2A4A;
--color-navy-light: #2A3D66;
--color-navy-dark: #111D36;
--color-dark: #0B0F19;
--color-dark-light: #1A1F2E;
--color-dark-lighter: #252A3A;
--color-dark-border: #2A2F3F;
--color-orange: #E8772E;
--color-orange-hover: #D06522;
--color-orange-light: #F5A623;
--color-bg: #F7F8FA;
--color-bg-white: #FFFFFF;
--color-bg-card: #FFFFFF;
--color-bg-muted: #F0F2F5;
--color-text: #1A1A2E;
--color-text-light: #6B7280;
--color-text-muted: #9CA3AF;
--color-border: #E5E7EB;
--color-border-light: #F3F4F6;
--color-success: #10B981;
--color-warning: #F59E0B;
--color-error: #EF4444;
--font-sans: "Inter", sans-serif;
--radius-card: 20px;
--radius-button: 12px;
}
body {
background: var(--color-dark);
color: #ffffff;
background: var(--color-bg);
color: var(--color-text);
font-family: var(--font-sans);
}
/* Smooth scroll for anchor links */
html {
scroll-behavior: smooth;
}
/* Scrollbar personnalisee */
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
background: var(--color-dark);
}
::-webkit-scrollbar-thumb {
background: var(--color-dark-lighter);
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--color-primary);
}
/* Animation hover cards */
/* Card hover */
.card-hover {
transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card-hover:hover {
transform: translateY(-4px);
box-shadow: 0 20px 40px rgba(109, 94, 246, 0.15);
box-shadow: 0 12px 32px rgba(27, 42, 74, 0.12);
}
/* Gradient text */
.gradient-text {
background: linear-gradient(135deg, #6D5EF6, #9D8FF9);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
/* Gradient background */
.gradient-bg {
background: linear-gradient(135deg, #6D5EF6, #9D8FF9);
}
/* Glass effect */
.glass {
background: rgba(26, 31, 46, 0.8);
backdrop-filter: blur(20px);
border: 1px solid rgba(109, 94, 246, 0.1);
}
/* Pulse animation pour CTA */
/* Orange CTA glow */
@keyframes pulse-glow {
0%, 100% {
box-shadow: 0 0 20px rgba(109, 94, 246, 0.3);
box-shadow: 0 0 16px rgba(232, 119, 46, 0.3);
}
50% {
box-shadow: 0 0 40px rgba(109, 94, 246, 0.6);
box-shadow: 0 0 32px rgba(232, 119, 46, 0.5);
}
}
.pulse-glow {
animation: pulse-glow 2s ease-in-out infinite;
animation: pulse-glow 2.5s ease-in-out infinite;
}
/* Scale in animation for popups */
@keyframes scale-in {
0% {
transform: scale(0.9);
opacity: 0;
}
100% {
transform: scale(1);
opacity: 1;
}
}
.animate-scale-in {
animation: scale-in 0.3s ease-out;
}
/* Selection color */
/* Selection */
::selection {
background: rgba(109, 94, 246, 0.3);
color: #ffffff;
background: rgba(27, 42, 74, 0.15);
color: var(--color-text);
}
/* Skip to content */
.skip-to-content {
position: absolute;
left: -9999px;
z-index: 999;
padding: 0.75rem 1.5rem;
background: var(--color-navy);
color: #ffffff;
font-weight: 600;
border-radius: 0 0 8px 0;
text-decoration: none;
}
.skip-to-content:focus {
left: 0;
top: 0;
}
/* Focus visible */
*:focus-visible {
outline: 2px solid var(--color-orange);
outline-offset: 2px;
}
/* Scrollbar */
::-webkit-scrollbar {
width: 6px;
}
::-webkit-scrollbar-track {
background: var(--color-bg);
}
::-webkit-scrollbar-thumb {
background: var(--color-border);
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--color-navy);
}