/* Code personnalisé global du live (<head>), dans son ordre. Régénérer par scripts/split-webflow-css.mjs. */
/* Consent Pro script (snippet officiel de l'app Consent Pro, en premier dans le head comme demandé par l'installation) -->
<script src="https://api.consentpro.com/v2/cdn/runtime/config/687de301bcd0eb61bff099c3.js" data-consentpro-script="config" data-consentpro-site-id="687de301bcd0eb61bff099c3"></script>
<script src="https://api.consentpro.com/v2/cdn/runtime.js" data-consentpro-script="runtime" data-consentpro-site-id="687de301bcd0eb61bff099c3"></script>

<!-- 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-WKN8JB9P');</script>
<!-- End Google Tag Manager -->

<!-- Pages de lecture (blog, outils, références, auteurs, presse, pages légales, en français et en anglais) : pas de chatbot. Staging (webflow.io) : classe nq-staging pour les prototypes. Sélecteur de langue : libellés courts (Français, English) -->
<script>if(/^\/(en\/)?(blog|outils|references|auteurs|presse|mentions-legales|politique-de-confidentialite|cgv)(\/|$)/.test(location.pathname))document.documentElement.classList.add("nq-lecture");if(/\.webflow\.io$/.test(location.hostname))document.documentElement.classList.add("nq-staging");document.addEventListener("DOMContentLoaded",function(){var L={"French":"Français","French (France)":"Français","English (United States)":"English","English":"English"};document.querySelectorAll(".language_option div").forEach(function(d){var t=d.textContent.trim();if(L[t])d.textContent=L[t]})});</script>

<!-- Sélecteur de langue sur ordinateur (19/10/2026) : même bascule FR/EN que dans le menu mobile, à la place du menu déroulant à drapeau (le site a atteint la limite de 15 scripts enregistrés) -->
<script>(function(){var d=document,s=d.createElement("style");s.textContent="@media (min-width:992px){.nav_component .nav_right .w-locales-list{display:none!important}.nav_right>.nq-lang-d{display:flex;gap:4px;align-items:center}.nq-lang-d a{font-size:14px;font-weight:500;line-height:20px;color:rgba(255,255,255,.55);padding:6px 10px;border-radius:4px;text-decoration:none;transition:color .2s,background-color .2s}.nq-lang-d a:hover{color:#fff}.nq-lang-d a.is-on{color:#fff;background:rgba(255,255,255,.08)}}.nq-lang-d{display:none}";d.head.appendChild(s);function go(){var r=d.querySelector(".nav_component .nav_right"),o=[].slice.call(d.querySelectorAll(".nav_component .language_option"));if(!r||o.length<2||r.querySelector(":scope>.nq-lang-d"))return;var w=d.createElement("div");w.className="nq-lang-d";o.forEach(function(a){var l=d.createElement("a"),h=a.getAttribute("hreflang")||"";l.href=a.getAttribute("href");l.textContent=(h||a.textContent.trim()).slice(0,2).toUpperCase();l.setAttribute("hreflang",h);if(a.classList.contains("w--current")){l.className="is-on";l.setAttribute("aria-current","page")}w.appendChild(l)});r.insertBefore(w,r.querySelector(".desktop-only"))}d.readyState=="loading"?d.addEventListener("DOMContentLoaded",go):go()})();</script>

<!-- Navigation, performances (21/10/2026) : sur ordinateur, les images des sous-menus se chargent dès que la souris approche de la nav (ou quand la page est au repos), à leur taille d'affichage, pour ne plus apparaître en retard ; rien n'est chargé sur tablette et mobile -->
<script>(function(){var d=document,m=matchMedia("(min-width:992px)"),S={nav_dropdown_image:"560px",nav_dropdown_photo:"280px","project-image-mobile":"420px"},done;function warm(){if(done||!m.matches)return;done=1;d.querySelectorAll(".nav_component .nav_dropdown_container img").forEach(function(i){for(var k in S)if(i.classList.contains(k)&&i.srcset)i.sizes=S[k];i.decoding="async";i.loading="eager"})}function go(){var n=d.querySelector(".nav_component");if(n)n.addEventListener("pointerenter",warm,{once:true});addEventListener("load",function(){setTimeout(function(){(window.requestIdleCallback||setTimeout)(warm)},1500)})}d.readyState=="loading"?d.addEventListener("DOMContentLoaded",go):go()})();</script>

<!-- Tableaux des rich text : design unique (référence : top 10 de /blog/meilleures-agences-webflow-france) */
.w-richtext :has(> table){width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--background-light--secondary-bg-light);border:var(--_borders---border-width--m) solid var(--border--border-light);border-radius:8px}
.w-richtext :has(> table):not(.nq-scroll){margin:24px 0}
.w-richtext table{width:100%;margin:0;border-collapse:collapse;border-spacing:0;table-layout:auto;font-size:13px;line-height:1.5;color:#374151;background:transparent}
.w-richtext table thead th{text-align:left;vertical-align:bottom;font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#9ca3af;padding:14px;border:0;border-bottom:var(--_borders---border-width--m) solid var(--border--border-light);background:transparent}
.w-richtext table tbody th,.w-richtext table tbody td,.w-richtext table tr > td{padding:16px 14px;text-align:left;vertical-align:top;border:0;border-bottom:var(--_borders---border-width--m) solid var(--border--border-light);font-size:13px;font-weight:400;color:#374151;background:transparent}
.w-richtext table tbody th{font-weight:600;color:#1a1a1a}
.w-richtext table tbody tr:last-child th,.w-richtext table tbody tr:last-child td{border-bottom:0}
@media (max-width:600px){.w-richtext table{font-size:12px}.w-richtext table tbody th,.w-richtext table tbody td{padding:12px 10px;font-size:12px}}
/* Tableaux dont le CSS intégré est ciblé par identifiant : alignement sur le même design */
html body #nq-criteres,html body #nq-budgets{background:#f5f5f5;border:var(--_borders---border-width--m) solid var(--border--border-light);border-radius:8px}
html body #nq-criteres table,html body #nq-budgets table,html body #nq-agences-web table,html body #nq-budgets-techno table{font-size:13px}
html body #nq-criteres th,html body #nq-criteres td,html body #nq-budgets th,html body #nq-budgets td{border:0;border-bottom:var(--_borders---border-width--m) solid var(--border--border-light);background:transparent;padding:16px 14px;color:#374151;font-weight:400}
html body #nq-criteres thead th,html body #nq-budgets thead th,html body #nq-agences-web thead th,html body #nq-budgets-techno thead th{font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#9ca3af;padding:14px;border-bottom:var(--_borders---border-width--m) solid var(--border--border-light);background:transparent}
html body #nq-criteres tbody th,html body #nq-budgets tbody th,html body #nq-budgets-techno tbody th{font-weight:600;color:#1a1a1a}
html body #nq-criteres tbody tr:last-child th,html body #nq-criteres tbody tr:last-child td,html body #nq-budgets tbody tr:last-child th,html body #nq-budgets tbody tr:last-child td{border-bottom:0}
html body #nq-agences-web .nq-scroll,html body #nq-budgets-techno .nq-scroll{background:#f5f5f5;border:var(--_borders---border-width--m) solid var(--border--border-light);border-radius:8px}
html body #nq-agences-web tbody th,html body #nq-agences-web tbody td,html body #nq-budgets-techno tbody th,html body #nq-budgets-techno tbody td{border-bottom-color:var(--border--border-light);border-bottom-width:var(--_borders---border-width--m);color:#374151}
html body #nq-agences-web .nq-n{font-weight:600;color:#1a1a1a;font-size:14px;line-height:1.3}
html body #nq-agences-web .nq-r{color:#9ca3af;font-weight:600}
html body #nq-agences-web .nq-badge{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 7px;border-radius:4px;line-height:1;margin-left:4px}
html body #nq-agences-web .nq-meta{color:#9ca3af;font-size:11.5px}
html body #nq-agences-web tr.nq-pick th,html body #nq-agences-web tr.nq-pick td{background:rgba(142,47,250,.05)}
html body #nq-agences-web tr.nq-pick th{box-shadow:inset 1px 0 0 0 #8e2ffa}
html body #nq-budgets-techno .nq-strong{font-weight:600;color:#1a1a1a}
html body #nq-agences-web .nq-src,html body #nq-budgets-techno .nq-src{font-size:11.5px;color:#9ca3af;font-style:italic}
@media (max-width:600px){html body #nq-criteres table,html body #nq-budgets table,html body #nq-agences-web table,html body #nq-budgets-techno table{font-size:12px}html body #nq-criteres th,html body #nq-criteres td,html body #nq-budgets th,html body #nq-budgets td{padding:12px 10px}}
/* Gras des rich text et des FAQ : suit la variable Paragraph/Font-family (neutralise les règles "Poppins 600" et "Poppins 700" du composant Global Code) */
html body .text-rich-text strong,html body .section_faq .faq_answer b,html body .section_faq .faq_answer strong{font-family:inherit}
html body .section_faq .faq_answer :is(b,strong){font-weight:600}
/* Système typo : Cal Sans 700 pour les vrais titres et les libellés courts de structure ; Geist pour le reste (400 texte, 500 interface, menu et titres de cartes, 600 gras) */
html body :is(h2,h3,h4,h5,h6):is(.text-size-regular,.text-size-medium,.text-size-small,.text-weight-medium,.text-weight-semibold,.text-weight-bold){font-family:var(--_typography---paragraph--font-family),sans-serif;font-weight:500}
html body :is(p,li,td,blockquote) :is(strong,b){font-weight:600}
html body :is(.references_name,.project-title,.article-title,.faq_question,.nav_dropdown_header_text) :is(strong,b){font-weight:inherit}
@media (max-width:767px){html body .text-rich-text h2{font-family:var(--_typography---heading--font-family-small),sans-serif;font-weight:700}}
/* Boutons : un seul survol pour tous. Le fond s'assombrit légèrement (s'éclaircit sur les boutons sombres) en 0,25 s, la flèche avance quand le bouton en a une (interaction Webflow), plus d'inversion de couleurs */
html body :is(.button,.button-visio,.call-banner){transition:filter .25s ease,background-color .25s ease,color .25s ease}
html body .button:hover{filter:brightness(.92)}
html body :is(.button.dark-6,.button-visio,.call-banner):hover{filter:brightness(1.45)}
html body .button.is-tertiary:hover{background-color:#fafafa;background-image:none;color:#000;outline:0}
html body .button-visio:hover{background-color:#1c1e1e;color:#fff}
/* Bordures : une seule épaisseur fine (0,5 px, variables Border Width/M et S) ; Border/Border sur fond sombre, Border/Border Light sur fond clair (même contraste) ; 2 px réservé au repère de la section active du sommaire */
html body [fc-toc="content"] h2{border-top-color:var(--border--border-light)}
html body .section_case .line{border-top-color:var(--border--border-light)}
/* Liens : une logique par type. Lien texte isolé : trait de 1 px qui se dessine de gauche à droite, comme « Voir le cas client ». Lien dans un paragraphe : couleur du paragraphe (le style global des liens est blanc, illisible sur fond clair), toujours souligné, le trait fonce au survol. Icône ou bloc auteur : opacité 0,7. Carte entièrement cliquable : bordure Border/Border Hover. Onglet : fond léger. Sommaire : le trait de gauche fonce */
html body .underline-link{background-color:currentColor}
html body :is(.rollover,.breadcrumb_references){text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:background-size .3s ease,color .3s ease}
html body :is(.rollover,.breadcrumb_references):hover{background-size:100% 1px;color:var(--text-light--primary-light);transition-duration:.4s}
/* Lien qui a déjà sa barre animée (underline-link) : pas de second trait */
html body a:has(.underline-link) :is(.rollover,.breadcrumb_references){background-image:none}
html body .w-richtext a:not([class]){color:inherit}
html body :is(.w-richtext a:not([class]),.contact_policy-label-link,.legal-link){text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent);transition:text-decoration-color .3s ease}
html body :is(.w-richtext a:not([class]),.contact_policy-label-link,.legal-link):hover{text-decoration-color:currentColor}
html body :is(.team_member-social,.post_author-details,.case_author-details){transition:opacity .3s ease}
html body :is(.team_member-social,.post_author-details,.case_author-details):hover{opacity:.7}
html body :is(.references_card,.article-card,.tools-card,.hero-blog_article-card-image-wrapper){transition:border-color .3s ease}
html body :is(.references_card,.article-card,.tools-card):hover,html body .hero-blog_article-card:hover .hero-blog_article-card-image-wrapper{border-color:var(--border--border-hover)}
html body :is(.faq_tab,.prices_tab):not(.w--current){transition:background-color .3s ease}
html body :is(.faq_tab,.prices_tab):not(.w--current):hover{background-color:rgba(255,255,255,.06)}
html body :is(.toc_h2,.toc_h3,.toc_h4,.toc_h5,.toc_h6){transition:border-color .3s ease}
html body :is(.toc_h2,.toc_h3,.toc_h4,.toc_h5,.toc_h6):not(.u-toc-current-link):hover{border-left-color:var(--text-dark--primary-dark)}
/* Finitions (audit du 13/10/2026, revu le 18/10) : les titres gardent text-wrap pretty (pas de mot seul sur la dernière ligne) ; les textes courants remplissent toute la ligne disponible (wrap), demande d'Amaury du 18/10 */
html body :is(h1,h2,h3,h4,h5,h6,[class*="heading-style-"]){text-wrap:pretty}
html body :is(blockquote,p,li,figcaption){text-wrap:wrap}
html body .w-richtext :is(p,li,blockquote,a){overflow-wrap:break-word}
/* Gras : 600 partout dans le texte ; dans un titre, le gras suit le titre */
html body :is(strong,b){font-weight:600}
html body :is(h1,h2,h3,h4,h5,h6,[class*="heading-style-"],.cs-stat-value,.numbers_item-title,.pricing_card-heading,.succes_heading,.calculator_simulator-wrap-result) :is(strong,b){font-weight:inherit}
/* Cas client sans adresse de site : le lien « Visualiser le site » ne s'affiche pas */
html body .hero-case-studies_content a.link[href="#"]{display:none}
/* Logos clients des cartes cas client : même hauteur optique */
html body .case-studies_logo-client{width:auto;height:1.75rem;max-width:7rem;object-fit:contain;object-position:left center}
/* Pictos : taille fixe, jamais écrasés par un conteneur flex */
html body :is(.reviewer-image,.case_author-image,.tools-post_author-image,.cta_icon,.icon_medium,.icon-medium,.team-avatar,.hero-business_avatar){flex-shrink:0}
html body :is(.team_social-icon,.team_social-icon svg){width:1rem;height:1rem}
/* Focus clavier : visible sur fond sombre comme sur fond clair */
html body :is(a,button,[role="button"],summary,[tabindex]):focus-visible{outline:2px solid currentColor;outline-offset:3px}
html body :is(.button,.button-visio,.call-banner,.prices_tab,.faq_tab):focus-visible{outline:2px solid var(--background-light--primary-bg-light);outline-offset:2px;box-shadow:0 0 0 4px var(--background-dark--primary-bg-dark)}
html body :is(.w-input,.w-select):focus{border-color:var(--text-light--secondary-light);outline:0}
html body .w-checkbox-input--inputType-custom.w--redirected-focus{box-shadow:0 0 0 2px var(--text-light--secondary-light)}
/* Case de consentement alignée sur les champs : le clearfix Webflow comptait comme un élément du flex */
html body .contact_policy-wrapper::before,html body .contact_policy-wrapper::after{content:none}
/* Écrans tactiles : zone de clic d'au moins 36 px sans changer l'affichage */
@media (max-width:991px),(pointer:coarse){
html body :is(.rollover,.breadcrumb_references,.ia-summary-icon,.team_member-social,.pagination_page-button,.swiper-pagination-bullet){position:relative}
html body :is(.rollover,.breadcrumb_references)::after{content:"";position:absolute;inset:-8px -4px}
html body .ia-summary-icon::after{content:"";position:absolute;inset:-8px -2px}
html body :is(.team_member-social,.pagination_page-button)::after{content:"";position:absolute;inset:-8px}
html body .swiper-pagination-bullet::after{content:"";position:absolute;inset:-12px -4px}
}
/* Quiz intégré à un article : polices du site au lieu de Poppins et de l'ancienne Cal Sans */
html body #nq-quiz-wrap{font-family:var(--_typography---paragraph--font-family),sans-serif}
html body #nq-quiz-wrap :is(.nq-btn-primary,.nq-cta-main,.nq-cta-retry){font-family:inherit}
html body #nq-quiz-wrap :is(.nq-title,.nq-result-title){font-family:var(--_typography---heading--font-family-small),sans-serif;font-weight:700}
/* Navigation (15/10/2026, bouton ajusté le 16/10, menu Entreprise le 21/10) : liens en 16 px 500 de gauche à droite (comme les liens du site), bouton en 14 px sur 40 px de haut (hauteur des boutons du site), logo inchangé, fond flouté et assombri sous un menu ouvert, sous-menus dans leur mise en page d'origine. Menu Entreprise : lien survolé (ou page en cours, sinon le premier) en blanc avec son trait, comme les autres menus. Passage d'un menu à l'autre : le menu quitté disparaît aussitôt (plus de superposition pendant le délai de fermeture). Mobile : entrées en 20 px, FR en 14 px, actions groupées en bas (bouton, puis Espace client), apparition en fondu */
html body::after{content:"";position:fixed;inset:0;z-index:999;pointer-events:none;background:rgba(10,11,12,.4);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:0;visibility:hidden;transition:opacity .25s cubic-bezier(.4,0,.2,1),visibility 0s linear .25s}
/* Espace client (21/10/2026), dans la nav et le footer : lien externe signalé par la flèche du site tournée vers le haut à droite, comme le lien vers les avis ; dans la barre, 24 px entre la flèche et le bouton, comme entre FR/EN et Espace client */
html body a[data-nav="espace-client"]{position:relative;margin-right:1em}
html body a[data-nav="espace-client"]::before{content:"";position:absolute;right:-1em;top:50%;width:.75em;height:.75em;margin-top:-.375em;background:currentColor;-webkit-mask:url("/assets/webflow/Arrow-right.svg") center/contain no-repeat;mask:url("/assets/webflow/Arrow-right.svg") center/contain no-repeat;transform:rotate(-45deg);pointer-events:none}
@media (min-width:992px){
html body:has(.nav_component .nav_dropdown_container.w--open)::after{opacity:1;visibility:visible;transition:opacity .25s cubic-bezier(.4,0,.2,1),visibility 0s}
html body .nav_component :is(.nav_dropdown_toggle>div:first-child,.nav_menu_link,.nav_right .language_text,.nav_right .rollover.is-nav){font-size:16px;font-weight:500;line-height:24px}
html body .nav_component .nav_right .btn-text{font-size:14px;font-weight:500;line-height:20px}
html body .nav_component .nav_right .button{height:40px;min-height:40px;padding-top:0;padding-bottom:0;align-items:center}
html body .nav_component .nav_right .rollover.is-nav{height:36px;background-position:0 calc(50% + 12px)}
html body .nav_component .nav_dropdown_toggle{gap:6px;background-color:transparent}
html body .nav_component .nav_toggle-icon{font-size:14px;width:14px;height:14px;transition:transform .3s cubic-bezier(.4,0,.2,1)}
html body .nav_component .is-entreprise .nav_dropdown_item:is(:hover,.w--current),html body .nav_component .is-entreprise .nav_dropdown_left:not(:has(.nav_dropdown_item:hover,.nav_dropdown_item.w--current)) .nav_dropdown_item:first-of-type{color:var(--text-light--primary-light);border-right-color:var(--text-light--primary-light)}
html body .nav_component .nav_menu-main:has(>.nav_dropdown:hover,>.nav_menu_link:hover)>.nav_dropdown:not(:hover)>.nav_dropdown_container{display:none!important}
html body .nav_component .nav_right .desktop-only>a[data-nav="espace-client"]{margin-right:calc(1em + 16px)}
}
@media (max-width:991px){
html body .nav_component .nav_brand{padding-left:0}
html body .nav_component .nav_right .language_text{font-size:14px}
html body .nav_component .nav_menu-main{gap:20px}
html body .nav_component :is(.nav_dropdown_toggle>div:first-child,.nav_menu_link){font-size:20px;font-weight:500;line-height:28px}
html body .nav_component .nav_toggle-icon{font-size:16px;width:16px;height:16px}
html body .nav_component .button-group_navbar{display:grid;grid-template-columns:1fr auto;align-items:center;row-gap:16px;margin-top:32px;padding-top:24px;border-top:.5px solid rgba(255,255,255,.12)}
html body .nav_component .button-group_navbar>.button{grid-column:1/-1;order:-1;justify-content:center;height:40px;min-height:40px}
html body .nav_component .button-group_navbar>.rollover.is-nav{margin:0;align-self:center;justify-self:start}
html body .nav_component .button-group_navbar :is(.button div,.language_text){font-size:14px}
html body .nav_component .w-nav-overlay :is(.nav_menu-main>*,.button-group_navbar){animation:nqNavIn .45s cubic-bezier(.2,0,0,1) both}
html body .nav_component .w-nav-overlay .nav_menu-main>:nth-child(2){animation-delay:.03s}
html body .nav_component .w-nav-overlay .nav_menu-main>:nth-child(3){animation-delay:.06s}
html body .nav_component .w-nav-overlay .nav_menu-main>:nth-child(4){animation-delay:.09s}
html body .nav_component .w-nav-overlay .nav_menu-main>:nth-child(5){animation-delay:.12s}
html body .nav_component .w-nav-overlay .button-group_navbar{animation-delay:.15s}
}
@keyframes nqNavIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* Sélecteur de langue (15/10/2026) : liste aux couleurs des cartes du site (fond #1c1e1e, trait 0,5 px, rayon 4 px), libellés courts en 14 px, survol en fond léger, flèche grise qui pivote à l'ouverture */
html body .nav_component .language_toggle .language_toggle-icon{opacity:.6;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .25s}
html body .nav_component .language_toggle:hover .language_toggle-icon,html body .nav_component .language_toggle.w--open .language_toggle-icon{opacity:1}
html body .nav_component .language_toggle.w--open .language_toggle-icon{transform:rotate(180deg)}
html body .nav_component .language_list-wrapper{background-color:#1c1e1e;border:.5px solid #3e4040;border-radius:4px;padding:4px;min-width:148px;margin-top:6px;box-shadow:0 12px 32px rgba(0,0,0,.45)}
html body .nav_component .language_list{padding:0;background:transparent;border:0}
html body .nav_component .language_option{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:4px;font-size:14px;font-weight:500;line-height:20px;color:#fafafa;text-decoration:none;transition:background-color .2s}
html body .nav_component .language_option:hover{background-color:#262929}
/* Chatbot : bulle (mobile) et barre (ordinateur) masquées quand un menu de la navigation est ouvert, chatbot absent des pages de lecture (classe nq-lecture posée plus haut) */
html body:is(:has(.nav_component .nav_dropdown_container.w--open),:has(.nav_component .w-nav-button.w--open)) #nq-widget :is(.mini,.dock){opacity:0!important;visibility:hidden!important;pointer-events:none!important}
html.nq-lecture #nq-widget{display:none!important}
/* Footer V2 (15/10/2026, composants « Footer V2 » dans « Footer », et « Footer V2 Simple » sur contact et réserver un appel ; ancien footer archivé dans « Footer ancien (archive 15-10-2026) »). Polices du site : Geist (libellés en petites majuscules comme les en-têtes de tableaux), Cal Sans Display pour les titres */
html body .nf{font-family:var(--_typography---paragraph--font-family),sans-serif}
html body .nf [data-nf-time]{font-variant-numeric:tabular-nums}
html body :is(.nf-statement,.nf-ai-title){font-family:var(--_typography---heading--font-family),sans-serif;font-weight:700}
/* Carte Google du footer (19/10/2026) : même survol que les tuiles « Demandez à une IA » (fond #262929, montée de 2 px, bordure inchangée) */
html body .nf .nf-gcard:not(#a):not(#b){transition:background-color .25s,transform .25s}
html body .nf .nf-gcard:not(#a):not(#b):hover{background-color:#262929;border-color:#3e4040;transform:translateY(-2px)}
/* CTA avant footer (19/10/2026, modèle Design Me) : titre au format H1 en escalier, sur-titre et sous-titre, aura violet et bleu en CSS (floue, fondue dans le noir du site) à la place de la vidéo pixelisée */
html body .section_cta{position:relative;overflow:hidden;background-color:#151718;isolation:isolate}
html body .section_cta .cta_bg-video{height:auto;background:none!important}
html body .section_cta .cta_bg-video>video{display:none}
html body .section_cta .padding-global{position:relative;z-index:1}
html body .section_cta .padding-section-large{padding-top:128px;padding-bottom:232px}
html body .section_cta .cta_component{gap:0}
html body .section_cta .cta_heading{font-size:var(--_typography---heading--h1);line-height:1.1;margin:0}
html body .section_cta .cta_heading .heading-span{display:block}
html body .section_cta :is(.cta_kicker,.cta_sub){font-family:var(--_typography---paragraph--font-family),sans-serif}
html body .section_cta::before{content:"";position:absolute;z-index:0;left:-10%;right:-10%;bottom:-12%;height:52%;pointer-events:none;background:radial-gradient(22% 75% at 8% 78%,rgba(142,47,250,.95),rgba(142,47,250,0) 70%),radial-gradient(26% 55% at 30% 70%,rgba(110,60,250,.75),rgba(110,60,250,0) 70%),radial-gradient(30% 45% at 52% 95%,rgba(70,80,255,.55),rgba(70,80,255,0) 70%),radial-gradient(26% 70% at 72% 68%,rgba(58,100,255,.95),rgba(58,100,255,0) 70%),radial-gradient(22% 70% at 94% 80%,rgba(120,70,255,.85),rgba(120,70,255,0) 70%);filter:blur(44px) saturate(1.1);animation:nqAura 18s ease-in-out infinite alternate;will-change:transform}
html body .section_cta::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,#151718 0%,#151718 38%,rgba(21,23,24,0) 78%),linear-gradient(0deg,rgba(21,23,24,.35),rgba(21,23,24,0) 30%)}
@keyframes nqAura{0%{transform:translate3d(-3%,0,0) scale(1)}100%{transform:translate3d(3%,-4%,0) scale(1.08)}}
@media (max-width:767px){html body .section_cta .padding-section-large{padding-top:96px;padding-bottom:176px}html body .section_cta::before{left:-40%;right:-40%;height:44%}}
/* Section « Agence partenaire Webflow » (19/10/2026) : chevrons bleus redessinés en CSS (dégradés flous, nets à toutes les tailles) à la place de l'image AVIF pixelisée, qui reste dans Webflow mais masquée */
html body .section_certification{position:relative;overflow:hidden;isolation:isolate;background-color:#07090d}
html body .section_certification .certification_bg-image{display:none}
html body .section_certification .padding-global{position:relative;z-index:1}
html body .section_certification::before,html body .section_certification::after{content:"";position:absolute;top:-6%;bottom:-6%;width:38%;z-index:0;pointer-events:none;background:linear-gradient(to top right,rgba(20,90,230,0) 36%,rgba(20,90,230,0.14) 43%,rgba(28,104,245,0.54) 49%,rgba(80,150,255,0.96) 52%,rgba(24,90,230,0.48) 55%,rgba(16,70,200,0.14) 61%,rgba(16,70,200,0) 68%) left top/100% 50% no-repeat,linear-gradient(to bottom right,rgba(20,90,230,0) 36%,rgba(20,90,230,0.14) 43%,rgba(28,104,245,0.54) 49%,rgba(80,150,255,0.96) 52%,rgba(24,90,230,0.48) 55%,rgba(16,70,200,0.14) 61%,rgba(16,70,200,0) 68%) left bottom/100% 50% no-repeat,linear-gradient(to top right,rgba(20,90,230,0) 10%,rgba(20,90,230,0.07) 17%,rgba(28,104,245,0.27) 23%,rgba(80,150,255,0.48) 26%,rgba(24,90,230,0.24) 29%,rgba(16,70,200,0.07) 35%,rgba(16,70,200,0) 42%) left top/100% 50% no-repeat,linear-gradient(to bottom right,rgba(20,90,230,0) 10%,rgba(20,90,230,0.07) 17%,rgba(28,104,245,0.27) 23%,rgba(80,150,255,0.48) 26%,rgba(24,90,230,0.24) 29%,rgba(16,70,200,0.07) 35%,rgba(16,70,200,0) 42%) left bottom/100% 50% no-repeat;filter:blur(10px);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 45%,rgba(0,0,0,.2) 100%);mask-image:linear-gradient(90deg,#000 0%,#000 45%,rgba(0,0,0,.2) 100%)}
html body .section_certification::before{left:0}
html body .section_certification::after{right:0;transform:scaleX(-1)}
/* Lisibilité : voile sombre et diffus sous le texte, chevron de gauche atténué (ordinateur) ; chevrons plus discrets sur mobile */
html body .section_certification .certification_content{position:relative}
html body .section_certification .certification_content::before{content:"";position:absolute;inset:-28% -18% -28% -40%;z-index:-1;pointer-events:none;background:radial-gradient(closest-side,rgba(7,9,13,.92),rgba(7,9,13,.7) 55%,rgba(7,9,13,0))}
html body .section_certification::before{opacity:.75}
@media (max-width:767px){html body .section_certification::before,html body .section_certification::after{width:62%;top:-2%;bottom:-2%;opacity:.55}html body .section_certification .certification_content::before{inset:-14% -20%}}
/* Mouvement réduit : transitions instantanées si le visiteur l'a demandé à son système */
@media (prefers-reduced-motion:reduce){html body *,html body *::before,html body *::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}
/* Sections partagées et finitions (19/10/2026) : CSS regroupé ici au lieu de 6 scripts de site chargés dans le head (SectionTemoignages, S10HarmonisationSite, SectionAPropos, SectionServices, S10Compteurs, HarmoMobileS12). Rendu identique */
/* Témoignages : texte secondaire, fondu haut et bas de la colonne qui défile, en-tête centré (aligné à gauche sur mobile, plus bas), lien vers les avis */
.testimonials-text{color:var(--text-light--secondary-light,#d4d4d4)}.testimonials-text p:first-child{color:#fff}.testimonials-text p+p{margin-top:.75em}.testimonials_overlay{background-image:linear-gradient(180deg,rgba(21,23,24,0) 0,rgba(21,23,24,0) 55%,rgba(21,23,24,.85) 85%,#151718 100%)!important;pointer-events:none}.testimonials_wrapper{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 80px);mask-image:linear-gradient(180deg,transparent 0,#000 80px)}.testimonials_header{flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;text-align:center;gap:16px}.testimonials_header>h2{max-width:36rem}.testimonials_header .line{display:none}.testimonials_item-container{transform:none!important}.testimonials_reviews-link{display:inline-flex;align-items:center;gap:2px;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;padding-bottom:2px;transition:background-size .3s ease}.testimonials_reviews-link:hover{background-size:100% 1px}.testimonials_reviews-link:after{content:"";width:17px;height:17px;flex:none;background:currentColor;-webkit-mask:url("/assets/webflow/Arrow-right.svg") center/contain no-repeat;mask:url("/assets/webflow/Arrow-right.svg") center/contain no-repeat;transform:rotate(-45deg)}@media (max-width:767px){.testimonials_item-container.hide-tablet{display:block!important}}
/* Cartes, recherche, onglets : flèche qui avance et cadre du logo qui s'éclaircit au survol, bordure Border/Border Hover au focus de la recherche, onglet actif blanc */
html body .tools-card .tools-header .icon-medium{transition:transform .4s cubic-bezier(.16,1,.3,1)}html body .tools-card:hover .tools-header .icon-medium{transform:translateX(4px)}html body .tools-card:hover .tools-image{border-color:var(--border--border-hover)}html body .search-field:not(#a):focus{border-color:var(--border--border-hover)}html body .tools-searchcount:not(#a):after{content:"\00a0" attr(data-unit)}html body :is(.faq_tab,.prices_tab).w--current:not(#a){background-color:#fff;color:#151718}html body .filter-chip:focus-visible{outline:2px solid #fff;outline-offset:2px}@media (prefers-reduced-motion:reduce){html body .tools-card .tools-header .icon-medium{transition:none}}
/* À propos : colonne d'images en parallaxe (script AProposParallaxe) et frise chronologique */
.section_about .timeline-wrapper,.section_about .about_overlay{display:none}.section_about .about_container-images{height:760px;-webkit-mask-image:linear-gradient(180deg,transparent,#000 64px,#000 calc(100% - 180px),transparent);mask-image:linear-gradient(180deg,transparent,#000 64px,#000 calc(100% - 180px),transparent)}.section_about .about_item{transform:translate3d(0,var(--nq-y,0px),0)!important;will-change:transform}.section_about .timeline-cards-wrapper{position:relative}.section_about .timeline-cards-wrapper:before{content:"";position:absolute}.section_about .timeline-card{position:relative;gap:12px}.section_about .timeline-card:before{content:"";position:absolute;width:9px;height:9px;border-radius:50%;box-sizing:border-box;border:1px solid #8a8d8f;background:#151718}.section_about .timeline-card:last-child:before{background:#fff;border-color:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.12)}.section_about .timeline-card .heading-style-h3{font:500 12px/16px Geist,sans-serif;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.5)}.section_about .timeline-card_subheading{margin:0;font:700 24px/30px "Cal Sans Display",sans-serif;color:#fff}.section_about .timeline-card_text strong{font-weight:inherit;color:#fff}@media (min-width:992px){.section_about .about_timeline{gap:0}.section_about .timeline-cards-wrapper{padding-top:36px}.section_about .timeline-cards-wrapper:before{left:0;right:0;top:4px;height:1px;background:linear-gradient(90deg,#3e4040 80%,rgba(62,64,64,0))}.section_about .timeline-card:before{left:0;top:-36px}}@media (max-width:991px){.section_about .about_container-images{height:720px}.section_about .about_timeline{gap:0}.section_about .timeline-cards-wrapper{padding-left:28px;row-gap:32px}.section_about .timeline-cards-wrapper:before{left:4px;top:8px;bottom:0;width:1px;background:linear-gradient(180deg,#3e4040 80%,rgba(62,64,64,0))}.section_about .timeline-card:before{left:-28px;top:4px}.section_about .timeline-card_subheading{font-size:20px;line-height:25px}}@media (max-width:767px){.section_about .about_container-images{height:560px}.section_about .timeline-card_subheading{font:700 18px/22.5px "Cal Sans Text",sans-serif}}
/* Services : numéro de chaque carte, bordures fines, mise en page tablette et mobile */
.section_services .services_card,.section_services .services_card-image-wrapper{border-width:.5px}.section_services .services_item-wrapper{counter-reset:nqs}.section_services .services_card{counter-increment:nqs}.section_services .services_card-heading:before{content:counter(nqs,decimal-leading-zero);display:block;margin-bottom:12px;font:500 12px/16px Geist,sans-serif;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.5)}.section_services .services_card-text strong{font-weight:inherit;color:#fff}.section_services .services_benefit{color:#d4d4d4}.section_services .services_card-checks-list{gap:12px}.section_services .services_card{align-items:center}.section_services .services_card-content-wrapper{gap:24px}.section_services .webflow-certification-wrapper{top:-8px}@media (min-width:768px) and (max-width:991px){.section_services .webflow-certification-wrapper{position:absolute;top:-8px;right:0}.section_services .heading-span{display:block}.section_services .services_card{grid-template-columns:1fr 1fr;gap:32px;padding:24px;align-items:center}.section_services .services_card-line{display:none}}@media (max-width:767px){.section_services .webflow-certification-wrapper{position:static;width:100%}.section_services .webflow-certification-wrapper .webflow-partner-wrapper{width:100%;box-sizing:border-box}.section_services .services_card{gap:24px}.section_services .services_card-content-wrapper{gap:20px}.section_services .services_card-header{gap:12px}.section_services .services_card-checks-list{gap:10px}}
/* Compteurs de recherche et de filtres (Outils, Blog, Références) */
.tools-searchcount{position:absolute;right:8px;top:50%;transform:translateY(-50%);height:32px;display:inline-flex;align-items:center;padding:0 10px;border-radius:4px;background:#151718;border:.5px solid #3e4040;font:500 12px/1 Geist,sans-serif;color:rgba(255,255,255,.6);pointer-events:none}.tools-searchcount:empty{display:none}.tools-count{margin-left:3px;font:500 11px/1 Geist,sans-serif;color:rgba(255,255,255,.6);vertical-align:super;display:inline-block;text-decoration:none}.tools-count:empty{display:none}@media (max-width:767px){.tools-searchcount{display:none}}
/* Mobile : titres de cartes d'articles, études de cas, footer, portail de l'accueil, témoignages et onglets de la FAQ */
.article-card h3.article-title{margin:0}@media (max-width:767px){h2{text-wrap:wrap!important}.case-studies_heading{font-size:min(24px,calc((100vw - 48px) / 16.5));letter-spacing:-.02em}.nf-statement{font-size:24px;line-height:1.15}.nf-badges{gap:8px}.nf-badges .webflow-partner-wrapper,.nf-badges .claude-badge{padding-left:10px;padding-right:10px}.nf-badges .awwwards-wrapper{padding-left:10px}.nf-badges .claude-badge_text{font-size:12px}.section_portal .vd-tete{align-items:flex-start;text-align:left}.section_portal .nqp--vd .vd-tete .services_heading{text-align:left}.section_portal .vd-onglets{width:100%;box-sizing:border-box}.section_portal .vd-onglets>.vb-onglet{flex:1 1 auto!important;justify-content:center}.section_portal .vd-gauche{align-items:stretch}.section_portal .nqp-panneau{text-align:left}.section_portal .nqp-cta,.section_portal .nqp-cta .button{width:100%;justify-content:center}.section_testimonials .testimonials_header{align-items:flex-start!important;text-align:left}.section_testimonials .testimonials_header>h2{text-align:left}.section_testimonials .testimonials_rating{justify-content:flex-start}.section_faq .faq_tabs-wrapper{flex-wrap:nowrap}.section_faq .faq_tabs-wrapper .w-tab-link{flex:1 1 0;min-width:0;padding-left:6px;padding-right:6px;text-align:center}}
/* Images des rich text (articles, outils, références) : place réservée avant le chargement différé, puis ratio réel de l'image (évite le saut de mise en page au défilement) */
html body .w-richtext img[width="auto"]{aspect-ratio:auto 16/9}
