<!doctype html>
<html lang="fr">
<head>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-NF9RFZV3');</script>
<!-- End Google Tag Manager -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Je conçois et pilote vos campagnes Google Ads pour placer votre entreprise face aux personnes qui recherchent déjà vos services, générer davantage d’appels et de demandes de devis qualifiées, puis développer votre chiffre d’affaires.">
<meta name="robots" content="index, follow, max-image-preview:large">
<link rel="canonical" href="https://www.adamspilmann.com/services/consultant-google-ads/">
<meta property="og:url" content="https://www.adamspilmann.com/services/consultant-google-ads/">
<meta property="og:locale" content="fr_FR">
<meta property="og:type" content="website">
<meta property="og:title" content="Consultant Google Ads pour entreprises de services | Adam Spilmann">
<meta property="og:description" content="Je conçois et pilote vos campagnes Google Ads pour générer davantage d’appels et de demandes de devis qualifiées.">
<meta name="twitter:card" content="summary_large_image">
<title>Consultant Google Ads pour entreprises de services | Adam Spilmann</title>
<link rel="icon" href="../../favicon.svg" type="image/svg+xml">
<script>
// Polyfill Shadow DOM déclaratif : ne fait rien sur les navigateurs qui le
// supportent nativement (Chrome/Edge/Safari/Firefox récents), et attache
// les <template shadowrootmode> à la main sur les navigateurs plus anciens.
(function attachShadowRoots(root) {
root.querySelectorAll("template[shadowrootmode]").forEach((template) => {
const mode = template.getAttribute("shadowrootmode");
const shadowRoot = template.parentNode.attachShadow({ mode });
shadowRoot.appendChild(template.content);
template.remove();
attachShadowRoots(shadowRoot);
});
})(document);
</script>
<style>
@font-face {
font-family: "Overused Grotesk Medium";
src: url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2");
font-weight: 500;
font-display: swap;
}
@font-face {
font-family: "Inter";
src: url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2");
font-weight: 400;
font-display: swap;
}
@font-face {
font-family: "Inter";
src: url("../../sections-validees/_ressources/communs/inter-medium.woff2") format("woff2");
font-weight: 500;
font-display: swap;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: #161512; }
.qualif-overlay {
position: fixed;
inset: 0;
z-index: 200;
display: flex;
align-items: center;
justify-content: center;
padding: 20px;
background: rgba(13, 12, 10, 0.7);
backdrop-filter: blur(6px);
-webkit-backdrop-filter: blur(6px);
opacity: 0;
visibility: hidden;
pointer-events: none;
transition: opacity 160ms ease, visibility 160ms ease;
}
.qualif-overlay.is-open { opacity: 1; visibility: visible; pointer-events: auto; }
.qualif-dialog {
position: relative;
width: min(560px, 100%);
max-height: min(680px, 90vh);
overflow-y: auto;
padding: 32px clamp(20px, 4vw, 40px) 36px;
border-radius: 12px;
background: #f7f7f7;
color: rgba(0, 0, 0, 0.82);
font-family: "Inter", sans-serif;
box-shadow: 0 30px 80px rgba(0, 0, 0, 0.4);
}
.qualif-header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
margin-bottom: 20px;
}
.qualif-brand strong { display: block; font-family: "Overused Grotesk Medium", sans-serif; font-size: 15px; }
.qualif-brand span { display: block; font-size: 12px; color: rgba(0, 0, 0, 0.5); margin-top: 2px; }
.qualif-close {
flex-shrink: 0;
width: 32px;
height: 32px;
border: 0;
border-radius: 50%;
background: rgba(0, 0, 0, 0.06);
font-size: 18px;
line-height: 1;
cursor: pointer;
color: rgba(0, 0, 0, 0.6);
}
.qualif-close:hover { background: rgba(0, 0, 0, 0.12); }
.qualif-progress { height: 3px; border-radius: 999px; background: rgba(0, 0, 0, 0.08); margin-bottom: 28px; overflow: hidden; }
.qualif-progress-bar { height: 100%; width: 0%; background: #161512; border-radius: 999px; transition: width 250ms ease; }
.qualif-panel { display: none; }
.qualif-panel.is-active { display: block; }
.qualif-question { font-family: "Overused Grotesk Medium", sans-serif; font-size: clamp(21px, 3vw, 26px); line-height: 1.2; letter-spacing: -0.02em; margin: 0 0 14px; }
.qualif-subtitle { margin: 0 0 20px; display: grid; gap: 12px; }
.qualif-subtitle span { display: block; font-size: 14px; line-height: 1.55; color: rgba(0, 0, 0, 0.66); }
.qualif-answers { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; border: 0; width: 100%; }
.qualif-answer {
display: flex;
align-items: center;
gap: 12px;
width: 100%;
padding: 14px 16px;
border: 1px solid rgba(0, 0, 0, 0.14);
border-radius: 8px;
background: #fff;
color: inherit;
font-family: "Inter", sans-serif;
font-size: 14.5px;
line-height: 1.4;
text-align: left;
cursor: pointer;
transition: border-color 140ms ease, background 140ms ease;
}
.qualif-answer:hover, .qualif-answer:focus-visible { border-color: rgba(0, 0, 0, 0.35); background: rgba(0, 0, 0, 0.02); }
.qualif-answer .dot { flex-shrink: 0; width: 9px; height: 9px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, 0.3); }
.qualif-disclaimer { margin: 16px 0 0; font-size: 11.5px; line-height: 1.5; color: rgba(0, 0, 0, 0.45); }
.qualif-result { text-align: center; padding-top: 8px; }
.qualif-result-icon { width: 52px; height: 52px; margin: 0 auto 16px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; }
.qualif-result.ok .qualif-result-icon { background: rgba(31, 122, 82, 0.12); color: #1f7a52; }
.qualif-result.no .qualif-result-icon { background: rgba(179, 38, 30, 0.1); color: #b3261e; }
.qualif-result-label { margin: 0 0 10px; font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: rgba(0, 0, 0, 0.5); }
.qualif-result-title { font-family: "Overused Grotesk Medium", sans-serif; font-size: 22px; line-height: 1.25; letter-spacing: -0.02em; margin: 0 0 14px; }
.qualif-result-copy { margin: 0 0 24px; font-size: 14.5px; line-height: 1.55; color: rgba(0, 0, 0, 0.66); }
.qualif-whatsapp {
display: inline-flex;
align-items: center;
gap: 10px;
padding: 14px 26px;
border-radius: 999px;
background: #25d366;
color: #fff;
font-size: 14.5px;
font-weight: 500;
text-decoration: none;
}
.qualif-whatsapp:hover { background: #20bd5a; }
.qualif-whatsapp svg { width: 18px; height: 18px; }
.qualif-desktop-note { margin: 18px 0 0; font-size: 12px; color: rgba(0, 0, 0, 0.5); }
.qualif-desktop-number { margin: 2px 0 0; font-size: 14px; font-weight: 500; }
.qualif-instagram {
display: inline-flex;
padding: 14px 26px;
border-radius: 999px;
border: 1px solid rgba(0, 0, 0, 0.2);
color: rgba(0, 0, 0, 0.8);
text-decoration: none;
font-size: 14.5px;
}
.qualif-instagram:hover { border-color: rgba(0, 0, 0, 0.4); }
@media (max-width: 520px) {
.qualif-dialog { padding: 26px 18px 28px; border-radius: 10px; }
}
.sticky-contact {
position: fixed;
z-index: 150;
right: clamp(20px, 3vw, 40px);
bottom: clamp(20px, 3vw, 32px);
opacity: 0;
visibility: hidden;
transform: translateY(12px);
transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease;
}
.sticky-contact.is-visible {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
.sticky-contact-btn {
display: inline-flex;
align-items: center;
gap: 12px;
padding: 16px 26px;
border: 1px solid rgba(247, 247, 247, 0.28);
border-radius: 999px;
background: rgba(22, 21, 18, 0.92);
backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);
color: #f7f7f7;
font-family: "Inter", sans-serif;
font-size: 14.5px;
font-weight: 500;
letter-spacing: -0.2px;
white-space: nowrap;
cursor: pointer;
box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}
.sticky-contact-dot {
position: relative;
width: 9px;
height: 9px;
flex: 0 0 9px;
border-radius: 50%;
background: #25d366;
}
.sticky-contact-dot::after {
content: "";
position: absolute;
inset: -5px;
border: 1px solid #25d366;
border-radius: 50%;
animation: sticky-contact-pulse 1.8s ease-out infinite;
}
@keyframes sticky-contact-pulse {
0% { transform: scale(0.6); opacity: 0.8; }
100% { transform: scale(2); opacity: 0; }
}
.sticky-contact-btn:hover,
.sticky-contact-btn:focus-visible {
background: #f7f7f7;
border-color: #f7f7f7;
color: rgba(0, 0, 0, 0.88);
}
@media (max-width: 809px) {
.sticky-contact {
left: 16px;
right: 16px;
bottom: calc(16px + env(safe-area-inset-bottom));
transform: translateY(16px);
}
.sticky-contact-btn {
width: 100%;
justify-content: center;
padding: 18px 22px;
border-radius: 8px;
background: rgba(22, 21, 18, 0.94);
border-color: rgba(247, 247, 247, 0.28);
color: #f7f7f7;
font-size: 15.5px;
box-shadow: 0 20px 45px rgba(0, 0, 0, 0.45);
}
}
</style>
</head>
<body>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NF9RFZV3"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<div id="hero-frame">
<template shadowrootmode="open">
<style>
@font-face{font-family:"Overused Grotesk Medium";src:url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2");font-weight:400;font-display:swap}
*{box-sizing:border-box;-webkit-font-smoothing:antialiased}
:host{display:block;background:#f7f7f7;color:#2F2F2E;font-family:"Inter",sans-serif;font-synthesis:none}
h1,h2,h3{margin:0;font-family:"Overused Grotesk Medium",sans-serif;font-weight:500}
p{margin:0}.inner{max-width:1280px;margin:auto}.eyebrow{font-family:"Inter","Inter Placeholder",sans-serif;font-weight:400;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;margin:0 0 24px;border-radius:999px;background:rgba(0,0,0,.05);font-family:"Inter",sans-serif;font-size:12px;font-weight:500;line-height:12px;letter-spacing:1.2px;text-transform:uppercase}.eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.title{font-family:"Overused Grotesk Medium",sans-serif;font-weight:500;font-size:64px;line-height:1.04;letter-spacing:-.04em;text-wrap:balance;color:#2F2F2E}.copy{font-size:16px;line-height:24px;letter-spacing:-.1px;color:#2F2F2E}
@media(max-width:809px){.title{font-size:40px;line-height:1.06}}
:host{background:#111820;color:#fff}.hero{position:relative;min-height:760px;padding:28px clamp(20px,5vw,80px) 90px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;isolation:isolate;background:#111820}.hero-photo{position:absolute;inset:0;z-index:-2;width:100%;height:100%;display:block;object-fit:cover;object-position:64% center}.hero-shade{position:absolute;inset:0;z-index:-1;pointer-events:none;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);background:linear-gradient(304deg,rgba(0,0,0,0) 59%,rgba(0,0,0,.2) 100%);-webkit-mask:linear-gradient(237deg,rgba(0,0,0,0) 43.4435%,rgba(0,0,0,.95) 63.0631%,#000 100%);mask:linear-gradient(237deg,rgba(0,0,0,0) 43.4435%,rgba(0,0,0,.95) 63.0631%,#000 100%)}.nav{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;font-size:14px}.brand{color:#fff;text-decoration:none;font-family:"Overused Grotesk Medium"}.links{display:flex;gap:28px}.links a{color:rgba(255,255,255,.7);text-decoration:none}.content{position:relative;z-index:2;max-width:1120px;margin-top:150px}.hero .eyebrow{font-family:"Inter","Inter Placeholder",sans-serif;font-weight:500;background:rgba(255,255,255,.08)}.hero-title{max-width:1080px;font-size:clamp(40px,4.6vw,64px);line-height:1.02;letter-spacing:-.045em;color:#fff}.hero-title strong{color:#fff;font-weight:500}.lead{max-width:680px;margin-top:30px;font-size:16px;line-height:24px;letter-spacing:-.1px;color:#fff}
@media(max-width:809px){.hero{min-height:0;display:block;padding:0;background:#111820}.nav{position:absolute;top:0;left:0;right:0;padding:24px 20px}.hero-photo{position:relative;inset:auto;height:66vw;min-height:280px;object-position:66% center}.hero-shade{inset:0 0 auto 0;height:66vw;min-height:280px;backdrop-filter:none;-webkit-backdrop-filter:none;background:linear-gradient(180deg,rgba(17,24,32,.55) 0%,rgba(17,24,32,0) 38%);-webkit-mask:none;mask:none}.links{display:none}.content{margin-top:0;padding:56px 20px 64px;background:#111820}.hero-title{font-size:40px;line-height:1.05}}
.hero-title{margin:0;font-family:"Overused Grotesk Medium",sans-serif;font-weight:500}
@media(max-width:809px){.content{width:100%;min-width:0}.hero-title,.lead{max-width:100%;text-wrap:wrap;overflow-wrap:normal}}
</style>
<header class="hero">
<img class="hero-photo" src="../../sections-validees/_ressources/section-01/portrait-adam-hero-hd.webp" alt="Adam Spilmann, consultant Google Ads" width="1672" height="941" fetchpriority="high">
<div class="hero-shade" aria-hidden="true"></div>
<nav class="nav"><a class="brand" href="../../homepage/">Adam Spilmann</a><div class="links"><a href="#results-frame">Résultats clients</a><a href="#about-frame">À propos</a><a href="#faq-frame">FAQ</a></div></nav>
<div class="content"><h1 class="eyebrow">Consultant Google Ads et SEA</h1><p class="hero-title">Consultant <strong>Google Ads</strong> pour entreprises de services</p><p class="lead">Je conçois et je pilote tes campagnes Google Ads pour te mettre face à des personnes qui recherchent activement tes services et qui sont déjà décidées à passer à l’action. L’objectif est simple : générer des appels et des demandes de devis qualifiées, pas seulement acheter de la visibilité.</p></div>
</header>
</template>
</div>
<div id="intro-frame">
<template shadowrootmode="open">
<style>
@font-face{font-family:"Overused Grotesk Medium";src:url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2");font-weight:400;font-display:swap}
*{box-sizing:border-box;-webkit-font-smoothing:antialiased}
:host{display:block;background:#f7f7f7;color:#2F2F2E;font-family:"Inter",sans-serif;font-synthesis:none}
h1,h2,h3{margin:0;font-family:"Overused Grotesk Medium",sans-serif;font-weight:500}
p{margin:0}.inner{max-width:1280px;margin:auto}.eyebrow{font-family:"Inter","Inter Placeholder",sans-serif;font-weight:400;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;margin:0 0 24px;border-radius:999px;background:rgba(0,0,0,.05);font-family:"Inter",sans-serif;font-size:12px;font-weight:500;line-height:12px;letter-spacing:1.2px;text-transform:uppercase}.eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.title{font-family:"Overused Grotesk Medium",sans-serif;font-weight:500;font-size:64px;line-height:1.04;letter-spacing:-.04em;text-wrap:balance;color:#2F2F2E}.copy{font-size:16px;line-height:24px;letter-spacing:-.1px;color:#2F2F2E}
@media(max-width:809px){.title{font-size:40px;line-height:1.06}}
.section{padding:120px clamp(28px,5.55vw,80px)}.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);gap:80px;align-items:center}.title{max-width:720px}.texts{max-width:620px;margin-top:30px}.texts p+p{margin-top:18px}.media{aspect-ratio:4/3;overflow:hidden;border-radius:4px;background:#111820}.media img{display:block;width:100%;height:100%;object-fit:cover}@media(max-width:809px){.section{padding:72px 20px}.layout{grid-template-columns:1fr;gap:42px}.media{order:-1}}</style>
<section class="section"><div class="inner layout"><div><h2 class="eyebrow">Google Ads, c’est quoi ?</h2><p class="title">Être premier sur Google quand tes futurs clients cherchent ton service</p><div class="texts copy"><p>Google Ads, autrefois appelé Google AdWords, permet à ton entreprise d’apparaître au moment précis où une personne recherche ce que tu proposes. Pour un artisan, une entreprise locale ou un prestataire B2B, cette intention de recherche peut devenir un appel ou une demande de devis.</p><p>Beaucoup d’entreprises se plaignent de manquer de clients sans investir dans leur visibilité sur Google. Mais si tu n’apparais pas lorsqu’un prospect cherche ton service, comment veux-tu qu’il te trouve ? J’ai vu des sociétés partir de zéro et atteindre 25 000 à 30 000 euros de bénéfices en quelques mois parce qu’elles avaient compris qu’il fallait investir pour aller chercher leur marché.</p></div></div><div class="media"><img src="../../homepage/assets/service-google-ads.webp" alt="Gestion de campagnes Google Ads et Google AdWords pour une entreprise de services"></div></div></section>
</template>
</div>
<div id="plan-frame">
<template shadowrootmode="open">
<style>
@font-face{font-family:"Overused Grotesk Medium";src:url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2");font-weight:400;font-display:swap}
*{box-sizing:border-box;-webkit-font-smoothing:antialiased}
:host{display:block;background:#f7f7f7;color:#2F2F2E;font-family:"Inter",sans-serif;font-synthesis:none}
h1,h2,h3{margin:0;font-family:"Overused Grotesk Medium",sans-serif;font-weight:500}
p{margin:0}.inner{max-width:1280px;margin:auto}.eyebrow{font-family:"Inter","Inter Placeholder",sans-serif;font-weight:400;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;margin:0 0 24px;border-radius:999px;background:rgba(0,0,0,.05);font-family:"Inter",sans-serif;font-size:12px;font-weight:500;line-height:12px;letter-spacing:1.2px;text-transform:uppercase}.eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.title{font-family:"Overused Grotesk Medium",sans-serif;font-weight:500;font-size:64px;line-height:1.04;letter-spacing:-.04em;text-wrap:balance;color:#2F2F2E}.copy{font-size:16px;line-height:24px;letter-spacing:-.1px;color:#2F2F2E}
@media(max-width:809px){.title{font-size:40px;line-height:1.06}}
.section{padding:120px clamp(28px,5.55vw,80px);background:#e9e9e5}.layout{display:grid;grid-template-columns:minmax(380px,.86fr) minmax(0,1.14fr);gap:80px;align-items:center}.media{aspect-ratio:4/5;overflow:hidden;border-radius:4px}.media img{display:block;width:100%;height:100%;object-fit:cover}.list{margin:42px 0 0;padding:0;list-style:none;border-top:1px solid rgba(47,47,46,.18)}.list li{display:grid;grid-template-columns:32px 1fr;gap:18px;padding:23px 0;border-bottom:1px solid rgba(47,47,46,.18);font-size:16px;line-height:24px;color:#2F2F2E}.arrow{font-size:20px}.conclusion{margin-top:30px;font-family:"Overused Grotesk Medium";font-size:28px;line-height:1.2;letter-spacing:-.02em;color:#2F2F2E}@media(max-width:809px){.section{padding:72px 20px}.layout{grid-template-columns:1fr;gap:42px}.media{aspect-ratio:4/3}}</style>
<section class="section"><div class="inner layout"><div class="media"><img src="../../sections-validees/_ressources/section-01/portrait-adam-hero.webp" alt="Adam Spilmann, consultant Google Ads et SEA"></div><div><h2 class="eyebrow">Pourquoi se faire accompagner sur Google Ads ?</h2><p class="title">Les stratégies SEA de 2023 ne sont plus celles qui fonctionnent en 2026</p><ul class="list"><li><span class="arrow">→</span><span>Les coûts par clic augmentent d’année en année. Reprendre une ancienne méthode sans la remettre en question finit souvent par coûter très cher.</span></li><li><span class="arrow">→</span><span>L’intelligence artificielle transforme les enchères, les campagnes et la manière dont Google utilise les données. Il faut comprendre ces évolutions au lieu de les subir.</span></li><li><span class="arrow">→</span><span>Deux comptes du même secteur peuvent réagir différemment selon la zone, la concurrence, le budget et la stratégie commerciale de l’entreprise.</span></li></ul><p class="conclusion">Pour obtenir des campagnes Google Ads performantes, il faut savoir s’adapter, rester exigeant et accepter de remettre la stratégie en question lorsque les chiffres le demandent.</p></div></div></section>
</template>
</div>
<div id="intro2-frame">
<template shadowrootmode="open">
<style>
@font-face{font-family:"Overused Grotesk Medium";src:url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2");font-weight:400;font-display:swap}
*{box-sizing:border-box;-webkit-font-smoothing:antialiased}
:host{display:block;background:#f7f7f7;color:#2F2F2E;font-family:"Inter",sans-serif;font-synthesis:none}
h1,h2,h3{margin:0;font-family:"Overused Grotesk Medium",sans-serif;font-weight:500}
p{margin:0}.inner{max-width:1280px;margin:auto}.eyebrow{font-family:"Inter","Inter Placeholder",sans-serif;font-weight:400;display:inline-flex;align-items:center;gap:8px;padding:8px 12px;margin:0 0 24px;border-radius:999px;background:rgba(0,0,0,.05);font-family:"Inter",sans-serif;font-size:12px;font-weight:500;line-height:12px;letter-spacing:1.2px;text-transform:uppercase}.eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.title{font-family:"Overused Grotesk Medium",sans-serif;font-weight:500;font-size:64px;line-height:1.04;letter-spacing:-.04em;text-wrap:balance;color:#2F2F2E}.copy{font-size:16px;line-height:24px;letter-spacing:-.1px;color:#2F2F2E}
@media(max-width:809px){.title{font-size:40px;line-height:1.06}}
.section{padding:100px clamp(28px,5.55vw,80px)}.head{display:grid;grid-template-columns:1fr .7fr;gap:70px;align-items:end;margin-bottom:52px}.intro{font-size:16px;line-height:24px;letter-spacing:-.1px;color:#2F2F2E}.cards{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(47,47,46,.16);border-left:1px solid rgba(47,47,46,.16)}.card{min-height:205px;padding:22px;border-right:1px solid rgba(47,47,46,.16);border-bottom:1px solid rgba(47,47,46,.16);color:#2F2F2E;transition:background .2s}.card:hover{background:#fff}.icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#fff;border:1px solid rgba(47,47,46,.16)}.icon svg{width:23px;height:23px}.card h3{margin-top:25px;font-size:22px;line-height:1.08;letter-spacing:-.025em;color:#2F2F2E}.card p{margin-top:12px;font-size:16px;line-height:24px;letter-spacing:-.1px;color:#2F2F2E}@media(max-width:980px){.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:809px){.section{padding:72px 20px}.head{display:block;margin-bottom:48px}.intro{margin-top:24px}.card{min-height:190px;padding:18px}}</style>
<section class="section"><div class="inner"><header class="head"><div><h2 class="eyebrow">Les avantages de Google Ads</h2><p class="title">Utiliser Google pour reprendre le contrôle de ton acquisition.</p></div><p class="intro">Google Ads ne sert pas seulement à obtenir davantage de clics. Bien piloté, ce levier te permet de choisir les services, les clients et les zones que tu veux réellement développer.</p></header><div class="cards"><article class="card"><span class="icon"><svg viewbox="0 0 48 48" aria-hidden="true"><polygon fill="#ffc107" points="30.129,15.75 18.871,9.25 5.871,31.25 17.129,37.75"/><path fill="#1e88e5" d="M31.871 37.75c1.795 3.109 5.847 4.144 8.879 2.379 3.103-1.806 4.174-5.77 2.379-8.879l-13-22c-1.795-3.109-5.835-4.144-8.879-2.379-3.106 1.801-4.174 5.77-2.379 8.879l13 22z"/><circle cx="11.5" cy="34.5" r="6.5" fill="#43a047"/></svg></span><h3>Fin du bouche-à-oreille</h3><p>Construis une source régulière de demandes sans attendre que tes anciens clients parlent de toi.</p></article><article class="card"><span class="icon"><svg viewbox="0 0 48 48" aria-hidden="true"><polygon fill="#ffc107" points="30.129,15.75 18.871,9.25 5.871,31.25 17.129,37.75"/><path fill="#1e88e5" d="M31.871 37.75c1.795 3.109 5.847 4.144 8.879 2.379 3.103-1.806 4.174-5.77 2.379-8.879l-13-22c-1.795-3.109-5.835-4.144-8.879-2.379-3.106 1.801-4.174 5.77-2.379 8.879l13 22z"/><circle cx="11.5" cy="34.5" r="6.5" fill="#43a047"/></svg></span><h3>Être premier localement</h3><p>Place ton entreprise en haut des résultats lorsqu’un prospect recherche ton service dans ta zone.</p></article><article class="card"><span class="icon"><svg viewbox="0 0 48 48" aria-hidden="true"><polygon fill="#ffc107" points="30.129,15.75 18.871,9.25 5.871,31.25 17.129,37.75"/><path fill="#1e88e5" d="M31.871 37.75c1.795 3.109 5.847 4.144 8.879 2.379 3.103-1.806 4.174-5.77 2.379-8.879l-13-22c-1.795-3.109-5.835-4.144-8.879-2.379-3.106 1.801-4.174 5.77-2.379 8.879l13 22z"/><circle cx="11.5" cy="34.5" r="6.5" fill="#43a047"/></svg></span><h3>Dominer un nouveau secteur</h3><p>Lance rapidement ton acquisition dans une ville ou une zone que tu veux développer.</p></article><article class="card"><span class="icon"><svg viewbox="0 0 48 48" aria-hidden="true"><polygon fill="#ffc107" points="30.129,15.75 18.871,9.25 5.871,31.25 17.129,37.75"/><path fill="#1e88e5" d="M31.871 37.75c1.795 3.109 5.847 4.144 8.879 2.379 3.103-1.806 4.174-5.77 2.379-8.879l-13-22c-1.795-3.109-5.835-4.144-8.879-2.379-3.106 1.801-4.174 5.77-2.379 8.879l13 22z"/><circle cx="11.5" cy="34.5" r="6.5" fill="#43a047"/></svg></span><h3>Choisir ses clients</h3><p>Génère suffisamment de demandes pour ne plus être obligé d’accepter tous les projets qui se présentent.</p></article><article class="card"><span class="icon"><svg viewbox="0 0 48 48" aria-hidden="true"><polygon fill="#ffc107" points="30.129,15.75 18.871,9.25 5.871,31.25 17.129,37.75"/><path fill="#1e88e5" d="M31.871 37.75c1.795 3.109 5.847 4.144 8.879 2.379 3.103-1.806 4.174-5.77 2.379-8.879l-13-22c-1.795-3.109-5.835-4.144-8.879-2.379-3.106 1.801-4.174 5.77-2.379 8.879l13 22z"/><circle cx="11.5" cy="34.5" r="6.5" fill="#43a047"/></svg></span><h3>Cibler les meilleurs services</h3><p>Concentre ton budget sur les prestations qui offrent les meilleures marges à ton entreprise.</p></article><article class="card"><span class="icon"><svg viewbox="0 0 48 48" aria-hidden="true"><polygon fill="#ffc107" points="30.129,15.75 18.871,9.25 5.871,31.25 17.129,37.75"/><path fill="#1e88e5" d="M31.871 37.75c1.795 3.109 5.847 4.144 8.879 2.379 3.103-1.806 4.174-5.77 2.379-8.879l-13-22c-1.795-3.109-5.835-4.144-8.879-2.379-3.106 1.801-4.174 5.77-2.379 8.879l13 22z"/><circle cx="11.5" cy="34.5" r="6.5" fill="#43a047"/></svg></span><h3>Accélérer son activité</h3><p>Va chercher immédiatement des prospects au lieu d’attendre que ta visibilité naturelle se développe.</p></article><article class="card"><span class="icon"><svg viewbox="0 0 48 48" aria-hidden="true"><polygon fill="#ffc107" points="30.129,15.75 18.871,9.25 5.871,31.25 17.129,37.75"/><path fill="#1e88e5" d="M31.871 37.75c1.795 3.109 5.847 4.144 8.879 2.379 3.103-1.806 4.174-5.77 2.379-8.879l-13-22c-1.795-3.109-5.835-4.144-8.879-2.379-3.106 1.801-4.174 5.77-2.379 8.879l13 22z"/><circle cx="11.5" cy="34.5" r="6.5" fill="#43a047"/></svg></span><h3>Devancer ses concurrents</h3><p>Apparais devant les entreprises concurrentes au moment où le client est prêt à les contacter.</p></article><article class="card"><span class="icon"><svg viewbox="0 0 48 48" aria-hidden="true"><polygon fill="#ffc107" points="30.129,15.75 18.871,9.25 5.871,31.25 17.129,37.75"/><path fill="#1e88e5" d="M31.871 37.75c1.795 3.109 5.847 4.144 8.879 2.379 3.103-1.806 4.174-5.77 2.379-8.879l-13-22c-1.795-3.109-5.835-4.144-8.879-2.379-3.106 1.801-4.174 5.77-2.379 8.879l13 22z"/><circle cx="11.5" cy="34.5" r="6.5" fill="#43a047"/></svg></span><h3>Stabiliser son acquisition</h3><p>Construis un volume de demandes plus prévisible pour organiser sereinement la croissance de ton entreprise.</p></article></div></div></section>
</template>
</div>
<div id="results-frame">
<template shadowrootmode="open">
<style>
@font-face{font-family:"Overused Grotesk Medium";src:url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2");font-weight:500;font-display:swap}@font-face{font-family:"Inter";src:url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2");font-weight:400;font-display:swap}
:root,:host{--bg:#f7f7f7;--ink:rgba(0,0,0,.86);--soft:rgba(0,0,0,.82);--muted:rgba(0,0,0,.45);--line:rgba(0,0,0,.1)}*{box-sizing:border-box}html,body,:host{margin:0;background:var(--bg);color:var(--ink);font-family:"Inter","Inter Placeholder",sans-serif;font-weight:400;font-synthesis:none}img{display:block;width:100%;height:auto}.results{padding:132px clamp(28px, 5.55vw, 80px) 28px}.inner{max-width:1440px;margin:auto}.head{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:90px;align-items:end;padding:0 18px 80px}.eyebrow{font-family:"Inter","Inter Placeholder",sans-serif;font-weight:400;display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border-radius:999px;background:rgba(0,0,0,.05);margin:0 0 36px;font-size:12px;line-height:1.35;letter-spacing:.08em;text-transform:uppercase;color:var(--soft)}.eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}h1,h2,h3{font-family:"Overused Grotesk Medium",sans-serif;font-weight:500}.results-title{font-family:"Overused Grotesk Medium",sans-serif;font-weight:500;max-width:790px;margin:0;font-size:64px;line-height:1.04;letter-spacing:-.04em}.intro{max-width:520px;margin:0;font-family:"Inter","Inter Placeholder",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:-.1px;color:var(--ink)}.cases{border-top:1px solid var(--line)}.case{display:grid;grid-template-columns:minmax(400px,.92fr) minmax(420px,1.25fr);gap:36px;align-items:center;padding:46px 16px;border-bottom:1px solid var(--line)}.index{display:block;margin-bottom:10px;font-size:12px;line-height:1.35;letter-spacing:.04em;color:var(--muted)}.copy{display:grid;gap:24px}.case h3{margin:0;font-size:28px;line-height:1.08;letter-spacing:-.03em;color:var(--ink)}.description{max-width:540px}.description p{margin:0;font-family:"Inter","Inter Placeholder",sans-serif;font-size:16px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:-.1px;color:var(--soft)}.proof{width:100%;padding:8px;border-radius:13px;background:#fff;border:1px solid rgba(0,0,0,.08);box-shadow:0 12px 35px rgba(0,0,0,.06)}.proof img{border-radius:6px}.note{max-width:760px;margin:22px 16px 0;font-size:11px;line-height:1.45;color:var(--muted)}
@media(max-width:1120px){.head{grid-template-columns:1fr 1fr;gap:52px}.case{grid-template-columns:1fr}}
@media(max-width:700px){.results{padding:78px 12px 12px}.head{display:block;padding:0 8px 52px}.eyebrow{font-family:"Inter","Inter Placeholder",sans-serif;font-weight:400;margin-bottom:24px}.results-title{font-size:40px;line-height:1.06}.intro{margin-top:27px}.case{display:block;padding:38px 8px}.index{display:block;margin-bottom:18px;padding:0}.copy{gap:24px}.case h3{font-size:29px}.proof{width:100%;margin-top:30px;padding:5px;border-radius:9px}.proof img{width:100%;height:auto;object-fit:contain}.note{margin:20px 8px 0}}
</style>
<section class="results"><div class="inner"><header class="head"><div><p class="eyebrow">Résultats clients</p><h2 class="results-title">Résultats clients Google Ads</h2></div><p class="intro">Des résultats obtenus dans de nombreux domaines, même quand la concurrence est forte. Si tu veux le numéro de chaque client pour vérifier les résultats, je te les donne avec grand plaisir. Rappel important : les résultats varient selon le marché, la zone géographique, le budget et la concurrence. Les performances passées ne garantissent pas un résultat futur.</p></header><div class="cases">
<article class="case"><div class="copy"><div class="heading-group"><span class="index">01</span><h3>2 000 appels générés</h3></div><div class="description"><p>En 15 mois, cette entreprise d’assainissement qui m’a confié ses campagnes Google Ads a obtenu plus de 2 100 demandes, avec un taux de conversion de 11,47 % et un coût moyen de 51,74 € par contact.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-assainissement.webp" alt="Résultat Google Ads assainissement : 2 110 conversions à 51,74 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">02</span><h3>235 appels générés</h3></div><div class="description"><p>En 6 mois, cette entreprise de plomberie qui m’a confié ses campagnes Google Ads a obtenu 235 appels, pour un coût moyen de 78,08 € par contact et 18 400 € investis.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-plombier2.webp" alt="Résultat Google Ads plomberie : 235 conversions à 78,08 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">03</span><h3>Près de 700 appels générés</h3></div><div class="description"><p>Dans un secteur ultra concurrentiel, cette entreprise de serrurerie qui m’a confié ses campagnes Google Ads a obtenu 699 appels, pour un coût moyen de 101 € par contact et 70 900 € investis.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-serrurier.webp" alt="Résultat Google Ads serrurerie : 699 conversions à 101 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">04</span><h3>489 appels générés</h3></div><div class="description"><p>En un peu plus de 4 mois, cette entreprise de plomberie et serrurerie qui m’a confié ses campagnes Google Ads a obtenu 489 demandes, pour un coût moyen de 61,58 € par contact et 30 100 € investis.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-plombier-serrurier.webp" alt="Résultat Google Ads plomberie et serrurerie : 489 conversions à 61,58 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">05</span><h3>250 demandes générées</h3></div><div class="description"><p>Avec 6 320 € investis, cette entreprise de couverture qui m’a confié ses campagnes Google Ads a obtenu 250 demandes, pour un coût moyen de seulement 25,30 € par contact.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-couvreur-975.webp" alt="Résultat Google Ads couvreur : 250 conversions à 25,30 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">06</span><h3>392 appels générés</h3></div><div class="description"><p>En moins de 2 mois, cette entreprise de désinfection qui m’a confié ses campagnes Google Ads a obtenu 392 appels, pour un coût moyen de 47,15 € par contact et 18 500 € investis.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-desinfection.webp" alt="Résultat Google Ads désinfection : 392 conversions à 47,15 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">07</span><h3>171 demandes générées</h3></div><div class="description"><p>En 4 mois, cette entreprise de recherche de fuite qui m’a confié ses campagnes Google Ads a obtenu 171 demandes, pour un coût moyen de 57,04 € par contact et 9 750 € investis.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-recherchedefuite.webp" alt="Résultat Google Ads recherche de fuite : 171 conversions à 57,04 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">08</span><h3>172 demandes générées</h3></div><div class="description"><p>Avec un budget maîtrisé de 4 180 €, cette entreprise de débarras qui m’a confié ses campagnes Google Ads a obtenu 172 demandes, pour un coût moyen de 24,29 € par contact.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-videmaison.webp" alt="Résultat Google Ads vide maison : 172 conversions à 24,29 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">09</span><h3>Près de 1 500 appels générés</h3></div><div class="description"><p>En 5 mois, cette entreprise de traitement des nuisibles qui m’a confié ses campagnes Google Ads a obtenu 1 470 demandes, pour un coût moyen de 59,46 € par contact et 87 400 € investis.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-nuisibles.webp" alt="Résultat Google Ads nuisibles : 1 470 conversions à 59,46 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">10</span><h3>198 demandes générées</h3></div><div class="description"><p>En moins de 2 mois, ce second compte de traitement des nuisibles que j’ai accompagné a obtenu 198 demandes, pour un coût moyen de 72,83 € par contact et 14 400 € investis.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-nuisibles2.webp" alt="Résultat Google Ads nuisibles : 198 conversions à 72,83 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">11</span><h3>Près de 3 900 appels générés</h3></div><div class="description"><p>Sur une année complète, cette entreprise de dératisation qui m’a confié ses campagnes Google Ads a obtenu 3 870 demandes, pour un coût moyen de 92,45 € par contact et 358 000 € investis.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-deratisation.webp" alt="Résultat Google Ads dératisation : 3 870 conversions à 92,45 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">12</span><h3>Plus de 3 500 demandes générées</h3></div><div class="description"><p>Sur plus de deux ans, cette entreprise de débouchage qui m’a confié ses campagnes Google Ads a obtenu 3 540 demandes, pour un coût moyen maîtrisé de 34,34 € par contact, dans un marché local très concurrentiel.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-debouchage.webp" alt="Résultat Google Ads débouchage : 3 540 conversions à 34,34 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">13</span><h3>Plus de 600 appels générés</h3></div><div class="description"><p>En 7 mois, cette entreprise de plomberie qui m’a confié ses campagnes Google Ads a obtenu 613 appels, pour un coût moyen de 57,89 € par contact et 35 500 € investis.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-plombier1.webp" alt="Résultat Google Ads plombier : 613 conversions à 57,89 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">14</span><h3>756 appels générés en un mois</h3></div><div class="description"><p>En un seul mois, cette entreprise de dépannage multiservices qui m’a confié ses campagnes Google Ads a obtenu 756 appels, avec un taux de conversion de 19,19 % et un coût moyen de 114 € par contact.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-depannage-multiservices.webp" alt="Résultat Google Ads dépannage multiservices : 756 conversions à 114 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">15</span><h3>329 demandes générées</h3></div><div class="description"><p>En 6 mois, cette entreprise de nettoyage qui m’a confié ses campagnes Google Ads a obtenu 329 demandes, pour un coût moyen de 69,52 € par contact et 22 900 € investis.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-grand-nettoyage.webp" alt="Résultat Google Ads grand nettoyage : 329 conversions à 69,52 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">16</span><h3>521 demandes à moins de 15 €</h3></div><div class="description"><p>Ce centre automobile qui m’a confié ses campagnes Google Ads a obtenu 521 demandes, avec un taux de conversion de 22,12 % et un coût moyen de seulement 14,92 € par contact.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-centre-automobile.webp" alt="Résultat Google Ads centre automobile : 521 conversions à 14,92 euros"></div></article>
<article class="case"><div class="copy"><div class="heading-group"><span class="index">17</span><h3>23 demandes en 3 semaines</h3></div><div class="description"><p>En seulement 3 semaines et avec 962 € investis, cet artisan peintre qui m’a confié ses campagnes Google Ads a obtenu 23 demandes, pour un coût moyen de 41,83 € par contact.</p></div></div><div class="proof"><img src="../../sections-validees/_ressources/section-03/resultat-peintre.webp" alt="Résultat Google Ads peintre : 23 conversions à 41,83 euros"></div></article>
</div></div></section>
</template>
</div>
<div id="about-frame">
<template shadowrootmode="open">
<style>
@font-face{font-family:"Overused Grotesk Medium";src:url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url("../../sections-validees/_ressources/communs/inter-medium.woff2") format("woff2");font-weight:500;font-display:swap}
* { box-sizing: border-box; }
html, body, :host { margin: 0; background: #f7f7f7; }
img { display: block; width: 100%; height: 100%; }
h1, h2, h3 { font-family: "Overused Grotesk Medium", sans-serif; font-weight: 500; margin: 0; }
.about { --background:#f7f7f7; --ink:rgba(0,0,0,.8); --body:rgba(0,0,0,.82); --line:rgba(0,0,0,.1); background: var(--background); color: var(--ink); font-family: "Inter","Inter Placeholder",sans-serif; font-weight: 400; font-synthesis: none; padding: 120px clamp(28px, 5.55vw, 80px) 0; }
.about .inner { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: 50px; align-items: center; }
.about-photo { aspect-ratio: 1; border-radius: 4px; overflow: hidden; }
.about-photo img { object-fit: cover; object-position: center 20%; }
.eyebrow { font-family: "Inter", "Inter Placeholder", sans-serif; font-weight: 400; display: inline-flex; align-items: center; gap: 9px; padding: 9px 14px; border-radius: 999px; background: rgba(0,0,0,.05); margin: 0 0 24px; font-size: 12px; line-height: 1.35; letter-spacing: .08em; text-transform: uppercase; color: rgba(0,0,0,.55); }
.eyebrow:before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.about-title { margin-top: 0; font-family: "Overused Grotesk Medium", sans-serif; font-weight: 500; font-size: 64px; line-height: 1.04; letter-spacing: -.04em; margin-bottom: 24px; }
.value-label { font-size: 16px; line-height: 24px; letter-spacing: -.1px; font-weight: 500; color: rgba(0,0,0,.9); margin: 0 0 20px; }
.checklist { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 16px; max-width: 600px; }
.about-details .desc { font-size: 16px; line-height: 24px; letter-spacing: -.1px; color: var(--body); margin: 0 0 36px; max-width: 600px; }
.checklist li { display: flex; align-items: center; gap: 14px; font-size: 16px; line-height: 24px; letter-spacing: -.1px; color: var(--body); }
.checklist .mark { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; background: rgba(0,0,0,.08); display: inline-flex; align-items: center; justify-content: center; }
.checklist .mark svg { width: 12px; height: 12px; }
.checklist .mark svg path { stroke: rgba(0,0,0,.5); }
.cta { display: inline-flex; align-items: center; gap: 8px; padding: 16px 28px; border-radius: 4px; border: 0; background: #111820; color: #f7f7f7; font-family: "Inter","Inter Placeholder",sans-serif; font-size: 15px; font-weight: 500; letter-spacing: -.2px; cursor: pointer; }
.cta svg { width: 14px; height: 14px; }
@media (max-width: 900px) {
.about .inner { grid-template-columns: 1fr; gap: 36px; }
.about-photo { max-width: 420px; order: 2; }
.about-details { order: 1; }
}
@media (max-width: 700px) {
.about { padding: 72px 16px 0; }
.about-title { margin-top: 0; font-family: "Overused Grotesk Medium", sans-serif; font-weight: 500; font-size: 40px; line-height: 1.06; }
}
</style>
<section class="about" id="about">
<div class="inner">
<div class="about-photo">
<img src="../../sections-validees/_ressources/section-about/portrait-adam-about.webp" alt="Adam Spilmann">
</div>
<div class="about-details">
<h2 class="eyebrow">Qui suis-je ?</h2>
<p class="about-title">17 000 prospects <strong>générés en 3 ans</strong></p>
<p class="value-label">Moi c’est Adam Spilmann, partenaire Google & Meta Ads des entreprises de services qui veulent plus de clients.</p>
<ul class="checklist">
<li><span class="mark"><svg viewbox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg></span>Formé sur les marchés publicitaires les plus concurrentiels</li>
<li><span class="mark"><svg viewbox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg></span>Plusieurs comptes passés de 0 à 10, 20, 50 appels/jour (72 mon record)</li>
<li><span class="mark"><svg viewbox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5"><path d="M20 6L9 17l-5-5"/></svg></span>Pas là pour te vendre du rêve, mais pour te dire la réalité, même si elle ne te plaît pas (sorry)</li>
</ul>
<p class="desc">Mes comptes sont pensés pour absorber la croissance, pas seulement pour tourner. Jamais de la vie je ne te garantirai des résultats chiffrés. Par contre, je peux te garantir de déployer tout ce que je sais, sans compter mes heures, tant que ton compte ne performe pas.</p>
</div>
</div>
</section>
</template>
</div>
<div id="etapes-frame">
<template shadowrootmode="open">
<style>
@font-face { font-family: "Overused Grotesk Medium"; src: url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Inter"; src: url("../../sections-validees/_ressources/communs/inter-medium.woff2") format("woff2"); font-weight: 500; font-display: swap; }
:host {
--bg: #111820;
--card: #1b2735;
--line: rgba(255, 255, 255, .16);
--text: rgba(255, 255, 255, .84);
--gutter: clamp(28px, 5.55vw, 80px);
}
* { box-sizing: border-box; -webkit-font-smoothing: antialiased; }
:host { display: block; background: var(--bg); color: #fff; font-family: "Inter", sans-serif; font-synthesis: none; }
.steps { padding: 120px var(--gutter); }
.inner { max-width: 1280px; margin: 0 auto; }
.head { margin-bottom: 72px; text-align: center; }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; min-height: 28px; margin: 0 0 24px; padding: 8px 12px; border-radius: 999px; background: rgba(247, 247, 247, .08); color: rgba(247, 247, 247, .8); font-size: 12px; font-weight: 500; line-height: 12px; letter-spacing: 1.2px; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.title { max-width: 850px; margin: 0 auto; font-family: "Overused Grotesk Medium", sans-serif; font-size: clamp(40px, 5vw, 64px); font-weight: 500; line-height: 1.04; letter-spacing: -.04em; text-wrap: balance; }
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.card { padding: 40px; border-radius: 8px; background: var(--card); }
.top { display: flex; align-items: center; gap: 18px; margin-bottom: 24px; }
.num { flex: 0 0 auto; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .6); border-radius: 50%; font-size: 16px; font-weight: 500; }
.name { margin: 0; font-family: "Overused Grotesk Medium", sans-serif; font-size: 28px; font-weight: 500; line-height: 1.1; letter-spacing: -.03em; }
.card p { margin: 0; max-width: 520px; font-size: 16px; line-height: 1.5; letter-spacing: -.1px; color: var(--text); }
@media (min-width: 1100px) { .title { max-width: none; white-space: nowrap; } }
@media (max-width: 809px) {
:host { --gutter: 20px; }
.steps { padding: 72px var(--gutter); }
.head { margin-bottom: 48px; }
.grid { grid-template-columns: 1fr; gap: 16px; }
.card { padding: 28px 24px; }
.name { font-size: 24px; }
.num { width: 44px; height: 44px; }
}
</style>
<section class="steps" id="etapes" aria-labelledby="steps-title">
<div class="inner">
<header class="head">
<h2 class="eyebrow">Comment ça marche ?</h2>
<p class="title" id="steps-title">Les 4 étapes pour travailler avec moi</p>
</header>
<div class="grid">
<article class="card">
<div class="top"><span class="num">1</span><h3 class="name">Point stratégique</h3></div>
<p>On pose tes chiffres à plat : combien de demandes il te faut, combien coûte réellement une demande sur ton marché, quel budget prévoir. On part de ton marché et de tes marges, sans te vendre du rêve.</p>
</article>
<article class="card">
<div class="top"><span class="num">2</span><h3 class="name">Lancement des campagnes</h3></div>
<p>Je déploie une structure de campagnes déjà éprouvée sur des marchés difficiles. Une base solide, lisible et pilotable, améliorée dès que les premières données arrivent.</p>
</article>
<article class="card">
<div class="top"><span class="num">3</span><h3 class="name">Consolidation des campagnes</h3></div>
<p>On repère les campagnes qui convertissent et génèrent des demandes que tu signes, puis on les stabilise. Elles deviennent une source constante de demandes et de revenus.</p>
</article>
<article class="card">
<div class="top"><span class="num">4</span><h3 class="name">Scaling et testing agressif</h3></div>
<p>Un flux stable installé, on augmente les budgets et on teste de nouveaux services, zones et offres. On réinvestit une partie du chiffre généré : la croissance se finance sans brûler la trésorerie.</p>
</article>
</div>
</div>
</section>
</template>
</div>
<div id="pourqui-frame">
<template shadowrootmode="open">
<style>
@font-face{font-family:"Overused Grotesk Medium";src:url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Inter";src:url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Inter";src:url("../../sections-validees/_ressources/communs/inter-medium.woff2") format("woff2");font-weight:500;font-display:swap}
* { box-sizing: border-box; }
html, body, :host { margin: 0; background: #f7f7f7; }
h1, h2, h3, h4 { font-family: "Overused Grotesk Medium", sans-serif; font-weight: 500; margin: 0; }
.light-bg { --background:#f7f7f7; --ink:rgba(0,0,0,.8); --body:rgba(0,0,0,.82); --line:rgba(0,0,0,.1); background: var(--background); color: var(--ink); font-family: "Inter","Inter Placeholder",sans-serif; font-weight: 400; font-synthesis: none; padding: 120px 28px 0; }
.head { max-width: 900px; margin: 0 auto; text-align: center; padding-bottom: 84px; }
.eyebrow { font-family: "Inter", "Inter Placeholder", sans-serif; font-weight: 400; display: flex; align-items: center; justify-content: center; gap: 9px; width: fit-content; padding: 9px 14px; border-radius: 999px; background: rgba(0,0,0,.05); margin: 0 auto 30px; font-size: 12px; line-height: 1.35; letter-spacing: .08em; text-transform: uppercase; color: rgba(0,0,0,.55); }
.eyebrow:before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.compatibility-title { margin: 0; font-family: "Overused Grotesk Medium", sans-serif; font-weight: 500; font-size: 64px; line-height: 1.04; letter-spacing: -.04em; }
.head .intro { max-width: 680px; margin: 24px auto 0; font-size: 16px; line-height: 24px; letter-spacing: -.1px; color: var(--body); }
.inner { max-width: 1160px; margin: 0 auto; }
@media (max-width: 700px) {
.light-bg { padding: 72px 16px 0; }
.head { padding-bottom: 56px; text-align: left; }
.head .eyebrow { font-family: "Inter", "Inter Placeholder", sans-serif; font-weight: 400; justify-content: flex-start; margin-left: 0; margin-right: 0; }
.head .intro { margin-left: 0; margin-right: 0; }
.compatibility-title { margin: 0; font-family: "Overused Grotesk Medium", sans-serif; font-weight: 500; font-size: 40px; line-height: 1.06; }
}
.mirror { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.col-head { display: flex; align-items: center; gap: 16px; margin-bottom: 32px; }
.col-head .mark { width: 34px; height: 34px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; color: #fff; flex-shrink: 0; }
.good .col-head .mark { background: #1f7a52; }
.bad .col-head .mark { background: #b3261e; }
.col-head h3 { font-size: 28px; line-height: 1.12; letter-spacing: -.03em; color: rgba(0,0,0,.9); }
.acc-list { border-top: 1px solid rgba(0,0,0,.14); }
.acc-item { border-bottom: 1px solid rgba(0,0,0,.14); }
.acc-trigger { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px 4px; background: none; border: 0; cursor: pointer; text-align: left; font-family: "Inter","Inter Placeholder",sans-serif; }
.acc-trigger h4 { font-family: "Inter","Inter Placeholder",sans-serif; font-weight: 500; font-size: 16px; line-height: 1.4; letter-spacing: -.01em; color: rgba(0,0,0,.9); margin: 0; }
.bad .acc-trigger h4 { color: rgba(0,0,0,.75); }
.acc-plus { position: relative; width: 16px; height: 16px; flex-shrink: 0; }
.acc-plus:before, .acc-plus:after { content: ""; position: absolute; background: rgba(0,0,0,.45); border-radius: 1px; }
.acc-plus:before { top: 50%; left: 0; width: 16px; height: 1.5px; transform: translateY(-50%); }
.acc-plus:after { left: 50%; top: 0; width: 1.5px; height: 16px; transform: translateX(-50%); transition: transform .2s ease; }
.acc-item[data-open="true"] .acc-plus:after { transform: translateX(-50%) rotate(90deg); opacity: 0; }
.acc-panel { max-height: 0; overflow: hidden; transition: max-height .25s ease; }
.acc-panel-inner { padding: 0 28px 26px 4px; }
.acc-panel-inner > p { margin: 0 0 20px; font-size: 16px; line-height: 24px; letter-spacing: -.1px; color: var(--body); }
.bad .acc-panel-inner > p { color: var(--body); }
.acc-points { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.acc-points li { display: flex; align-items: flex-start; gap: 12px; font-size: 16px; line-height: 24px; letter-spacing: -.1px; color: rgba(0,0,0,.85); }
.acc-points .pt-mark { width: 18px; height: 18px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 10px; color: #fff; flex-shrink: 0; margin-top: 2px; }
.good .acc-points .pt-mark { background: #1f7a52; }
.bad .acc-points .pt-mark { background: #b3261e; }
.bad .acc-points li { color: rgba(0,0,0,.85); }
@media (max-width: 900px) {
.mirror { grid-template-columns: 1fr; gap: 48px; }
}
</style>
<section class="light-bg" id="pour-qui">
<div class="head">
<h2 class="eyebrow">Pour qui est cette offre ?</h2>
<p class="compatibility-title">Nos profils sont-ils <strong>compatibles ?</strong></p>
<p class="intro">Ce que j’aime, ce sont les entreprises qui raisonnent en volume et en rentabilité. Ce que je fuis, ce sont celles qui préfèrent commenter les chiffres plutôt que générer davantage de demandes.</p>
</div>
<div class="inner">
<div class="mirror">
<div class="good">
<div class="col-head"><span class="mark">✓</span><h3>Le profil que j’accompagne</h3></div>
<div class="acc-list">
<div class="acc-item" data-open="true">
<button class="acc-trigger"><h4>Une vision à long terme</h4><span class="acc-plus"></span></button>
<div class="acc-panel"><div class="acc-panel-inner">
<p>Ils raisonnent sur 90 à 180 jours, pas sur une semaine isolée. Un mois plus calme ne les inquiète pas si la tendance de fond reste bonne.</p>
<ul class="acc-points">
<li><span class="pt-mark">✓</span>Analyse les résultats sur plusieurs mois, pas semaine par semaine</li>
<li><span class="pt-mark">✓</span>Accepte une phase de test avant de juger la rentabilité</li>
<li><span class="pt-mark">✓</span>Garde le cap même si un mois est plus calme</li>
</ul>
</div></div>
</div>
<div class="acc-item" data-open="false">
<button class="acc-trigger"><h4>Une compréhension de l’investissement en ads</h4><span class="acc-plus"></span></button>
<div class="acc-panel"><div class="acc-panel-inner">
<p>Le budget publicitaire est vu comme un investissement, pas comme une dépense. Ils regardent ce qu’il rapporte, pas seulement ce qu’il coûte.</p>
<ul class="acc-points">
<li><span class="pt-mark">✓</span>Raisonne en retour sur investissement, pas en coût affiché</li>
<li><span class="pt-mark">✓</span>Prêt à augmenter le budget si la rentabilité suit</li>
<li><span class="pt-mark">✓</span>Comprend qu’un compte a besoin de données pour s’optimiser</li>
</ul>
</div></div>
</div>
<div class="acc-item" data-open="false">
<button class="acc-trigger"><h4>Une culture du volume et de la rentabilité</h4><span class="acc-plus"></span></button>
<div class="acc-panel"><div class="acc-panel-inner">
<p>15 appels à 70 € valent mieux que 2 appels à 40 € si le chiffre et la marge suivent. Le volume ne leur fait pas peur.</p>
<ul class="acc-points">
<li><span class="pt-mark">✓</span>Veut maximiser le nombre de demandes, pas juste réduire le coût par lead</li>
<li><span class="pt-mark">✓</span>À l’aise avec un volume élevé tant que la marge suit</li>
<li><span class="pt-mark">✓</span>Sait absorber les nouvelles demandes côté terrain</li>
</ul>
</div></div>
</div>
<div class="acc-item" data-open="false">
<button class="acc-trigger"><h4>Ne croit plus aux méthodes miracles</h4><span class="acc-plus"></span></button>
<div class="acc-panel"><div class="acc-panel-inner">
<p>Méfie-toi des agences qui promettent 300 prospects dès le premier mois, sans engagement dans la durée et avec des conditions de paiement floues. Ce qu’il faut chercher, ce n’est pas une promesse impossible à tenir : c’est quelqu’un qui s’implique vraiment dans ton business.</p>
<ul class="acc-points">
<li><span class="pt-mark">✓</span>Aucune promesse de volume irréaliste dès le premier mois</li>
<li><span class="pt-mark">✓</span>Un engagement clair dans la durée, pas un coup d’un soir</li>
<li><span class="pt-mark">✓</span>Des conditions de paiement transparentes, écrites noir sur blanc</li>
</ul>
</div></div>
</div>
</div>
</div>
<div class="bad">
<div class="col-head"><span class="mark">✕</span><h3>Le profil que j’évite</h3></div>
<div class="acc-list">
<div class="acc-item" data-open="true">
<button class="acc-trigger"><h4>La forme avant le fond</h4><span class="acc-plus"></span></button>
<div class="acc-panel"><div class="acc-panel-inner">
<p>Plus attentifs aux reportings, aux réunions et aux micro-variations qu’au volume réel de demandes généré.</p>
<ul class="acc-points">
<li><span class="pt-mark">✕</span>Se concentre sur les rapports plutôt que sur les demandes générées</li>
<li><span class="pt-mark">✕</span>Commente chaque micro-variation du coût par clic</li>
<li><span class="pt-mark">✕</span>Préfère un beau reporting à un résultat concret</li>
</ul>
</div></div>
</div>
<div class="acc-item" data-open="false">
<button class="acc-trigger"><h4>L’exigence de promesses de résultats</h4><span class="acc-plus"></span></button>
<div class="acc-panel"><div class="acc-panel-inner">
<p>Veulent une garantie chiffrée avant même de commencer, alors que la publicité reste un système à ajuster, pas une formule magique.</p>
<ul class="acc-points">
<li><span class="pt-mark">✕</span>Demande une garantie de résultat avant même de démarrer</li>
<li><span class="pt-mark">✕</span>Compare à un concurrent sans connaître son propre marché</li>
<li><span class="pt-mark">✕</span>Veut un chiffre figé plutôt qu’une stratégie qui s’ajuste</li>
</ul>
</div></div>
</div>
<div class="acc-item" data-open="false">
<button class="acc-trigger"><h4>Le prix avant la rentabilité</h4><span class="acc-plus"></span></button>
<div class="acc-panel"><div class="acc-panel-inner">
<p>Cherchent le moins cher possible plutôt que le plus rentable. Un budget plus élevé mais plus rentable ne les intéresse pas.</p>
<ul class="acc-points">
<li><span class="pt-mark">✕</span>Cherche le prestataire le moins cher, pas le plus rentable</li>
<li><span class="pt-mark">✕</span>Hésite à investir même quand le retour est démontré</li>
<li><span class="pt-mark">✕</span>Compare des devis sans comparer les résultats obtenus</li>
</ul>
</div></div>
</div>
<div class="acc-item" data-open="false">
<button class="acc-trigger"><h4>Le blocage au moindre imprévu</h4><span class="acc-plus"></span></button>
<div class="acc-panel"><div class="acc-panel-inner">
<p>Bloquent sur un dépassement budgétaire même lorsque la croissance suit. La bureaucratie passe avant l’encaissement.</p>
<ul class="acc-points">
<li><span class="pt-mark">✕</span>Bloque le budget dès le moindre dépassement</li>
<li><span class="pt-mark">✕</span>Freine une campagne qui fonctionne par excès de prudence</li>
<li><span class="pt-mark">✕</span>Priorise la validation interne à la vitesse d’exécution</li>
</ul>
</div></div>
</div>
</div>
</div>
</div>
</div>
</section>
</template>
</div>
<div id="faq-frame">
<template shadowrootmode="open">
<style>
/* ==========================================================================
THEME ADAM SPILMANN, v3
Une seule feuille de style pour tout le site : accueil, pages services,
articles de blog, style guide. Aucune valeur en dur dans les composants :
tout passe par les variables de la section 1.
1. Variables (couleurs, typo, espacements, rayon)
2. Base
3. Mise en page (conteneur, sections, grille)
4. Composants (label, titres, boutons, listes, accordéon, en-tête, pied)
5. Blocs de page (hero, à propos, étapes, compatibilité, faq)
6. Fenêtre de qualification
7. Responsive
========================================================================== */
/* ---------- 1. Variables ---------- */
@font-face {
font-family: "Overused Grotesk Medium";
src: url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2");
font-weight: 500;
font-display: swap;
}
@font-face {
font-family: "Inter";
src: url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2");
font-weight: 400;
font-display: swap;
}
@font-face {
font-family: "Inter";
src: url("../../sections-validees/_ressources/communs/inter-medium.woff2") format("woff2");
font-weight: 500;
font-display: swap;
}
:host {
/* Couleurs : jamais de blanc pur en fond, jamais de couleur en dehors de cette liste */
--paper: #f7f7f7;
--paper-2: #efefed;
--ink: #111820;
--text: rgba(17, 24, 32, .92);
--text-soft: rgba(17, 24, 32, .68);
--text-faint: rgba(17, 24, 32, .5);
--line: rgba(17, 24, 32, .14);
--on-dark: #ffffff;
--on-dark-soft: rgba(255, 255, 255, .72);
--on-dark-faint: rgba(255, 255, 255, .5);
--line-dark: rgba(255, 255, 255, .16);
--positive: #1f7a52;
--negative: #b3261e;
--whatsapp: #25d366;
/* Typographie */
--font-title: "Overused Grotesk Medium", "Inter", sans-serif;
--font-body: "Inter", system-ui, sans-serif;
--fs-h1: clamp(42px, 5.6vw, 76px);
--fs-h2: clamp(40px, 5vw, 64px);
--fs-h3: 28px;
--fs-lead: 19px;
--fs-body: 16px;
--fs-small: 14px;
--fs-label: 12px;
/* Espacements (échelle de 8) */
--s-1: 8px;
--s-2: 16px;
--s-3: 24px;
--s-4: 32px;
--s-5: 48px;
--s-6: 64px;
--s-7: 96px;
--s-8: 128px;
--section: 120px;
--gutter: clamp(28px, 5.55vw, 80px);
--container: 1280px;
/* Forme : tout est carré, seuls les boutons et champs ont un léger arrondi */
--radius: 4px;
--header-h: 72px;
}
/* ---------- 2. Base ---------- */
*, *::before, *::after { box-sizing: border-box; -webkit-font-smoothing: antialiased; }
:host { display: block; background: var(--paper); color: var(--text); font-family: var(--font-body); font-size: var(--fs-body); line-height: 1.6; font-synthesis: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1, h2, h3, h4, p, ul { margin: 0; }
ul { padding: 0; list-style: none; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; padding: var(--s-1) var(--s-2); background: var(--ink); color: var(--on-dark); }
.skip-link:focus { left: 0; }
/* ---------- 3. Mise en page ---------- */
.container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
.section { padding-block: var(--section); }
.section--alt { background: var(--paper); }
.section--dark { background: var(--ink); color: var(--on-dark); }
.section--dark .label { color: var(--on-dark-faint); }
.section--dark .lead,
.section--dark .text { color: var(--on-dark-soft); }
/* Grille 12 colonnes : les blocs se calent dessus, rien ne flotte */
.grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--s-4); row-gap: var(--s-5); }
/* En-tête de section : label, titre, texte. Toujours le même. */
.section-head { max-width: 760px; margin-bottom: var(--s-6); }
.section-head .label { margin-bottom: var(--s-3); }
.section-head .lead { margin-top: var(--s-3); }
/* ---------- 4. Composants ---------- */
/* Label : petit texte en capitales avec un carré */
.label {
display: flex;
align-items: center;
gap: 10px;
font-size: var(--fs-label);
font-weight: 500;
line-height: 1;
letter-spacing: .12em;
text-transform: uppercase;
color: var(--text-faint);
}
.label::before { content: ""; width: 7px; height: 7px; background: currentColor; }
/* Titres */
.h1, .h2, .h3 { font-family: var(--font-title); font-weight: 500; text-wrap: balance; }
.h1 { font-size: var(--fs-h1); line-height: 1.02; letter-spacing: -.045em; }
.h2 { font-size: var(--fs-h2); line-height: 1.04; letter-spacing: -.04em; }
.h3 { font-size: var(--fs-h3); line-height: 1.2; letter-spacing: -.02em; }
.h1 strong, .h2 strong, .h3 strong { font-weight: 500; color: var(--text-faint); }
.section--dark .h2 strong, .section--dark .h3 strong { color: var(--on-dark-faint); }
/* Textes */
.lead { max-width: 640px; font-size: var(--fs-lead); line-height: 1.5; color: var(--text-soft); }
.text { max-width: 640px; color: var(--text-soft); }
.text + .text { margin-top: var(--s-2); }
.small { font-size: var(--fs-small); line-height: 1.5; }
/* Boutons : deux formats, une seule hauteur */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
min-height: 52px;
padding: 0 var(--s-3);
border: 1px solid transparent;
border-radius: var(--radius);
font-size: 15px;
font-weight: 500;
line-height: 1;
text-decoration: none;
cursor: pointer;
transition: background-color .2s, color .2s, border-color .2s;
}
.btn--primary { background: var(--ink); color: var(--on-dark); }
.btn--primary:hover { background: #26303b; }
.btn--secondary { border-color: var(--line); background: transparent; color: var(--text); }
.btn--secondary:hover { border-color: var(--ink); }
.section--dark .btn--primary, .btn--light { background: var(--on-dark); color: var(--ink); }
.section--dark .btn--primary:hover, .btn--light:hover { background: var(--paper); }
.btn-row { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.btn .arrow { transition: transform .2s; }
.btn:hover .arrow { transform: translateX(4px); }
/* Liste à coches : une ligne = un trait fin au-dessus */
.checklist { border-top: 1px solid var(--line); }
.checklist li {
display: grid;
grid-template-columns: 24px 1fr;
gap: var(--s-2);
padding-block: var(--s-2);
border-bottom: 1px solid var(--line);
color: var(--text);
}
.checklist svg { width: 20px; height: 20px; margin-top: 2px; fill: none; stroke: var(--positive); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.checklist--negative svg { stroke: var(--negative); }
/* Accordéon : utilisé partout (compatibilité et FAQ), un seul composant */
.accordion { border-top: 1px solid var(--line); }
.accordion details { border-bottom: 1px solid var(--line); }
.accordion summary {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: var(--s-3);
padding-block: var(--s-3);
font-family: var(--font-body);
font-size: 16px;
font-weight: 500;
line-height: 24px;
letter-spacing: -.1px;
color: rgba(0, 0, 0, .9);
cursor: pointer;
list-style: none;
}
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::after {
content: "+";
flex: 0 0 auto;
width: 24px;
font-family: var(--font-body);
font-size: 24px;
line-height: 1;
text-align: center;
color: var(--text-faint);
}
.accordion details[open] summary::after { content: "−"; }
.accordion .answer { padding-bottom: var(--s-3); max-width: 680px; color: var(--text-soft); font-size: 16px; line-height: 24px; letter-spacing: -.1px; }
.accordion .answer > * + * { margin-top: var(--s-2); }
.accordion .answer .checklist { margin-top: var(--s-2); }
.accordion .answer .checklist li { padding-block: 12px; font-size: var(--fs-small); }
/* En-tête du site */
.header {
position: sticky;
top: 0;
z-index: 50;
height: var(--header-h);
background: var(--paper);
border-bottom: 1px solid var(--line);
}
.header .container { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); }
.brand { font-family: var(--font-title); font-size: 21px; letter-spacing: -.03em; text-decoration: none; }
.nav { display: flex; align-items: center; gap: var(--s-4); }
.nav a:not(.btn) { font-size: var(--fs-small); text-decoration: none; color: var(--text-soft); transition: color .2s; }
.nav a:not(.btn):hover { color: var(--ink); }
.nav .btn { min-height: 44px; padding-inline: 20px; font-size: var(--fs-small); }
.menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: var(--radius); background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 18px; height: 1.5px; margin: 5px auto; background: var(--ink); }
/* Pied de page */
.footer { background: var(--ink); color: var(--on-dark); }
.footer-cta { padding-block: var(--s-7); border-bottom: 1px solid var(--line-dark); }
.footer-cta .container { display: grid; grid-template-columns: 1fr auto; gap: var(--s-5); align-items: end; }
.footer-cta .h2 { max-width: 780px; }
.footer-cols { padding-block: var(--s-6); display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--s-5); }
.footer .label { margin-bottom: var(--s-2); color: var(--on-dark-faint); }
.footer li + li { margin-top: 10px; }
.footer li, .footer a { font-size: 16px; line-height: 24px; letter-spacing: -.1px; }
.footer a { text-decoration: none; color: var(--on-dark-soft); }
.footer a:hover { color: var(--on-dark); }
.footer .about-note { max-width: 320px; color: var(--on-dark-soft); font-size: 16px; line-height: 24px; letter-spacing: -.1px; }
.footer-bottom { padding-block: var(--s-3); border-top: 1px solid var(--line-dark); color: var(--on-dark-faint); font-size: 12px; }
.footer-bottom .container { display: flex; justify-content: space-between; gap: var(--s-3); }
/* ---------- 5. Blocs de page ---------- */
/* Hero : texte à gauche, photo à droite */
.hero { padding-block: var(--s-7) var(--section); }
.hero .grid { align-items: center; }
.hero-text { grid-column: 1 / span 7; }
.hero-text .label { margin-bottom: var(--s-4); }
.hero-text .lead { margin-top: var(--s-4); }
.hero-text .btn-row { margin-top: var(--s-5); }
.hero-photo { grid-column: 9 / span 4; }
.hero-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 90% 50%; }
/* À propos : photo à gauche, texte à droite */
.about-photo { grid-column: 1 / span 5; }
.about-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.about-body { grid-column: 7 / span 6; align-self: center; }
.about-body .label { margin-bottom: var(--s-3); }
.about-body .checklist { margin-top: var(--s-4); margin-bottom: var(--s-4); }
.about-body .lead { margin-top: var(--s-3); color: var(--text); }
/* Étapes : chaque ligne = numéro, titre, texte */
.steps { border-top: 1px solid var(--line-dark); }
.step {
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
column-gap: var(--s-4);
row-gap: var(--s-2);
padding-block: var(--s-5);
border-bottom: 1px solid var(--line-dark);
}
.step-num { grid-column: 1 / span 1; font-family: var(--font-title); font-size: var(--fs-h3); color: var(--on-dark-faint); line-height: 1.2; }
.step-title { grid-column: 2 / span 5; }
.step-title .kicker { margin-bottom: var(--s-1); font-size: var(--fs-label); letter-spacing: .12em; text-transform: uppercase; color: var(--on-dark-faint); }
.step-text { grid-column: 8 / span 5; color: var(--on-dark-soft); }
.step-text > * + * { margin-top: var(--s-2); }
/* Compatibilité : deux colonnes égales */
.split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-6); row-gap: var(--s-6); }
.split-title { display: flex; align-items: center; gap: var(--s-2); margin-bottom: var(--s-3); }
.split-title .mark { display: grid; place-items: center; width: 32px; height: 32px; font-size: 16px; font-weight: 500; color: var(--on-dark); background: var(--positive); }
.split-title .mark--no { background: var(--negative); }
/* FAQ : titre à gauche, questions à droite */
.faq-head { grid-column: 1 / span 5; align-self: start; position: sticky; top: calc(var(--header-h) + var(--s-4)); }
.faq-head .label { margin-bottom: var(--s-3); }
.faq-head .lead { margin-top: var(--s-3); font-size: 16px; line-height: 24px; letter-spacing: -.1px; }
.faq-list { grid-column: 7 / span 6; }
/* ---------- 7. Responsive ---------- */
@media (max-width: 1023px) {
:host { --section: var(--s-7); --gutter: clamp(28px, 5.55vw, 80px); }
.hero-text { grid-column: 1 / -1; }
.hero-photo { grid-column: 1 / span 6; }
.about-photo { grid-column: 1 / span 5; }
.about-body { grid-column: 6 / -1; }
.step-title { grid-column: 2 / -1; }
.step-text { grid-column: 2 / -1; }
.faq-head { grid-column: 1 / -1; position: static; }
.faq-list { grid-column: 1 / -1; }
.footer-cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 809px) {
:host { --section: 72px; --gutter: 20px; --header-h: 64px; --fs-lead: 17px; --fs-h2: 40px; }
.menu-toggle { display: block; }
.nav {
position: absolute;
top: var(--header-h);
left: 0;
right: 0;
display: none;
flex-direction: column;
align-items: stretch;
gap: 0;
padding: var(--s-2) var(--gutter) var(--s-3);
background: var(--paper);
border-bottom: 1px solid var(--line);
}
.nav.is-open { display: flex; }
.nav a:not(.btn) { padding-block: 14px; font-size: 16px; border-bottom: 1px solid var(--line); }
.nav .btn { margin-top: var(--s-2); }
.section-head { margin-bottom: var(--s-5); }
.hero { padding-block: var(--s-5) var(--section); }
.hero-photo { grid-column: 1 / -1; }
.about-photo, .about-body { grid-column: 1 / -1; }
.btn-row .btn { flex: 1 1 100%; }
.step { padding-block: var(--s-4); }
.step-num { grid-column: 1 / -1; }
.step-title, .step-text { grid-column: 1 / -1; }
.split { grid-template-columns: 1fr; }
.accordion summary { font-size: 16px; }
.footer-cta .container { grid-template-columns: 1fr; align-items: start; }
.footer-cols { grid-template-columns: 1fr; gap: var(--s-4); }
.footer-bottom .container { flex-direction: column; }
.sticky-contact { left: var(--s-2); right: var(--s-2); bottom: var(--s-2); }
.sticky-contact .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
* { transition: none !important; }
}
.eyebrow { display:inline-flex; align-items:center; gap:8px; min-height:28px; padding:8px 12px; margin:0 0 24px; border-radius:999px; background:rgba(0,0,0,.05); color:rgba(0,0,0,.8); font-family:"Inter","Inter Placeholder",sans-serif; font-size:12px; font-weight:500; line-height:12px; letter-spacing:1.2px; text-transform:uppercase; }
.eyebrow:before{ content:""; width:6px; height:6px; flex:0 0 6px; border-radius:50%; background:currentColor}
.h1 strong, .h2 strong, .h3 strong { color: inherit; }
.accordion .answer, .faq-head .lead { color: rgba(17, 24, 32, .82); }
.section--alt { background: var(--paper); }
:host { background: var(--paper); }
</style>
<section class="section section--alt" id="faq">
<div class="container grid">
<div class="faq-head">
<h2 class="eyebrow" id="faq-title">Questions fréquentes sur Google Ads</h2>
<p class="h2">Les questions que l’on me pose <strong>le plus souvent</strong></p>
<p class="lead">Tu ne trouves pas ta réponse ? Écris-moi, je réponds sous 24 heures ouvrées.</p>
</div>
<div class="faq-list accordion">
<details open>
<summary>Peux-tu accompagner le lancement d’une nouvelle activité ?</summary>
<div class="answer"><p>Oui, totalement. Je l’ai déjà fait plusieurs fois, avec des entreprises parties de zéro et devenues très rentables en quelques mois. Mais lancer une activité ne signifie pas forcément se lancer sans argent. Si tu viens de créer ta micro-entreprise avec 300 € à investir, je ne peux pas t’aider : on ne construit pas un système d’acquisition solide avec ses derniers euros. En revanche, si tu lances une entreprise, une activité ou une implantation avec une vraie enveloppe pour te développer, c’est exactement le genre de projet que j’aime accompagner.</p></div>
</details>
<details>
<summary>Pourquoi refuses-tu de garantir un nombre d’appels ?</summary>
<div class="answer"><p>Parce que garantir un nombre d’appels, c’est du bullshit. Je pourrais te promettre 30 appels en 90 jours, mais je ne prendrais aucun risque. Deux campagnes identiques ne produisent jamais exactement les mêmes résultats : les enchères, la concurrence et les prospects changent d’une zone à l’autre. Mes clients ne signent pas pour une garantie artificielle. Ils signent parce que j’ai déjà atteint les niveaux qu’ils veulent viser. Ma garantie, c’est mon implication : je vais me tuer sur leur compte jusqu’à trouver ce qui fonctionne.</p></div>
</details>
<details>
<summary>Peut-on relancer un compte qui a déjà échoué ?</summary>
<div class="answer"><p>Oui. Un compte qui a échoué n’est pas forcément un compte qui ne pouvait pas fonctionner. Nous auditons les campagnes, le tracking, la landing page, l’offre et le traitement des appels pour trouver le vrai point de blocage. Ensuite, il faut poser la question que beaucoup évitent : les moyens engagés étaient-ils cohérents avec les objectifs ? Tu ne peux pas vouloir générer 50 000 € de chiffre d’affaires supplémentaire avec 500 € de budget, puis conclure que Google Ads ne fonctionne pas.</p></div>
</details>
<details>
<summary>Mon marché est concurrentiel : peut-il quand même être rentable ?</summary>
<div class="answer"><p>Quand j’entends qu’un marché est « trop concurrentiel », je demande : trop concurrentiel par rapport à quoi ? Tu es couvreur, tu peux gagner 20 000 ou 30 000 € sur une rénovation, mais investir 3 000 € pour trouver des clients te paraît déraisonnable ? Tu es plombier, tu factures une recherche de fuite près de 1 000 €, mais une demande à 80 € serait impossible à rentabiliser ? Si tes concurrents investissent pour rester visibles, c’est probablement qu’ils y trouvent leur compte. Le problème n’est pas toujours la concurrence. Parfois, c’est simplement la peur d’investir.</p></div>
</details>
<details>
<summary>Puis-je vérifier les résultats de tes anciens clients ?</summary>
<div class="answer"><p>Oui, avec grand plaisir. Je peux te montrer la majorité des comptes Google Ads que je gère, avec leurs dépenses, les appels générés et le contexte des résultats. Avec leur accord, je peux également te transmettre les coordonnées de certains clients pour que tu leur poses directement tes questions. Je préfère te montrer de vrais comptes plutôt que te demander de croire une capture d’écran sortie de son contexte.</p></div>
</details>
<details>
<summary>Peux-tu m’aider à conquérir un nouveau secteur ?</summary>
<div class="answer"><p>Oui, je l’ai déjà fait plusieurs fois. Si tu veux ouvrir une nouvelle ville, un département ou une zone, dis-le-moi dès le départ. Je construirai une stratégie spécifique avec des budgets, des services et des objectifs adaptés à chaque secteur. Je ne lance pas quelques annonces dans une nouvelle ville en espérant que ça prenne : je réfléchis au tunnel complet, de la visibilité jusqu’au traitement des appels et à la rentabilité de la zone.</p></div>
</details>
<details>
<summary>Quelqu’un a déjà géré mes publicités sans succès : que feras-tu différemment ?</summary>
<div class="answer"><p>Beaucoup de personnes s’improvisent expertes après avoir lancé quelques campagnes. De mon côté, j’ai dépensé plusieurs millions d’euros et généré des dizaines de milliers d’appels pour mes clients. Je commencerai par auditer ton compte et t’expliquer précisément ce qui n’allait pas. Mais demande-toi aussi si ton ancien prestataire avait déjà atteint les résultats que tu lui demandais. Tu veux passer un cap sur ton chiffre d’affaires ? Pourquoi confier cet objectif à quelqu’un qui n’a jamais réussi à le faire pour d’autres ?</p></div>
</details>
<details>
<summary>Je n’ai que quelques centaines d’euros à investir : est-ce suffisant ?</summary>
<div class="answer"><p>Dans la majorité des entreprises de services, non. Je préfère te le dire franchement plutôt que d’encaisser tes derniers euros pour faire semblant de travailler. Avec quelques centaines d’euros, tu n’auras généralement ni le volume ni les données nécessaires pour prendre de bonnes décisions. Pour la plupart des entreprises que j’accompagne, investir moins de 3 000 € par mois n’a pas beaucoup de sens. Si cet investissement met ton entreprise en danger, ne lance pas Google Ads maintenant : ce n’est pas un bouton magique pour sauver une société sans trésorerie.</p></div>
</details>
</div>
</div>
</section>
</template>
</div>
<div id="footer-frame">
<template shadowrootmode="open">
<style>
/* ==========================================================================
THEME ADAM SPILMANN, v3
Une seule feuille de style pour tout le site : accueil, pages services,
articles de blog, style guide. Aucune valeur en dur dans les composants :
tout passe par les variables de la section 1.
1. Variables (couleurs, typo, espacements, rayon)
2. Base
3. Mise en page (conteneur, sections, grille)
4. Composants (label, titres, boutons, listes, accordéon, en-tête, pied)
5. Blocs de page (hero, à propos, étapes, compatibilité, faq)
6. Fenêtre de qualification
7. Responsive
========================================================================== */
/* ---------- 1. Variables ---------- */
@font-face {
font-family: "Overused Grotesk Medium";
src: url("../../sections-validees/_ressources/communs/overused-grotesk-medium.woff2") format("woff2");
font-weight: 500;
font-display: swap;
}
@font-face {
font-family: "Inter";
src: url("../../sections-validees/_ressources/communs/inter-regular.woff2") format("woff2");
font-weight: 400;
font-display: swap;
}
@font-face {
font-family: "Inter";
src: url("../../sections-validees/_ressources/communs/inter-medium.woff2") format("woff2");
font-weight: 500;
font-display: swap;
}
:host {
/* Couleurs : jamais de blanc pur en fond, jamais de couleur en dehors de cette liste */
--paper: #f7f7f7;
--paper-2: #efefed;
--ink: #111820;
--text: rgba(17, 24, 32, .92);
--text-soft: rgba(17, 24, 32, .68);
--text-faint: rgba(17, 24, 32, .5);
--line: rgba(17, 24, 32, .14);
--on-dark: #ffffff;
--on-dark-soft: rgba(255, 255, 255, .72);
--on-dark-faint: rgba(255, 255, 255, .5);
--line-dark: rgba(255, 255, 255, .16);
--positive: #1f7a52;
--negative: #b3261e;
--whatsapp: #25d366;
/* Typographie */
--font-title: "Overused Grotesk Medium", "Inter", sans-serif;
--font-body: "Inter", system-ui, sans-serif;
--fs-h1: clamp(42px, 5.6vw, 76px);
--fs-h2: clamp(40px, 5vw, 64px);
--fs-h3: 28px;
--fs-lead: 19px;
--fs-body: 16px;
--fs-small: 14px;
--fs-label: 12px;
/* Espacements (échelle de 8) */
--s-1: 8px;
--s-2: 16px;
--s-3: 24px;
--s-4: 32px;
--s-5: 48px;
--s-6: 64px;
--s-7: 96px;
--s-8: 128px;
--section: 120px;
--gutter: clamp(28px, 5.55vw, 80px);
--container: 1280px;
/* Forme : tout est carré, seuls les boutons et champs ont un léger arrondi */
--radius: 4px;
--header-h: 72px;
}
/* ---------- 2. Base ---------- */
*, *::before, *::after { box-sizing: border-box; -webkit-font-smoothing: antialiased; }
:host { display: block; background: var(--paper); color: var(--text); font-family: var(--font-body); font-size: var(--fs-body); line-height: 1.6; font-synthesis: none; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1, h2, h3, h4, p, ul { margin: 0; }
ul { padding: 0; list-style: none; }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 100; padding: var(--s-1) var(--s-2); background: var(--ink); color: var(--on-dark); }
.skip-link:focus { left: 0; }
/* ---------- 3. Mise en page ---------- */
.container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
.section { padding-block: var(--section); }
.section--alt { background: var(--paper-2); }
.section--dark { background: var(--ink); color: var(--on-dark); }
.section--dark .label { color: var(--on-dark-faint); }
.section--dark .lead,
.section--dark .text { color: var(--on-dark-soft); }
/* Grille 12 colonnes : les blocs se calent dessus, rien ne flotte */
.grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--s-4); row-gap: var(--s-5); }
/* En-tête de section : label, titre, texte. Toujours le même. */
.section-head { max-width: 760px; margin-bottom: var(--s-6); }
.section-head .label { margin-bottom: var(--s-3); }
.section-head .lead { margin-top: var(--s-3); }
/* ---------- 4. Composants ---------- */
/* Label : petit texte en capitales avec un carré */
.label {
display: flex;
align-items: center;
gap: 10px;
font-size: var(--fs-label);
font-weight: 500;
line-height: 1;
letter-spacing: .12em;
text-transform: uppercase;
color: var(--text-faint);
}
.label::before { content: ""; width: 7px; height: 7px; background: currentColor; }
/* Titres */
.h1, .h2, .h3 { font-family: var(--font-title); font-weight: 500; text-wrap: balance; }
.h1 { font-size: var(--fs-h1); line-height: 1.02; letter-spacing: -.045em; }
.h2 { font-size: var(--fs-h2); line-height: 1.04; letter-spacing: -.04em; }
.h3 { font-size: var(--fs-h3); line-height: 1.2; letter-spacing: -.02em; }
.h1 strong, .h2 strong, .h3 strong { font-weight: 500; color: var(--text-faint); }
.section--dark .h2 strong, .section--dark .h3 strong { color: var(--on-dark-faint); }
/* Textes */
.lead { max-width: 640px; font-size: var(--fs-lead); line-height: 1.5; color: var(--text-soft); }
.text { max-width: 640px; color: var(--text-soft); }
.text + .text { margin-top: var(--s-2); }
.small { font-size: var(--fs-small); line-height: 1.5; }
/* Boutons : deux formats, une seule hauteur */
.btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 10px;
min-height: 52px;
padding: 0 var(--s-3);
border: 1px solid transparent;
border-radius: var(--radius);
font-size: 15px;
font-weight: 500;
line-height: 1;
text-decoration: none;
cursor: pointer;
transition: background-color .2s, color .2s, border-color .2s;
}
.btn--primary { background: var(--ink); color: var(--on-dark); }
.btn--primary:hover { background: #26303b; }
.btn--secondary { border-color: var(--line); background: transparent; color: var(--text); }
.btn--secondary:hover { border-color: var(--ink); }
.section--dark .btn--primary, .btn--light { background: var(--on-dark); color: var(--ink); }
.section--dark .btn--primary:hover, .btn--light:hover { background: var(--paper-2); }
.btn-row { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.btn .arrow { transition: transform .2s; }
.btn:hover .arrow { transform: translateX(4px); }
/* Liste à coches : une ligne = un trait fin au-dessus */
.checklist { border-top: 1px solid var(--line); }
.checklist li {
display: grid;
grid-template-columns: 24px 1fr;
gap: var(--s-2);
padding-block: var(--s-2);
border-bottom: 1px solid var(--line);
color: var(--text);
}
.checklist svg { width: 20px; height: 20px; margin-top: 2px; fill: none; stroke: var(--positive); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }
.checklist--negative svg { stroke: var(--negative); }
/* Accordéon : utilisé partout (compatibilité et FAQ), un seul composant */
.accordion { border-top: 1px solid var(--line); }
.accordion details { border-bottom: 1px solid var(--line); }
.accordion summary {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: var(--s-3);
padding-block: var(--s-3);
font-family: var(--font-body);
font-size: 16px;
font-weight: 500;
line-height: 24px;
letter-spacing: -.1px;
color: rgba(0, 0, 0, .9);
cursor: pointer;
list-style: none;
}
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::after {
content: "+";
flex: 0 0 auto;
width: 24px;
font-family: var(--font-body);
font-size: 24px;
line-height: 1;
text-align: center;
color: var(--text-faint);
}
.accordion details[open] summary::after { content: "−"; }
.accordion .answer { padding-bottom: var(--s-3); max-width: 680px; color: var(--text-soft); font-size: 16px; line-height: 24px; letter-spacing: -.1px; }
.accordion .answer > * + * { margin-top: var(--s-2); }
.accordion .answer .checklist { margin-top: var(--s-2); }
.accordion .answer .checklist li { padding-block: 12px; font-size: var(--fs-small); }
/* En-tête du site */
.header {
position: sticky;
top: 0;
z-index: 50;
height: var(--header-h);
background: var(--paper);
border-bottom: 1px solid var(--line);
}
.header .container { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s-4); }
.brand { font-family: var(--font-title); font-size: 21px; letter-spacing: -.03em; text-decoration: none; }
.nav { display: flex; align-items: center; gap: var(--s-4); }
.nav a:not(.btn) { font-size: var(--fs-small); text-decoration: none; color: var(--text-soft); transition: color .2s; }
.nav a:not(.btn):hover { color: var(--ink); }
.nav .btn { min-height: 44px; padding-inline: 20px; font-size: var(--fs-small); }
.menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: var(--radius); background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 18px; height: 1.5px; margin: 5px auto; background: var(--ink); }
/* Pied de page */
.footer { background: var(--ink); color: var(--on-dark); }
.footer-cta { padding-block: var(--s-7); border-bottom: 1px solid var(--line-dark); }
.footer-cta .container { display: grid; grid-template-columns: 1fr auto; gap: var(--s-5); align-items: end; }
.footer-cta .h2 { max-width: 780px; }
.footer-cols { padding-block: var(--s-6); display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: var(--s-5); }
.footer .label { margin-bottom: var(--s-2); color: var(--on-dark-faint); }
.footer li + li { margin-top: 10px; }
.footer li, .footer a { font-size: 16px; line-height: 24px; letter-spacing: -.1px; }
.footer a { text-decoration: none; color: var(--on-dark-soft); }
.footer a:hover { color: var(--on-dark); }
.footer .about-note { max-width: 320px; color: var(--on-dark-soft); font-size: 16px; line-height: 24px; letter-spacing: -.1px; }
.footer-bottom { padding-block: var(--s-3); border-top: 1px solid var(--line-dark); color: var(--on-dark-faint); font-size: 12px; }
.footer-bottom .container { display: flex; justify-content: space-between; gap: var(--s-3); }
/* ---------- 5. Blocs de page ---------- */
/* Hero : texte à gauche, photo à droite */
.hero { padding-block: var(--s-7) var(--section); }
.hero .grid { align-items: center; }
.hero-text { grid-column: 1 / span 7; }
.hero-text .label { margin-bottom: var(--s-4); }
.hero-text .lead { margin-top: var(--s-4); }
.hero-text .btn-row { margin-top: var(--s-5); }
.hero-photo { grid-column: 9 / span 4; }
.hero-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 90% 50%; }
/* À propos : photo à gauche, texte à droite */
.about-photo { grid-column: 1 / span 5; }
.about-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.about-body { grid-column: 7 / span 6; align-self: center; }
.about-body .label { margin-bottom: var(--s-3); }
.about-body .checklist { margin-top: var(--s-4); margin-bottom: var(--s-4); }
.about-body .lead { margin-top: var(--s-3); color: var(--text); }
/* Étapes : chaque ligne = numéro, titre, texte */
.steps { border-top: 1px solid var(--line-dark); }
.step {
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
column-gap: var(--s-4);
row-gap: var(--s-2);
padding-block: var(--s-5);
border-bottom: 1px solid var(--line-dark);
}
.step-num { grid-column: 1 / span 1; font-family: var(--font-title); font-size: var(--fs-h3); color: var(--on-dark-faint); line-height: 1.2; }
.step-title { grid-column: 2 / span 5; }
.step-title .kicker { margin-bottom: var(--s-1); font-size: var(--fs-label); letter-spacing: .12em; text-transform: uppercase; color: var(--on-dark-faint); }
.step-text { grid-column: 8 / span 5; color: var(--on-dark-soft); }
.step-text > * + * { margin-top: var(--s-2); }
/* Compatibilité : deux colonnes égales */
.split { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-6); row-gap: var(--s-6); }
.split-title { display: flex; align-items: center; gap: var(--s-2); margin-bottom: var(--s-3); }
.split-title .mark { display: grid; place-items: center; width: 32px; height: 32px; font-size: 16px; font-weight: 500; color: var(--on-dark); background: var(--positive); }
.split-title .mark--no { background: var(--negative); }
/* FAQ : titre à gauche, questions à droite */
.faq-head { grid-column: 1 / span 5; align-self: start; position: sticky; top: calc(var(--header-h) + var(--s-4)); }
.faq-head .label { margin-bottom: var(--s-3); }
.faq-head .lead { margin-top: var(--s-3); font-size: 16px; line-height: 24px; letter-spacing: -.1px; }
.faq-list { grid-column: 7 / span 6; }
/* ---------- 7. Responsive ---------- */
@media (max-width: 1023px) {
:host { --section: var(--s-7); --gutter: clamp(28px, 5.55vw, 80px); }
.hero-text { grid-column: 1 / -1; }
.hero-photo { grid-column: 1 / span 6; }
.about-photo { grid-column: 1 / span 5; }
.about-body { grid-column: 6 / -1; }
.step-title { grid-column: 2 / -1; }
.step-text { grid-column: 2 / -1; }
.faq-head { grid-column: 1 / -1; position: static; }
.faq-list { grid-column: 1 / -1; }
.footer-cols { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 809px) {
:host { --section: 72px; --gutter: 20px; --header-h: 64px; --fs-lead: 17px; --fs-h2: 40px; }
.menu-toggle { display: block; }
.nav {
position: absolute;
top: var(--header-h);
left: 0;
right: 0;
display: none;
flex-direction: column;
align-items: stretch;
gap: 0;
padding: var(--s-2) var(--gutter) var(--s-3);
background: var(--paper);
border-bottom: 1px solid var(--line);
}
.nav.is-open { display: flex; }
.nav a:not(.btn) { padding-block: 14px; font-size: 16px; border-bottom: 1px solid var(--line); }
.nav .btn { margin-top: var(--s-2); }
.section-head { margin-bottom: var(--s-5); }
.hero { padding-block: var(--s-5) var(--section); }
.hero-photo { grid-column: 1 / -1; }
.about-photo, .about-body { grid-column: 1 / -1; }
.btn-row .btn { flex: 1 1 100%; }
.step { padding-block: var(--s-4); }
.step-num { grid-column: 1 / -1; }
.step-title, .step-text { grid-column: 1 / -1; }
.split { grid-template-columns: 1fr; }
.accordion summary { font-size: 16px; }
.footer-cta .container { grid-template-columns: 1fr; align-items: start; }
.footer-cols { grid-template-columns: 1fr; gap: var(--s-4); }
.footer-bottom .container { flex-direction: column; }
.sticky-contact { left: var(--s-2); right: var(--s-2); bottom: var(--s-2); }
.sticky-contact .btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
html { scroll-behavior: auto; }
* { transition: none !important; }
}
:host{background:var(--ink)}
</style>
<footer class="footer">
<div class="container footer-cols">
<div>
<p class="label">Adam Spilmann</p>
<p class="about-note">J’accompagne votre entreprise de service avec des stratégies Google Ads et Meta Ads conçues pour générer davantage de demandes qualifiées, maîtriser vos coûts et développer durablement votre chiffre d’affaires.</p>
</div>
<div>
<p class="label">Services</p>
<ul>
<li><a href="../../services/consultant-google-ads/">Stratégie Google Ads</a></li>
<li><a href="../../services/consultant-facebook-ads/">Stratégie Facebook Ads</a></li>
<li><a href="../../services/consultant-audit-google-ads/">Audit Google Ads</a></li>
<li><a href="../../services/consultant-audit-facebook-ads/">Audit Facebook Ads</a></li>
<li><a href="../../services/consultant-landing-page-google-ads/">Création de page de vente</a></li>
<li><a href="../../services/consultant-google-ads-aux-resultats/">Partenaire publicitaire</a></li>
</ul>
</div>
<div>
<p class="label">Contact</p>
<ul>
<li><a href="mailto:adam@adamspilmann.fr">adam@adamspilmann.fr</a></li>
<li>Réponse sous 24 h ouvrées</li>
</ul>
</div>
<div>
<p class="label">Légal</p>
<ul>
<li><a href="../../mentions-legales.html">Mentions légales</a></li>
<li><a href="../../politique-de-confidentialite.html">Politique de confidentialité</a></li>
<li><a href="../../politique-de-cookies.html">Politique de cookies</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<div class="container"><p>© 2026 Adam Spilmann. Tous droits réservés.</p></div>
</div>
</footer>
</template>
</div>
<div class="qualif-overlay" id="qualif-overlay" aria-hidden="true">
<div class="qualif-dialog" role="dialog" aria-modal="true" aria-labelledby="qualif-title">
<div class="qualif-header">
<div class="qualif-brand">
<strong>Adam Spilmann</strong>
<span>Qualification du projet</span>
</div>
<button type="button" class="qualif-close" id="qualif-close" aria-label="Fermer">×</button>
</div>
<div class="qualif-progress"><div class="qualif-progress-bar" id="qualif-progress-bar"></div></div>
<div class="qualif-panel" data-panel="step-1">
<p class="qualif-question" id="qualif-title">Point important : je ne suis pas un sauveur d’entreprise.</p>
<p class="qualif-subtitle">
<span>Google Ads peut être extrêmement rentable, mais il faut un minimum de budget pour lancer, tester et optimiser une stratégie correctement.</span>
<span>On voit de tout sur les réseaux sociaux, mais non : 500 € ne suffisent pas pour transformer un compte en machine à générer des clients. J’ai monté des comptes à 10, 20, parfois 50 appels par jour, et aucun n’a démarré avec quelques centaines d’euros.</span>
<span>Je ne te demande pas de rouler sur l’or. En revanche, si tu as de grandes ambitions pour ton entreprise, il faut être prêt à mettre les moyens en face pour les atteindre.</span>
<span>La publicité est un levier de développement, pas une méthode miracle.</span>
</p>
<div class="qualif-answers">
<button type="button" class="qualif-answer" data-next="step-2" data-label="Je suis prêt à mettre les moyens pour me développer"><span class="dot" aria-hidden="true"></span><span>Je suis prêt à mettre les moyens pour me développer</span></button>
<button type="button" class="qualif-answer" data-next="result-no" data-label="Je préfère continuer sans investir dans mon acquisition"><span class="dot" aria-hidden="true"></span><span>Je préfère continuer sans investir dans mon acquisition</span></button>
</div>
</div>
<div class="qualif-panel" data-panel="step-2">
<p class="qualif-question">Quand veux-tu commencer à recevoir plus de clients grâce à la publicité ?</p>
<div class="qualif-answers">
<button type="button" class="qualif-answer" data-next="step-3" data-label="Le plus rapidement possible"><span class="dot" aria-hidden="true"></span><span>Le plus rapidement possible</span></button>
<button type="button" class="qualif-answer" data-next="step-3" data-label="Dans les semaines à venir"><span class="dot" aria-hidden="true"></span><span>Dans les semaines à venir</span></button>
<button type="button" class="qualif-answer" data-next="result-no" data-label="Je compare actuellement différentes offres"><span class="dot" aria-hidden="true"></span><span>Je compare actuellement différentes offres</span></button>
</div>
</div>
<div class="qualif-panel" data-panel="step-3">
<p class="qualif-question">Mise en situation FICTIVE</p>
<p class="qualif-subtitle"><span>Une solution pourrait permettre de générer 50 000 € de chiffre d’affaires supplémentaire chaque mois. Sa mise en place représente un investissement initial de 5 000 €. Quelle serait ta première réaction ?</span></p>
<div class="qualif-answers">
<button type="button" class="qualif-answer" data-next="result-ok" data-label="L’investissement me semble cohérent si le plan est sérieux et le potentiel crédible."><span class="dot" aria-hidden="true"></span><span>L’investissement me semble cohérent si le plan est sérieux et le potentiel crédible.</span></button>
<button type="button" class="qualif-answer" data-next="result-no" data-label="5 000 €, c’est trop cher, même si cela me rapporte 50 000 €."><span class="dot" aria-hidden="true"></span><span>5 000 €, c’est trop cher, même si cela me rapporte 50 000 €.</span></button>
<button type="button" class="qualif-answer" data-next="result-ok" data-label="Si cela me rapporte 50 000 €, je suis prêt à investir 5 000 €."><span class="dot" aria-hidden="true"></span><span>Si cela me rapporte 50 000 €, je suis prêt à investir 5 000 €.</span></button>
<button type="button" class="qualif-answer" data-next="result-no" data-label="Je cherche actuellement une solution aux alentours de 500 €."><span class="dot" aria-hidden="true"></span><span>Je cherche actuellement une solution aux alentours de 500 €.</span></button>
</div>
<p class="qualif-disclaimer">Cette situation est un exemple entièrement fictif. Les montants présentés ne correspondent pas nécessairement au prix d’une prestation ou aux résultats pouvant être obtenus.</p>
</div>
<div class="qualif-panel qualif-result ok" data-panel="result-ok">
<div class="qualif-result-icon">✓</div>
<p class="qualif-result-label">Ton profil semble correspondre</p>
<p class="qualif-result-title">Super, d’après tes réponses, il y a de fortes chances que je puisse t’aider à te développer !</p>
<p class="qualif-result-copy">Je t’invite à m’envoyer directement un message WhatsApp en cliquant sur le bouton pour que nous puissions échanger ensemble.</p>
<a class="qualif-whatsapp" id="qualif-whatsapp-link" href="#" target="_blank" rel="noopener noreferrer">
<svg viewbox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M19.05 4.91A9.82 9.82 0 0 0 12.03 2C6.57 2 2.13 6.44 2.13 11.9c0 1.75.46 3.46 1.33 4.96L2 22l5.27-1.38a9.84 9.84 0 0 0 4.74 1.21h.01c5.46 0 9.9-4.44 9.9-9.9a9.8 9.8 0 0 0-2.87-7.02Zm-7.02 15.25h-.01a8.14 8.14 0 0 1-4.15-1.14l-.3-.18-3.13.82.84-3.05-.2-.31a8.18 8.18 0 0 1-1.25-4.39c0-4.5 3.66-8.16 8.17-8.16 2.18 0 4.22.85 5.76 2.39a8.09 8.09 0 0 1 2.38 5.77c0 4.5-3.66 8.16-8.16 8.16Zm4.48-6.11c-.25-.12-1.47-.72-1.7-.8-.23-.09-.4-.12-.57.12-.17.25-.65.8-.8.97-.15.17-.29.19-.54.06-.25-.12-1.04-.38-1.98-1.22-.73-.65-1.22-1.45-1.37-1.69-.14-.25-.02-.38.11-.5.11-.11.25-.29.37-.43.12-.15.17-.25.25-.42.08-.17.04-.31-.02-.43-.06-.12-.57-1.37-.78-1.88-.21-.5-.42-.43-.57-.43h-.49c-.17 0-.43.06-.66.31-.23.25-.87.85-.87 2.08s.89 2.41 1.01 2.58c.12.17 1.76 2.69 4.27 3.77.6.26 1.07.42 1.43.54.6.19 1.14.16 1.57.1.48-.07 1.47-.6 1.68-1.18.21-.59.21-1.09.15-1.19-.06-.11-.23-.17-.48-.29Z"/></svg>
<span>Clique ici pour lancer une conversation WhatsApp</span>
</a>
<p class="qualif-desktop-note">Tu es sur ordinateur ? Envoie-moi directement un message à ce numéro :</p>
<p class="qualif-desktop-number">+33 7 59 60 49 17</p>
</div>
<div class="qualif-panel qualif-result no" data-panel="result-no">
<div class="qualif-result-icon">×</div>
<p class="qualif-result-label">Ton profil semble moins correspondre</p>
<p class="qualif-result-title">Il semblerait, d’après tes réponses, que tu ne sois peut-être pas éligible à mon offre.</p>
<p class="qualif-result-copy">Cela ne signifie pas que ton projet n’est pas intéressant. Tu peux toujours m’envoyer directement un message sur Instagram pour m’expliquer ta situation.</p>
<a class="qualif-instagram" href="#" target="_blank" rel="noopener noreferrer">M’envoyer un message sur Instagram</a>
</div>
</div>
</div>
<div class="sticky-contact" id="sticky-contact">
<button type="button" class="sticky-contact-btn" data-open-qualif>
<span class="sticky-contact-dot" aria-hidden="true"></span>
Je souhaite être recontacté
</button>
</div>
<script>
// Standard visuel global : libellés gris clair.
(() => {
["intro-frame","plan-frame","intro2-frame","results-frame","about-frame","pourqui-frame"].forEach((id) => {
const root = document.querySelector(`#${id}`)?.shadowRoot;
if (!root) return;
const style = document.createElement("style");
style.textContent = `.eyebrow{min-height:28px!important;display:flex!important;width:fit-content!important;align-items:center!important;gap:8px!important;padding:8px 12px!important;border-radius:999px!important;font-family:"Inter","Inter Placeholder",sans-serif!important;font-size:12px!important;font-weight:500!important;line-height:12px!important;letter-spacing:1.2px!important;text-transform:uppercase!important;background:rgba(0,0,0,.05)!important;color:rgba(0,0,0,.8)!important}.eyebrow:before,.eyebrow::before{width:6px!important;height:6px!important;flex:0 0 6px!important;border-radius:50%!important;background:currentColor!important}`;
root.appendChild(style);
});
// Variante locale de comparaison : les nouvelles sections utilisent
// uniquement les neutres documentés dans le style guide.
["intro-frame","plan-frame","intro2-frame"].forEach((id) => {
const root = document.querySelector(`#${id}`)?.shadowRoot;
if (!root) return;
const style = document.createElement("style");
style.textContent = `:host{color:rgba(0,0,0,.9)!important}.title,.copy,.intro,.list li,.conclusion,.card,.card h3,.card p{color:rgba(0,0,0,.9)!important}.section{background:#f7f7f7!important}`;
root.appendChild(style);
});
const about = document.querySelector("#about-frame")?.shadowRoot;
if (about) {
const style = document.createElement("style");
style.textContent = `.about{padding-bottom:120px!important}@media(max-width:700px){.about{padding-bottom:72px!important}}`;
about.appendChild(style);
}
})();
// Les scripts placés dans un Shadow DOM déclaratif restent inertes après
// le parsing HTML. Les interactions sont donc initialisées depuis la page.
const heroRoot = document.querySelector("#hero-frame")?.shadowRoot;
if (heroRoot) {
const menuToggle = heroRoot.querySelector(".menu-toggle");
const mobileMenu = heroRoot.querySelector("#mobile-menu");
const closeMenu = () => {
menuToggle.setAttribute("aria-expanded", "false");
menuToggle.setAttribute("aria-label", "Ouvrir le menu");
mobileMenu.classList.remove("is-open");
};
menuToggle?.addEventListener("click", () => {
const willOpen = menuToggle.getAttribute("aria-expanded") !== "true";
menuToggle.setAttribute("aria-expanded", String(willOpen));
menuToggle.setAttribute("aria-label", willOpen ? "Fermer le menu" : "Ouvrir le menu");
mobileMenu.classList.toggle("is-open", willOpen);
});
heroRoot.querySelectorAll("[data-scroll-target]").forEach((control) => {
control.addEventListener("click", (event) => {
event.preventDefault();
document.querySelector(control.dataset.scrollTarget)?.scrollIntoView({ behavior: "smooth", block: "start" });
closeMenu();
});
});
heroRoot.querySelectorAll("[data-open-qualif]").forEach((control) => {
control.addEventListener("click", (event) => {
if (typeof window.openQualifPopup !== "function") return;
event.preventDefault();
window.openQualifPopup();
closeMenu();
});
});
}
const pourQuiRoot = document.querySelector("#pourqui-frame")?.shadowRoot;
if (pourQuiRoot) {
pourQuiRoot.querySelectorAll(".acc-list").forEach((list) => {
const items = [...list.querySelectorAll(".acc-item")];
const applyState = () => {
items.forEach((item) => {
const panel = item.querySelector(".acc-panel");
panel.style.maxHeight = item.dataset.open === "true" ? `${panel.scrollHeight}px` : "0px";
});
};
items.forEach((item) => {
item.querySelector(".acc-trigger")?.addEventListener("click", () => {
const isOpen = item.dataset.open === "true";
items.forEach((other) => { other.dataset.open = "false"; });
item.dataset.open = isOpen ? "false" : "true";
applyState();
});
});
applyState();
document.fonts?.ready.then(applyState);
window.addEventListener("load", applyState);
window.addEventListener("resize", applyState);
});
}
const enableExclusiveDetails = (root) => {
if (!root) return;
const details = [...root.querySelectorAll("details")];
details.forEach((item) => {
item.addEventListener("toggle", () => {
if (!item.open) return;
details.forEach((other) => {
if (other !== item) other.open = false;
});
});
});
};
enableExclusiveDetails(document.querySelector("#plan-frame")?.shadowRoot);
enableExclusiveDetails(document.querySelector("#faq-frame")?.shadowRoot);
const footerRoot = document.querySelector("#footer-frame")?.shadowRoot;
if (footerRoot) {
footerRoot.querySelectorAll("[data-open-qualif]").forEach((control) => {
control.addEventListener("click", (event) => {
if (typeof window.openQualifPopup !== "function") return;
event.preventDefault();
window.openQualifPopup();
});
});
footerRoot.querySelectorAll("[data-scroll-target]").forEach((control) => {
control.addEventListener("click", (event) => {
event.preventDefault();
document.querySelector(control.dataset.scrollTarget)?.scrollIntoView({ behavior: "smooth", block: "start" });
});
});
}
// Popup de préqualification.
const qualifOverlay = document.querySelector("#qualif-overlay");
const qualifPanels = document.querySelectorAll(".qualif-panel");
const qualifProgressBar = document.querySelector("#qualif-progress-bar");
const qualifWhatsappLink = document.querySelector("#qualif-whatsapp-link");
const qualifCloseBtn = document.querySelector("#qualif-close");
const QUALIF_PROGRESS = { "step-1": "33%", "step-2": "66%", "step-3": "100%", "result-ok": "100%", "result-no": "100%" };
const QUALIF_LABELS = { "step-1": "Budget & ambition", "step-2": "Calendrier", "step-3": "Mise en situation" };
const QUALIF_WHATSAPP_NUMBER = "33759604917";
let qualifAnswers = {};
const qualifShowPanel = (id) => {
qualifPanels.forEach((panel) => {
panel.classList.toggle("is-active", panel.dataset.panel === id);
});
qualifProgressBar.style.width = QUALIF_PROGRESS[id] || "0%";
};
const qualifBuildWhatsappLink = () => {
const lines = Object.keys(QUALIF_LABELS)
.filter((id) => qualifAnswers[id])
.map((id) => `• ${QUALIF_LABELS[id]} : ${qualifAnswers[id]}`)
.join("\n");
const message = `Bonjour Adam, je viens de remplir ton questionnaire.\n\nVoici ma situation :\n${lines}\n\nJe souhaiterais échanger avec toi pour voir ce qu'il est possible de mettre en place.`;
return `https://wa.me/${QUALIF_WHATSAPP_NUMBER}?text=${encodeURIComponent(message)}`;
};
window.openQualifPopup = () => {
qualifAnswers = {};
qualifShowPanel("step-1");
qualifOverlay.classList.add("is-open");
qualifOverlay.setAttribute("aria-hidden", "false");
document.body.style.overflow = "hidden";
};
window.closeQualifPopup = () => {
qualifOverlay.classList.remove("is-open");
qualifOverlay.setAttribute("aria-hidden", "true");
document.body.style.overflow = "";
};
qualifCloseBtn.addEventListener("click", () => window.closeQualifPopup());
qualifOverlay.addEventListener("click", (event) => {
if (event.target === qualifOverlay) window.closeQualifPopup();
});
document.addEventListener("keydown", (event) => {
if (event.key === "Escape" && qualifOverlay.classList.contains("is-open")) window.closeQualifPopup();
});
document.querySelectorAll(".qualif-answer").forEach((button) => {
button.addEventListener("click", () => {
const panel = button.closest(".qualif-panel");
qualifAnswers[panel.dataset.panel] = button.dataset.label;
const next = button.dataset.next;
if (next === "result-ok") qualifWhatsappLink.href = qualifBuildWhatsappLink();
qualifShowPanel(next);
});
});
// Bouton de contact sticky : apparaît une fois le hero dépassé, pour ne
// pas doubler les CTA déjà visibles dedans.
const stickyContact = document.querySelector("#sticky-contact");
const stickyContactBtn = stickyContact?.querySelector(".sticky-contact-btn");
stickyContactBtn?.addEventListener("click", () => window.openQualifPopup());
const heroFrame = document.querySelector("#hero-frame");
if (stickyContact && heroFrame && "IntersectionObserver" in window) {
const heroObserver = new IntersectionObserver(
([entry]) => stickyContact.classList.toggle("is-visible", !entry.isIntersecting),
{ rootMargin: "-80% 0px 0px 0px" }
);
heroObserver.observe(heroFrame);
}
</script>
</body>
</html>