PageSourceSearch

https://www.nicoka.com/solutions/gerez-vos-fournisseurs

html nicoka.com collected 2026-10-05 23:11:22 UTC 169,221 bytes, 3,067 lines download raw bytes

1<!DOCTYPE html><html lang="fr" data-locale="fr-FR"><head><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="mobile-web-app-capable" content="yes" /><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><!--[if IE]><meta http-equiv="Page-Enter" content="blendTrans(duration=0)" /><meta http-equiv="Page-Exit" content="blendTrans(duration=0)" /><meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" /><![endif]--><meta name="description" content="Nicoka est un outil collaboratif simple de gestion des fournisseurs. Gérez en toute sécurité les échanges, vos contrats, bons de commandes, paiements."><meta property="og:description" content="Nicoka est un outil collaboratif simple de gestion des fournisseurs. Gérez en toute sécurité les échanges, vos contrats, bons de commandes, paiements."><meta property="og:locale" content="fr_FR"><meta property="og:locale:alternate" content="en_US"><meta property="og:site_name" content="Nicoka"><meta property="og:url" content="https://www.nicoka.com/solutions/gestion-des-achats/gerez-vos-fournisseurs"><meta name="twitter:card" content="summary"><meta name="twitter:description" content="Nicoka est un outil collaboratif simple de gestion des fournisseurs. Gérez en toute sécurité les échanges, vos contrats, bons de commandes, paiements.">
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https://www.nicoka.com/"},{"@type":"ListItem","position":2,"name":"Solutions","item":"https://www.nicoka.com/solutions"},{"@type":"ListItem","position":3,"name":"Gérez vos achats","item":"https://www.nicoka.com/solutions/gestion-des-achats"},{"@type":"ListItem","position":4,"name":"Gérez vos fournisseurs","item":"https://www.nicoka.com/solutions/gestion-des-achats/gerez-vos-fournisseurs"}]}</script>
1<!-- TrustBox script -->
1<script type="text/plain" data-nk-consent="marketing" src="//widget.trustpilot.com/bootstrap/v5/tp.widget.bootstrap.min.js" async></script>
1<!-- End TrustBox script -->
vendor: 109 bytes, line 1
1<script type="text/plain" data-nk-consent="analytics" async src="https://www.googletagmanager.com/gtag/js?id=
1G-DH7W5RDZ2T
vendor: 11 bytes, line 1
1"></script>
1<script type="text/plain" data-nk-consent="analytics">
vendor: 118 bytes, line 1
1window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','
1G-DH7W5RDZ2T
vendor: 3 bytes, line 1
1');
1</script>
1<script type="text/plain" data-nk-consent="marketing">
vendor: 323 bytes, line 1
1(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','
1GTM-KPBQSC
vendor: 3 bytes, line 1
1');
1</script>
1<link href="/assets/css/bootstrap.css"type="text/css" rel="stylesheet"><link href="/assets/css/nicoka-global.css"type="text/css" rel="stylesheet"><link href="/assets/css/nicoka-global-custom.css"type="text/css" rel="stylesheet"><link href="/assets/css/nicoka-www.css"type="text/css" rel="stylesheet"><link href="/assets/css/nicoka-www-custom.css"type="text/css" rel="stylesheet">
1<script language="javascript" data-name="jquery_min" src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
1<script language="javascript" data-name="bootstrap_min" src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
1<script language="javascript" data-name="menu" src="/assets/js/menu.js"></script>
1<script language="javascript" data-name="nicoka" src="/assets/js/nicoka.js"></script>
1<link rel="icon"  href="/assets/img/favicon.ico" ><style>:root {
2	--main-border-color: #d7d8d9;
3	--second-font-color: #7e7e7e;
4/*	--main-color: #fcc403;*/
5	--main-color: #085ca4;
6/*	--main-color: rgba(0,70,130,1);*/
7	--main-bg-color: #085ca4;
8/*	--main-bg-color: #004682;*/
9  --main-color-opacity: #004682cc;
10  --second-color: #004682;
11	--main-hover-color: #004682;
12	--main-neutral-color: #2B061E;
13	--second-neutral-color: #E4C3AD;
14  --logo-full: url('../../img/main/nicoka-logo.svg');
15        --second-bg-color: #fcc403;
16  --header-height: 3.5em;
17}
18.main-bg{
19  background: linear-gradient(104deg, var(--main-color) 0%,#fca400 35%, var(--main-color) 100%);
20  color: #fff;
21}
22
23.under-header{
24  height: var(--header-height);
25}
26
27.four-o-four-screen{
28  padding-top: calc(var(--header-height) + 10vh);
29  display: flex;
30  flex-direction: column;
31  justify-content: center;
32  padding-bottom: var(--header-height);
33}
34
35.four-o-four-screen img{
36  height: 35vh;
37  margin: 1em;
38}
39
40.footer--marketing.section-padding nav .secondary-nav .holder-flex-to-block-md{
41  flex-flow: wrap;
42}
43
44.small-text-lh-28 {
45text-align:justify;
46}
47
48div.centered-in-page {
49    margin-left: auto;
50    margin-right: auto;
51    position: relative;
52}
53element.style {
54}
55.intro.privacy, .intro.terms {
56    background: #004682;
57}
58
59/****ELEMENTS POUR DEMO******/
60
61.demo .top-demo-section {
62    padding-top: calc(0.5em + 7.5vh);
63    position: relative;
64}
65
66.demo .ask-demo-process h3 {
67    color: #ffff;
68    padding-bottom: 1em;
69}
70
71.demo h3 {
72    text-transform: none;
73}
74
75.demo .stepper .step span {
76    --fa-style-family-classic: &quot;Font Awesome 6 Pro&quot; !important;
77    --fa-font-solid: normal 900 1em / 1 &quot;Font Awesome 6 Pro&quot; !important;
78}</style>
78<script>&lt;script language=&quot;javascript&quot; data-name=&quot;ukwgoz0dfmtpze6xkp6qr2xznrrwa4vx&quot; src=&quot;https://code.tidio.co/ukwgoz0dfmtpze6xkp6qr2xznrrwa4vx.js&quot; element-id=&quot;3&quot;&gt;&lt;/script&gt;
79&lt;iframe id=&quot;tidio-chat-code&quot; title=&quot;Tidio Chat code&quot; element-id=&quot;18&quot; style=&quot;display: none;&quot;&gt;&lt;/iframe&gt;</script>
79<style>body { min-height:2000px; background:#ffffff; } h1 { text-align: center; font-family: 'poppins', sans-serif; text-transform: uppercase; font-weight: 400; margin: 0; color: #263238; } h2 { font-family:'Poppins',sans-serif; text-transform: uppercase; font-weight: 600; color: #263238; } h3 { font-family:'Poppins',sans-serif; font-weight: 400; color: #263238; margin: 0; } .para1{ font-family:'Inter',sans-serif; font-weight: 300; font-size: 15px; color: #263238; } .para2{ font-family:'Inter',sans-serif; font-weight: 300; font-size: 15px; color: #263238; } .btn-main { display: inline-flex; align-items: center; gap: 0.6rem; padding: 12px 32px; border-radius: 3px; text-decoration: none; cursor: pointer; font-family:'Inter',sans-serif; font-weight: 500; font-size: 18px; } .btn-blue { background-color: #004682; color: #ffffff; border: 1.5px solid #004682; } .btn-orange { background-color: #EA6D2E; color: #ffffff; border: 1.5px solid #EA6D2E; } .text-center { text-align: center; } nav { position: sticky; top: 15px; width: 80%; max-width: 1200px; z-index: 999; margin: 10px auto; border-radius: 8px; background-color: #0d3d75; padding: 10px 40px; font-family:'Poppins',sans-serif; } .nav-container { display: grid; grid-template-columns: auto 1fr auto; align-items: center; max-width: 1200px; margin: 0 auto; } .menu-center { display: flex; justify-content: flex-start; align-items: center; gap: 32px; margin-left: 40px; } .menu-right { display: flex; align-items: center; gap: 20px; } .menu a, .right-link { color: #ffffff; text-decoration: none; font-size: 14px; font-weight: 500; position: relative; transition: all 0.3s ease; } .menu a:hover:not(.dropdown-content a):not(.btn-expert), .right-link:hover:not(.btn-expert) { color: #ffffff; background: transparent !important; } .menu a.dropdown { padding-right: 8px; display: inline-flex; align-items: center; gap: 4px; } .menu a.dropdown::after { content: &quot;▾&quot;; display: inline-block; font-size: 13px; color: #ffffff; transition: transform 0.4s ease-in-out; } .menu-item.show a.dropdown::after { transform: rotate(-180deg); } @media (max-width: 768px) { .menu a.dropdown::after { float: right; font-size: 16px; } } .menu-item { position: relative; } .menu-item.show .dropdown-content { opacity:1; visibility:visible; transform:translateY(0); } .dropdown-content { display: flex; flex-direction: column; opacity: 0; visibility: hidden; position: absolute; top: 100%; left: 0; background: #ffffff; padding: 14px 18px; border-radius: 6px; border: 1px solid #e6e9ed; margin-top: 10px; min-width: 260px; font-size: 14px; line-height: 1.6; z-index: 1000; transform: translateY(6px); transition: opacity 0.45s ease-in-out, transform 0.45s ease-in-out; } .dropdown-content a { display: block; padding: 4px 0; text-decoration: none; } .dropdown-content a span { position: relative; display: inline-block; font-weight: 400; color: #004682 !important; } .dropdown-content a span::after { content: ''; position: absolute; left: 0; bottom: -2px; width: 0; height: 2px; background-color: #f08b66; transition: width 0.3s ease-in-out; } .dropdown-content a:hover span::after { width: 100%; } /* Couleurs spécifiques pour certains liens */ .dropdown-content .dropdown-section a:nth-child(4) span::after { background-color: #f4a261; } /* Facturation de vos clients */ .dropdown-content .dropdown-section a:nth-child(6) span::after { background-color: #2a9d8f; } /* Gérez vos équipes */ .dropdown-content .dropdown-section a:nth-child(7) span::after { background-color: #e76f51; } /* Sourcing */ .dropdown-content .dropdown-section a:nth-child(1) span::after { background-color: #b984dc; } .dropdown-content .dropdown-section a:nth-child(2) span::after { background-color: #a8d76f; } .dropdown-content .dropdown-section a:nth-child(3) span::after { background-color: #78c1f7; } .dropdown-content .dropdown-section a:nth-child(5) span::after { background-color: #db5e6b; } .dropdown-content .dropdown-section:last-of-type a span::after { background-color: #f08b66 !important; } /* Réduction espace blanc sous FAQ */ .dropdown-content .dropdown-section:last-of-type { margin-bottom: 6px; } .dropdown-section { display: flex; flex-direction: column; margin-bottom: 12px; } .dropdown-title { font-size: 12px; font-weight: 700; color: #004682; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; } .btn-expert { display: inline-flex; align-items: center; gap: 0.6rem; padding: 8px 16px; background-color: #ffffff; color: #0d3d75 !important; border-radius: 3px; font-weight: 600; font-size: 14px; border: 1.5px solid white; text-decoration: none; cursor: pointer; transition: all 0.3s ease-in-out; } .btn-expert:hover { background-color: #ffffff; color: #0d3d75 !important; } .btn-arrow { display: inline-flex; transition: transform 0.3s ease-in-out; } .btn-expert:hover .btn-arrow { transform: translateX(4px); }
79 .btn-arrow svg path { stroke: currentColor; } .right-link { font-size: 12px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; color: rgba(255,255,255,0.7); text-decoration: none; transition: color 0.3s ease-in-out; } .right-link:hover { color: #ffffff; } .hamburger { display: none; flex-direction: column; gap: 5px; cursor: pointer; padding: 8px; z-index: 1001; position: relative; } .hamburger span { display: block; width: 25px; height: 3px; background-color: #ffffff; transition: all 0.3s ease-in-out; border-radius: 2px; position: absolute; left: 50%; transform: translateX(-50%); } .hamburger span:nth-child(1) { top: 8px; } .hamburger span:nth-child(2) { top: 16px; } .hamburger span:nth-child(3) { top: 24px; } .hamburger.active span:nth-child(1) { top: 16px; transform: translateX(-50%) rotate(45deg); } .hamburger.active span:nth-child(2) { opacity: 0; } .hamburger.active span:nth-child(3) { top: 16px; transform: translateX(-50%) rotate(-45deg); } .mobile-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); z-index: 998; opacity: 0; transition: opacity 0.3s ease-in-out; } .mobile-overlay.active { opacity: 1; } @media (max-width: 768px) { nav { padding: 20px 25px; } nav.scrolled { padding: 12px 25px; max-width: 95%; margin: 10px auto; } .nav-container { grid-template-columns: auto 1fr; gap: 0; } .logo { margin-left: 15px; } .logo img { height: 50px; } nav.scrolled .logo img { height: 45px; } .hamburger { display: flex; justify-self: end; margin-right: 15px; align-self: center; transform: translateY(-13px); } .mobile-overlay { display: block; } .menu-center, .menu-right { position: fixed; top: 0; right: -100%; width: 85%; max-width: 380px; height: 100vh; background: #0d3d75; flex-direction: column; align-items: flex-start; padding: 80px 25px 25px; gap: 0; margin: 0; overflow-y: auto; transition: right 0.4s ease-in-out; z-index: 1000; } .menu-center.active, .menu-right.active { right: 0; } .menu-item { width: 100%; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding: 18px 0; } .menu-center &gt; a { width: 100%; padding: 18px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.1); font-size: 15px; } .menu a.dropdown { width: 100%; font-size: 15px; padding-right: 0; } .dropdown-content { position: static; opacity: 0; visibility: hidden; max-height: 0; overflow: hidden; margin-top: 0; padding: 0; border: none; background: transparent; transform: none; transition: max-height 0.4s ease-in-out, opacity 0.3s ease-in-out, padding 0.3s ease-in-out; } .menu-item.show .dropdown-content { opacity: 1; visibility: visible; max-height: 800px; padding: 12px 0 0 15px; } .dropdown-content a { padding: 10px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.05); } .dropdown-content a span { color: rgba(255, 255, 255, 0.9) !important; font-size: 14px; } .dropdown-title { color: rgba(255, 255, 255, 0.6); font-size: 11px; margin-bottom: 8px; } .dropdown-section { margin-bottom: 15px; } .dropdown-content .dropdown-section:last-of-type { padding-top: 15px; } .menu-right { padding-top: 0; } .mobile-menu-items { display: none; } } .mobile-menu-items { display: none; } @media (max-width: 768px) { .menu-right .menu-item { border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .right-link { color: rgba(255, 255, 255, 0.9); font-size: 14px; padding: 18px 0; width: 100%; } .btn-expert { width: 100%; justify-content: center; margin-top: 20px; padding: 14px 20px; font-size: 15px; } .mobile-menu-items { display: flex; flex-direction: column; width: 100%; } .mobile-menu-items .menu-item { width: 100%; border-bottom: 1px solid rgba(255, 255, 255, 0.1); padding: 18px 0; } .mobile-menu-items &gt; a { width: 100%; padding: 18px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.1); font-size: 15px; color: #ffffff; } } .header { width: 80%; margin: auto; color: #263238; } .main-title{ margin-top: 100px; margin-bottom: 100px; } .header p { text-align: center; font-family: 'Inter', sans-serif; } .header span.big-text{ font-weight: 900; } .btn-center { text-align: center; } /* Animation douce haut / bas */ @keyframes headerFloat{ 0%{ transform: translateY(0); } 50%{ transform: translateY(-12px); } 100%{ transform: translateY(0); } } .header img{ width: 100%; animation: headerFloat 6s ease-in-out infinite; will-change: transform; } /* ========================= SOLUTIONS – bloc complet (regroupé) ========================= */ /* Section globale */ .solutions-section{ width: 80%; margin: 80px auto; } /* Container interne */ .solutions-container{ width: 80%; margin: 40px auto; display: flex; flex-direction: column; gap: 32px; } /* Ligne contenant les cartes */ .solutions-row{ display: flex; gap: 40px; flex-direction: row; } /* (Optionnel) si tu utilises aussi un grid ailleurs */ .solutions-grid{ display: grid; gap: 2rem; margin-bottom: 4rem; } /* Carte */ .solutions-section .solution-card{ background-color: var(--color-light); border: 1px solid #e2e8f0; border-radius: var(--radius-lg); padding: 2rem; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 18px; transition: transform 0.2s, box-shadow 0.2s; } /* bouton toujours aligné */ .solutions-section .solution-card .btn-main{ margin-top: auto; } .solutions-section .solution-card:hover{ transform: translateY(-2px); box-shadow: var(--shadow-lg); } /* Espacements internes (logo / titre / texte) */ .solutions-section .solution-card .solution-img{ margin: 0 0 18px !important; /* logo -&gt; titre */ } .solutions-section .solution-card h3{ margin: 14px 0 14px !important; /* titre -&gt; texte */ } .solutions-section .solution-card p{ margin: 0 0 18px !important } /* Badges (si tu les utilises dans les cartes) */ .solutions-section .card-badge{ display: inline-block; padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-weight: 700; font-size: 1.25rem; margin-bottom: 1.5rem; } .solutions-section .badge-blue{ background-color: #dbeafe; color: var(--color-primary); } .solutions-section .badge-orange{ background-color: #ffedd5; color: var(--color-orange); } /* Responsive */ @media (max-width: 900px){ .solutions-row{ flex-direction: column; }
79 .solutions-section, .solutions-container{ width: 90%; } } /* ========================================================= SOLUTIONS-2 / OFFERS (NOUVEAU BLOC) -&gt; Scopé avec .solutions-2 pour ne rien casser ailleurs ========================================================= */ .solutions-2.offers{ width: 80%; margin: 80px auto; } .solutions-2 .offers-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 18px; } /* Card */ .solutions-2 .offer-card{ position: relative; background: #ffffff; border: 1px solid rgba(0,0,0,0.06); border-radius: 14px; overflow: hidden; padding: 22px 22px 18px; box-shadow: 0 14px 28px rgba(0,0,0,0.08); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; display:flex; flex-direction:column; } .solutions-2 .offer-card:hover{ transform: translateY(-2px); box-shadow: 0 18px 36px rgba(0,0,0,0.10); border-color: rgba(0,70,130,0.16); } /* petit lien top-right */ .solutions-2 .offer-toplink{ position:absolute; top: 14px; right: 14px; width: 34px; height: 34px; border-radius: 10px; display:grid; place-items:center; text-decoration:none !important; color: #ffffff !important; background: rgba(0,0,0,0.08); border: 1px solid rgba(255,255,255,0.25); box-shadow: 0 10px 18px rgba(0,0,0,0.10); } .solutions-2 .offer-toplink__icon{ font-weight:800; } .solutions-2 .offer-header{ display:flex; align-items:center; gap: 14px; margin-bottom: 12px; } .solutions-2 .offer-logo{ width: 54px; height: 54px; object-fit: contain; display:block; } .solutions-2 .offer-title{ margin: 0; font-size: 22px; font-weight: 800; letter-spacing: .2px; text-transform: uppercase; } .solutions-2 .offer-body{ display:flex; flex-direction:column; gap: 10px; } .solutions-2 .offer-desc{ margin: 0; font-size: 14px; line-height: 1.45; color: rgba(38,50,56,.86); } .solutions-2 .offer-stat{ margin: 0; font-size: 14px; color: rgba(38,50,56,.92); } .solutions-2 .offer-tags{ margin: 0; font-size: 12px; line-height: 1.45; letter-spacing: .3px; color: rgba(38,50,56,.70); text-transform: uppercase; } /* CTA aligné à gauche */ .solutions-2 .offer-cta{ margin-top: 10px; } .solutions-2 .offer-btn{ display:inline-flex; align-items:center; justify-content:center; padding: 10px 14px; border-radius: 10px; text-decoration:none !important; font-weight: 800; font-size: 13px; color:#ffffff !important; box-shadow: 0 12px 22px rgba(0,0,0,0.14); transition: transform .18s ease, box-shadow .18s ease; } .solutions-2 .offer-btn:hover{ transform: translateY(-1px); box-shadow: 0 16px 30px rgba(0,0,0,0.18); } .solutions-2 .offer-btn--cabs{ background: var(--color-primary); } .solutions-2 .offer-btn--sirh{ background: var(--color-orange); } /* Chips (tags en bas) */ .solutions-2 .offer-chips{ margin-top: 12px; display:flex; flex-wrap: wrap; gap: 8px; } .solutions-2 .chip{ display:inline-flex; padding: 6px 10px; border-radius: 999px; font-size: 11px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase; border: 1px solid rgba(0,0,0,0.06); background: #eef5ff; color: var(--color-primary); } .solutions-2 .chip--sirh{ background: #ffedd5; color: #9a4a16; } @media (max-width: 900px){ .solutions-2.offers{ width: 90%; } .solutions-2 .offers-grid{ grid-template-columns: 1fr; } } /* Section contenant le slider */ .logo-slider { width: 100%; padding: 30px 0; overflow: hidden; } /* Piste qui défile */ .logo-track { margin-top: 25px; display: flex; width: max-content; gap: 100px; animation: scroll 60s linear infinite; } /* Style des logos */ .logo-track img { height: 130px; width: auto; object-fit: contain; filter: grayscale(0%); transition: 0.3s; } /* Animation du défilement infini */ @keyframes scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } } /* --- CONTAINER GLOBAL --- */ .section-cards { width: 60%; margin: 0 auto; display: flex; align-items: center; gap: 40px; padding: 40px; } .section-cards ul li { margin-bottom: 12px; display: flex; align-items: center; gap: 12px; } /* Icône SVG */ .section-cards ul li svg { width: 28px; height: 28px; flex-shrink: 0; } /* IMAGE */ .section-cards .image-box { flex: 1; } .section-cards .image-box img { width: 100%; height: auto; border-radius: 12px; } /* TEXT */ .section-cards .text-box { flex: 1.2; } .section-cards h3 { margin-bottom: 25px; } .section-cards ul { list-style: none; padding: 0; margin: 0 0 25px 0; } .section-cards ul li { font-size: 18px; margin-bottom: 12px; display: flex; align-items: center; gap: 10px; } /* --- RESPONSIVE --- */ @media (max-width: 900px) { .section-cards { width: 90%; flex-direction: column; /* Image au-dessus */ text-align: center; } .section-cards ul li { justify-content: center; } } .assistant-section { width: 80%; margin: 50px auto; background-color: #243038; background-image: url(&quot;
79./Img/BackgroundAssistantIA.jpg&quot;); background-size: cover; background-position: center; background-repeat: no-repeat; border-radius: 10px; display: flex; gap: 20px; color: white; overflow: hidden; } /* Colonne texte */ .assistant-content { flex: 1; z-index: 2; padding: 20px; } /* Colonne image */ .assistant-image { flex: 1; margin: 0; padding: 0; height: 100%; } .assistant-image img { width: 100%; height: 100%; object-fit: cover; /* L’image couvre TOUT le bloc */ object-position: right center; /* alignée à droite */ border-radius: 0; /* retire arrondis */ } @media (max-width: 900px) { .assistant-section { flex-direction: column; padding: 20px; } .assistant-image { width: 100%; height: 250px; } } /* Custom Hex Pattern Background */ .bg-hex-pattern { background-color: #ffffff; background-image: url(&quot;data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill-rule='evenodd'%3E%3Cg id='hexagons' fill='%239C92AC' fill-opacity='0.05' fill-rule='nonzero'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E&quot;); } /* Donut Chart Simulation (Conic Gradient) */ .donut-chart { background: conic-gradient(#1e5b9a 0% 99.8%, #e5e7eb 99.8% 100%); border-radius: 50%; width: 200px; height: 200px; position: relative; display: flex; align-items: center; justify-content: center; } .donut-chart::before { content: &quot;&quot;; position: absolute; width: 160px; height: 160px; background: #dbeafe; /* Match bg-blue-100 of the card */ border-radius: 50%; } /* Animations */ @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } .animate-float { animation: float 3s ease-in-out infinite; } /* Integration Nodes Hover Effects */ .integration-node { display: flex; flex-direction: column; align-items: center; width: 6rem; /* w-24 */ text-align: center; z-index: 10; transition: transform 0.3s; } .integration-node:hover { transform: scale(1.1) translate(-50%, 0); /* Maintain centering if strictly absolute */ } /* --- Layout Utilities --- */ .container { max-width: 1200px; margin: 0 auto; padding: 0 1rem; } .flex { display: flex; } .flex-col { flex-direction: column; } .items-center { align-items: center; } .justify-between { justify-content: space-between; } .justify-center { justify-content: center; } .gap-1 { gap: 0.25rem; } .gap-2 { gap: 0.5rem; } .gap-4 { gap: 1rem; } .gap-8 { gap: 2rem; } .text-center { text-align: center; } .hidden { display: none; } @media (min-width: 768px) { .md-flex { display: flex; } .md-hidden { display: none; } .md-grid-2 { grid-template-columns: repeat(2, 1fr); } .md-grid-3 { grid-template-columns: repeat(3, 1fr); } .md-grid-4 { grid-template-columns: repeat(4, 1fr); } .md-w-1-2 { width: 50%; } .md-text-left { text-align: left; } .md-flex-row { flex-direction: row; } .md-flex-row-reverse { flex-direction: row-reverse; } } @media (min-width: 1024px) { .lg-grid-3 { grid-template-columns: repeat(3, 1fr); } } /* --- Reset & Base --- */ :root { --color-primary: #0F4C81; --color-primary-dark: #0a355c; --color-dark: #1e293b; --color-text: #334155; --color-text-light: #64748b; --color-orange: #E67E22; --color-light: #F8FAFC; --color-white: #ffffff; --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1); --radius: 0.5rem; --radius-lg: 0.75rem; --font-main: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif; } /* --- AI Section Redesign --- */ .ai-section { background-color: var(--color-dark); color: white; /* Default for mobile: more width */ width: 95%; margin: 4rem auto; border-radius: 1.5rem; overflow: hidden; display: flex; flex-direction: column; box-shadow: var(--shadow-lg); } .ai-text-col { padding: 2rem; display: flex; flex-direction: column; justify-content: center; } .ai-image-col { position: relative; min-height: 250px; } .ai-image-col img { width: 100%; height: 100%; object-fit: cover; display: block; } @media (min-width: 1024px) { .ai-section { /* Desktop: exactly 80% width as requested */ width: 80%; flex-direction: row; min-height: 400px; } .ai-text-col { width: 50%; padding: 4rem; } .ai-image-col { width: 50%; height: auto; } } /* ========================= STATS – NICOKA EN CHIFFRES ========================= */ .stats-section{ width: 80%; margin: 80px auto; } /* Titre */ .stats-section h2{ margin-bottom: 40px; } /* Container global */ .stats-container{ display: flex; gap: 16px; align-items: stretch; /* ✅ alignement bas */ } /* ================= BLOC GAUCHE ================= */ .stats-left{ flex: 1; min-width: 320px; background: #E8EDF7; padding: 40px; border-radius: 14px; display: flex; justify-content: center; align-items: center; } /* Wrapper image + animation */ .progress-circle{ position: relative; display: inline-block; width: 100%; max-width: 360px; text-align: center; } /* Image de base (TOUJOURS visible) */ .progress-circle img{ width: 100%; height: auto; display: block; margin: 0 auto 22px; } /* Calque animé par-dessus */ .progress-circle::after{ content: &quot;&quot;; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 100%; aspect-ratio: 340 / 170; /* ajuste si besoin */ background: url(&quot;https://www.nicoka.com/assets/img/main/stat98barre.png&quot;) center / contain no-repeat; pointer-events: none; /* Masque initial */ -webkit-mask-image: linear-gradient(#000 0 0); -webkit-mask-repeat: no-repeat; -webkit-mask-size: 0% 100%; mask-image: linear-gradient(#000 0 0); mask-repeat: no-repeat; mask-size: 0% 100%; } /* Animation déclenchée */ .stats-section.is-visible .progress-circle::after{ animation: statsBarReveal 1.4s ease-out forwards; } @keyframes statsBarReveal{ from{ -webkit-mask-size: 0% 100%; mask-size: 0% 100%; } to{ -webkit-mask-size: 100% 100%; mask-size: 100% 100%; } } /* Texte sous la jauge */ .progress-circle h3{ font-size: 36px; font-weight: 700; margin: 0 0 6px; } .progress-circle p{ font-size: 18px; line-height: 1.35; margin: 0; } /* ================= BLOC DROIT ================= */ .stats-right{ flex: 1; min-width: 320px; display: flex; flex-direction: column; gap: 16px; } /* Carte stat */ .stat-box{ flex: 1; /* ✅ toutes les cartes même hauteur */ display: flex; align-items: center; gap: 20px; padding: 26px 30px; background: #F4F4F4; border-radius: 14px; } /* Icônes */ .stat-icon img{ width: 42px; height: 42px; object-fit: contain; } /* Texte */ .stat-text h3{ font-size: 30px; font-weight: 700; margin: 0; } .stat-text p{ margin: 4px 0 0; font-size: 15px; } /* ================= RESPONSIVE ================= */ @media (max-width: 900px){ .stats-container{ flex-direction: column; } .stats-left, .stats-right{ width: 100%; } .stats-left{ padding: 32px 24px; } } /* ========================= PARTENAIRES / INTÉGRATIONS ========================= */ .partenaires{ width: 80%; margin: 100px auto; color: #263238; overflow: hidden; /* indispensable pour le zoom */ } .partenaires img{ width: 50%; display: block; margin: auto; padding: 30px; /* animation */ transform-origin: center; will-change: transform; animation: partenairesZoom 12s ease-in-out infinite alternate; } /* Animation desktop : très douce */ @keyframes partenairesZoom{ from{ transform: scale(1.05); } to{ transform: scale(1.12); } } /* ========================= MOBILE ========================= */ @media (max-width: 768px){ .partenaires img{ width: 100% !important; max-width: 480px; padding: 18px !important; /* on démarre déjà zoomé pour éviter l’effet &quot;petit&quot; */ animation-name: partenairesZoomMobile; animation-duration: 9s; } } /* Animation mobile : un peu plus marquée */ @keyframes partenairesZoomMobile{ from{ transform: scale(1.15); } to{ transform: scale(1.28); } } /* ========================= ACCESSIBILITÉ ========================= */ @media (prefers-reduced-motion: reduce){ .partenaires img{ animation: none; transform: none; } } button.btn-main, a.btn-main { appearance: none; -webkit-appearance: none; background-clip: padding-box; } .btn-main, .btn-main:hover, .btn-main:focus, .btn-main:active { color: #ffffff !important; text-decoration: none; } .btn-blue:hover { background-color: #004682; border-color: #004682; } .btn-orange:hover { background-color: #EA6D2E; border-color: #EA6D2E; } /* Ajustement global des CTA */ .btn-main { padding: 10px 26px; /* taille légèrement réduite */ font-size: 16px; margin-top: 24px; /* espace avant tous les CTA */ } /* ============================= */ /* TYPOGRAPHIE – BASE GLOBALE */ /* ============================= */ h1, h2, h3 { font-family: 'Poppins', sans-serif; color: #263238; } h1 { font-size: 50px !important; font-weight: 500; line-height: 1.2; } h2 { font-size: 35px !important; font-weight: 600; text-transform: uppercase; } h3 { font-size: 26px; font-weight: 500; text-transform: uppercase; } /* ============================= */ /* FOND GLOBAL BLANC PUR */ body, html { background-color: #ffffff !important; } section, .header, .solutions-section, .ai-section, .stats-section, .partenaires { background-color: #ffffff !important; } /* HEADER TAGS – version outline */ .header-tags { display: flex; justify-content: center; gap: 0.5rem; margin-bottom: 1rem; flex-wrap: wrap; } .header-tags .tag { display: inline-block; font-size: 0.75rem; font-weight: 600; padding: 0.28rem 0.65rem; border-radius: 999px; border: 1px solid #004682; /* contour fin */ color: #004682; /* même couleur texte */ background: transparent; letter-spacing: 0.05em; text-transform: uppercase; } /* /* ========================================================= TÉMOIGNAGES (carou
79sel look) ========================================================= */ .tst-wrap{ width: 80%; max-width: 1200px; margin: 80px auto; } .tst-title{ margin: 0 0 18px; text-align:center; } .tst-carousel{ position:relative; } .tst-viewport{ overflow:hidden; padding: 10px 46px 18px; } .tst-track{ display:flex; gap: 18px; will-change: transform; transition: transform 520ms cubic-bezier(.22,.61,.36,1); } .tst-card{ flex: 0 0 calc((100% - 36px) / 3); background:#ffffff; border: 1px solid rgba(0,0,0,0.08); border-radius: 12px; padding: 18px 18px 16px; box-shadow: 0 10px 20px rgba(0,0,0,0.06); transform: translateY(0) scale(1); transition: transform 320ms ease, box-shadow 320ms ease, border-color 320ms ease; } .tst-card.is-active{ transform: translateY(-2px) scale(1.01); box-shadow: 0 14px 28px rgba(0,0,0,0.10); border-color: rgba(0,70,130,0.28); } .tst-head{ display:flex; gap: 12px; align-items:center; margin-bottom: 10px; } .tst-avatar{ position:relative; width:46px; height:46px; flex: 0 0 46px; } .tst-avatar img{ width:46px; height:46px; border-radius:999px; object-fit:cover; display:block; background:#eef5ff; } .tst-avatar::after{ content:&quot;&quot;; position:absolute; right:-2px; bottom:-2px; width:16px; height:16px; border-radius:999px; background: var(--color-primary); border: 2px solid #ffffff; } .tst-name{ font-weight:700; line-height:1.1; } .tst-role{ font-size:14px; font-weight:700; color: var(--color-text); opacity:.9; margin-top:2px; } .tst-stars{ margin-top:6px; letter-spacing:1px; font-size:12px; color:#0d3d75; } .tst-h3{ margin: 12px 0 8px; text-transform:none; font-size:18px; font-weight:500; } .tst-text{ margin:0; font-size:13px; line-height:1.45; color: rgba(38,50,56,.85); } .tst-more{ display:inline-block; margin-left:6px; font-weight:800; text-decoration: underline; color: rgba(38,50,56,.8); } .tst-nav{ position:absolute; top:50%; transform: translateY(-50%); width:34px; height:34px; border-radius:8px; border:1px solid rgba(0,0,0,0.10); background:#ffffff; cursor:pointer; display:grid; place-items:center; box-shadow: 0 10px 18px rgba(0,0,0,0.10); z-index:2; } .tst-nav--prev{ left: 8px; } .tst-nav--next{ right: 8px; } .tst-dots{ display:flex; justify-content:center; gap:8px; margin-top:14px; } .tst-dot{ width:44px; height:6px; border-radius:999px; border:0; background: rgba(0,70,130,.15); cursor:pointer; } .tst-dot.is-active{ background: var(--color-primary); } @media (max-width: 1024px){ .tst-card{ flex-basis: calc((100% - 18px) / 2); } } @media (max-width: 700px){ .tst-viewport{ padding: 10px 40px 18px; } .tst-card{ flex-basis: 100%; } } /* ========================= NEWS / BLOG – v3 (scopé, clean) ========================= */ .news-section{ width: 80%; max-width: 1200px; margin: 90px auto; } /* Header */ .news-header{ display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:18px; } .news-header__left{ display:flex; flex-direction:column; gap:6px; } .news-title{ margin:0; font-size:30px; font-weight:800; letter-spacing:.4px; text-transform:uppercase; } .news-subtitle{ margin:0; font-size:14px; line-height:1.4; color: rgba(38,50,56,.70); } /* CTA top right – format conservé */ .news-btn{ display:inline-flex; align-items:center; gap:10px; padding:10px 14px; border-radius:8px; background:#1f2a30; color:#ffffff !important; /* verrouille */ text-decoration:none !important; /* verrouille */ font-size:13px; font-weight:700; white-space:nowrap; box-shadow:0 12px 22px rgba(0,0,0,0.14); transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease; } .news-btn:hover, .news-btn:focus, .news-btn:active{ color:#ffffff !important; /* pas de noir */ text-decoration:none !important; transform: translateY(-1px); box-shadow:0 16px 30px rgba(0,0,0,0.18); } .news-btn__icon{ display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; background: inherit; /* même fond exact */ border-radius:6px; line-height:1; } /* Grid */ .news-grid{ display:grid; grid-template-columns: 1fr 1fr; gap:18px; } /* Base card */ .news-section .card{ background:#ffffff; border-radius:12px; overflow:hidden; border:1px solid rgba(0,0,0,0.06); box-shadow:0 14px 28px rgba(0,0,0,0.08); transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; } .news-section .card:hover{ transform: translateY(-2px); box-shadow:0 18px 36px rgba(0,0,0,0.10); border-color: rgba(0,70,130,0.16); } .news-section .card:focus-within{ outline:3px solid rgba(0,70,130,0.18); outline-offset:2px; } /* Featured layout */ .news-section .card--featured{ grid-column: 1 / -1; display:grid; grid-template-columns: 1.05fr 1fr; min-height:330px; } .news-section .card--featured .card__media{ background:#EAF3FF; padding:18px; display:grid; place-items:center; } .news-section .card--featured .card__media img{ width: auto; height:auto; max-height:240px; object-fit:contain; display:block; filter: drop-shadow(0 10px 18px rgba(0,0,0,0.10)); transform: translateY(0); transition: transform .22s ease; } .news-section .card--featured:hover .card__media img{ transform: translateY(-2px); } /* Content */ .news-section .card__content{ padding:22px 24px; display:flex; flex-direction:column; gap:10px; } .news-section .badge{ display:inline-flex; width: fit-content; padding:6px 12px; border-radius:999px; background:#e9eef7; color: rgba(38,50,56,.78); font-size:11px; font-weight:600; letter-spacing:.35px; text-transform:uppercase; } .news-section .card__title{ margin:4px 0 0; font-size:22px; font-weight:800; line-height:1.25; text-transform:none !important; color:#263238; } .news-section .card__text{ margin:0; font-size:15px; line-height:1.45; color: rgba(38,50,56,.82); max-width: 52ch; } .news-section .card__link{ margin-top:auto; display:inline-flex; align-items:center; gap:8px; font-size:14px; font-weight:800; color: rgba(38,50,56,.92); text-decoration: underline; text-underline-offset:3px; transition: transform .18s ease; } .news-section .card__link:hover{ transform: translateX(2px); } /* ========================= SMALL cards (bas) : image à gauche, texte à droite ========================= */ .news-section .card--small{ display:grid; grid-template-columns: 46% 1fr; /* image plus grande */ min-height:170px; } .news-section .card--small .card__media{ background:#EAF3FF; padding:0; overflow:hidden; height:100%; /* IMPORTANT */ } .news-section .card--small .card__media img{ width:100%; height:100%; /* IMPORTANT */ object-fit:cover; display:block; transform: scale(1); transition: transform .25s ease; } .news-section .card--small:hover .card__media img{ transform: scale(1.03); } .news-section .card--small .card__content{ padding:20px 22px; gap:12px; justify-content:center; } .news-section .card--small .badge{ font-size:10px; padding:5px 10px; } .news-section .card--small .card__title{ font-size:16px; font-weight:800; line-height:1.3; } /* pas de texte long sur small */ .news-section .card--small .card__text{ display:none; } /* Responsive */ @media (max-width: 900px){ .news-section{ width:90%; } .news-header{ flex-direction:column; align-items:flex-start; gap:12px; } .news-grid{ grid-template-columns:1fr; } .news-section .card--featured{ grid-template-columns:1fr; } .news-section .card--featured .card__content{ padding:18px 18px 20px; } /* Small : repasse en image au-dessus sur mobile */ .news-section .card--small{ grid-template-columns: 1fr; grid-template-rows: 180px 1fr; } .news-section .card--small .card__media{ height:180px; } } /* ========================= CTA Bandeau (scopé) ========================= */ .cta-wrap{ width: 80%; max-width: 1200px; margin: 90px auto; background: transparent !important; } .cta-banner{ position: relative; border-radius: 12px; overflow: hidden; min-height: 210px; box-shadow: 0 18px 36px rgba(0,0,0,0.18); /* très important : on force un fond transparent */ background: transparent !important; } /* L'image de fond */ .cta-bg{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
79 /* couvre comme un background */ object-position: center; /* ajuste si besoin */ display: block; z-index: 0; } /* Optionnel : voile léger pour lisibilité */ .cta-banner::before{ content:&quot;&quot;; position:absolute; inset:0; background: linear-gradient(90deg, rgba(0,0,0,0.10), rgba(0,0,0,0.02)); z-index: 1; pointer-events:none; } /* Contenu par-dessus */ .cta-content{ position: relative; z-index: 2; min-height: 210px; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 34px 38px; } .cta-text h2{ margin: 0 0 10px; font-size: 30px; line-height: 1.15; letter-spacing: .4px; text-transform: uppercase; font-weight: 800; color: #ffffff !important; } .cta-text p{ margin: 0; font-size: 16px; line-height: 1.4; color: rgba(255,255,255,0.92) !important; font-family: 'Inter', sans-serif; } /* Bouton blanc */ .cta-btn{ display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 14px 20px; min-width: auto; border-radius: 8px; background: #ffffff !important; color: #1f2a30 !important; text-decoration: none !important; font-weight: 800; font-size: 15px; box-shadow: 0 12px 24px rgba(0,0,0,0.18); border: 1px solid rgba(0,0,0,0.06); transition: transform .18s ease, box-shadow .18s ease; } .cta-btn:hover, .cta-btn:focus{ transform: translateY(-1px); box-shadow: 0 16px 30px rgba(0,0,0,0.22); } .cta-btn__icon{ width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; border-radius: 6px; line-height: 1; } /* Responsive */ @media (max-width: 900px){ .cta-wrap{ width: 90%; } .cta-content{ flex-direction: column; align-items: flex-start; padding: 26px 22px; } .cta-btn{ width: 100%; min-width: 0; } .cta-text h2{ font-size: 26px; } } .btn-main:hover, .btn-expert:hover, .news-btn:hover, .cta-btn:hover{ transform: translateY(-1px); box-shadow: 0 10px 24px rgba(0,0,0,0.12), 0 4px 8px rgba(0,0,0,0.07); } @media (max-width: 768px){ .header-tags{ flex-wrap: nowrap; /* une seule ligne */ justify-content: center; gap: 6px; } .header-tags .tag{ font-size: 10px; /* plus petit */ padding: 0.2rem 0.5rem; /* tags plus fins */ letter-spacing: 0.03em; white-space: nowrap; } } @media (max-width: 768px){ .header h1{ font-size: 28px !important; line-height: 1.10; letter-spacing: 0.2px; } } @media (max-width: 768px){ .btn-main, .cta-btn, .news-btn{ padding: 10px 18px; /* bouton plus court */ font-size: 14px; /* texte plus petit */ gap: 8px; } } .hero-need-title{ text-transform: uppercase; } /* Desktop : pas de retour à la ligne forcé */ .mobile-break, .mobile-line{ display: inline; } @media (max-width: 768px){ .mobile-break{ display: block; } .mobile-line{ display: block; } } /* ======================= */ /* CTA – Version uniformisée */ /* ======================= */ .btn-main { padding: 12px 24px; font-size: 14px; font-weight: 400; border-radius: 0; transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.2s ease; display: inline-flex; align-items: center; justify-content: center; } /* Hover – bleu foncé pour .btn-blue */ .btn-blue:hover { background-color: #003566;  /* bleu foncé */ border-color: #003566; transform: translateY(-1px); /* léger soulèvement */ box-shadow: 0 3px 6px rgba(0, 0, 0, 0.08); /* ombre subtile */ } /* Hover général pour autres boutons */ .btn-main:hover:not(.btn-blue) { transform: translateY(-1px); box-shadow: 0 3px 6px rgba(0,0,0,0.08); } /* Medium screens */ @media (max-width: 1024px) { .btn-main { padding: 10px 20px; font-size: 13px; } } /* Mobile screens */ @media (max-width: 768px) { .btn-main { padding: 8px 16px; font-size: 12px; width: 100%; text-align: center; } } /* Hover – bleu foncé pour .btn-blue */ .btn-blue:hover { background-color: #003566;  /* bleu foncé */ border-color: #003566; transform: translateY(-1px); /* léger soulèvement */ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); /* ombre très subtile */ } /* Hover général pour autres boutons */ .btn-main:hover:not(.btn-blue) { transform: translateY(-1px); box-shadow: 0 1px 2px rgba(0,0,0,0.05); } .section-cards .text-box.para1 ul li  { font-size: 14px; color: #004682; } /* ========== FIX SECTION-CARDS (Made in France) ========== */ .section-cards h3 { font-size: 22px; font-weight: 400; text-transform: none; margin-bottom: 20px; } .section-cards .para1, .section-cards .para2, .section-cards p { font-family: 'Inter', sans-serif; font-weight: 300; font-size: 15px; color: #555; } .section-cards ul li { font-family: 'Inter', sans-serif; font-size: 15px; font-weight: 400; color: #263238; } .section-cards .text-box ul li { font-size: 15px; color: #263238; } /* ========== FIX SOLUTIONS CARDS ========== */ .solutions-section .solution-card h3 { font-size: 20px; font-weight: 400; text-transform: none; } .solutions-section .solution-card p { font-size: 15px; color: #555; } /* ========== FIX STATS SECTION ========== */ .stats-section .stat-text h3 { font-size: 30px; font-weight: 700; text-transform: none; } .stats-section .stat-text p { font-size: 15px; color: #555; } .progress-circle h3 { font-size: 36px; font-weight: 700; text-transform: none; } .progress-circle p { font-size: 18px; color: #263238; } body { font-family: 'Inter', sans-serif; } h1, h2, h3, h4 { font-family: 'Poppins', sans-serif; }</style><style>.fa-classic, .fa-light, .fa-regular, .fa-solid, .fa-thin, .fal, .far, .fas, .fat {
80    font-family: 'Font Awesome 6 Pro' !important;
81}
82.footer {
83    background: #0d3d75;
84    color: white;
85    padding: 60px 40px 100px;
86    font-family: 'Poppins', sans-serif !important;
87  }
88
89  .footer-container {
90    max-width: 1200px;
91    margin: auto;
92    display: grid;
93    grid-template-columns: 1fr 2fr;
94    gap: 40px;
95    align-items: start;
96  }
97
98  /* Logo + tagline */
99  .footer .footer-brand img {
100    height: 40px;
101    margin-bottom: 15px;
102    transition: transform 0.3s ease;
103  }
104
105  .footer .footer-brand img:hover { 
106    transform: scale(1.05); 
107  }
108
109  .footer .footer-brand p {
110    font-size: 14px;
111    line-height: 1.6;
112    color: white !important;
113    opacity: 1;
114    text-align: left;
115    margin: 0 0 20px 0;
116  }
117
118  /* Contact sous tagline */
119  .footer .footer-contact {
120    display: flex;
121    flex-direction: column;
122    gap: 6px;
123    margin-bottom: 20px;
124  }
125
126  .footer .footer-contact .contact-label {
127    font-size: 13px;
128    font-weight: 600;
129    color: white !important;
130    margin-bottom: 4px;
131  }
132
133  .footer .footer-contact a {
134    font-size: 13px;
135    color: rgba(255,255,255,0.9) !important;
136    text-decoration: none;
137    transition: all 0.3s ease;
138  }
139
140  .footer .footer-contact a:hover {
141    color: white !important;
142    padding-left: 4px;
143  }
144
145  /* CTA Button */
146  .footer .footer-cta {
147    display: inline-flex;
148    align-items: center;
149    gap: 10px;
150    padding: 12px 24px;
151    background: white;
152    color: #0d3d75 !important;
153    font-size: 14px;
154    font-weight: 600;
155    text-decoration: none;
156    border-radius: 6px;
157    transition: all 0.3s ease;
158  }
159
160  .footer .footer-cta:hover {
161    background: rgba(255,255,255,0.9);
162    transform: translateY(-2px);
163    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
164  }
165
166  .footer .footer-cta span {
167    transition: transform 0.3s ease;
168  }
169
170  .footer .footer-cta:hover span {
171    transform: translateX(4px);
172  }
173
174  /* Colonnes de liens */
175  .footer .footer-links {
176    display: grid;
177    grid-template-columns: repeat(3, 1fr);
178    gap: 15px;
179    margin-left: -50px;
180  }
181
182  .footer .footer-col h4 {
183    font-size: 15px;
184    font-weight: 600;
185    margin-bottom: 15px;
186    color: white !important;
187    position: relative;
188  }
189
190  .footer .footer-col h4::after {
191    display: none;
192  }
193
194  .footer .footer-col a {
195    display: block;
196    font-size: 13px;
197    text-decoration: none;
198    color: rgba(255,255,255,0.9) !important;
199    margin: 6px 0;
200    transition: all 0.3s ease;
201  }
202
203  .footer .footer-col a:hover {
204    color: #fff !important;
205    padding-left: 4px;
206  }
207
208  /* Bas de page */
209  .footer .footer-bottom {
210    margin-top: 60px;
211    padding: 25px 20px;
212    border-top: 1px solid rgba(255,255,255,0.15);
213    background: #0d3d75;
214    font-size: 13px;
215    max-width: 1200px;
216    margin-left: auto;
217    margin-right: auto;
218    display: flex;
219    justify-content: space-between;
220    align-items: center;
221    flex-wrap: wrap;
222    gap: 20px;
223  }
224
225  .footer .footer-bottom-left {
226    display: flex;
227    align-items: center;
228    gap: 12px;
229  }
230
231  .footer .footer-bottom-left .copyright {
232    color: white !important;
233  }
234
235  .footer .footer-bottom-left .socials {
236    display: inline-flex;
237    gap: 8px;
238    margin-left: 4px;
239  }
240
241  .footer .footer-bottom-left .socials a {
242    display: inline-flex;
243    justify-content: center;
244    align-items: center;
245    width: 24px;
246    height: 24px;
247    border-radius: 50%;
248    background: transparent;
249    color: white !important;
250    font-weight: 600;
251    font-size: 12px;
252    text-decoration: none;
253    border: 1px solid white;
254    transition: transform 0.2s ease, color 0.2s ease, background 0.2s ease;
255  }
256
257  .footer .footer-bottom-left .socials a:hover {
258    background: white;
259    color: #0d3d75 !important;
260    transform: translateY(-2px);
261  }
262
263  .footer .footer-bottom-right {
264    display: flex;
265    align-items: center;
266    gap: 20px;
267    flex-wrap: wrap;
268  }
269
270  .footer .footer-bottom-right a {
271    color: rgba(255,255,255,0.8) !important;
272    text-decoration: none;
273    transition: color 0.2s ease;
274  }
275
276  .footer .footer-bottom-right a:hover {
277    color: white !important;
278  }
279
280  /* Responsive tablette */
281  @media (max-width: 1024px) {
282    .footer .footer-container {
283      grid-template-columns: 1fr;
284      gap: 50px;
285      text-align: left;
286    }
287    .footer .footer-links {
288      grid-template-columns: repeat(3, 1fr);
289      gap: 15px;
290      margin-left: 0;
291      justify-content: start;
292    }
293  }
294
295  /* Responsive mobile */
296  @media (max-width: 768px) {
297    .footer {
298      padding: 50px 24px 100px;
299    }
300
301    .footer .footer-container {
302      grid-template-columns: 1fr;
303      text-align: center;
304    }
305
306    .footer .footer-brand p {
307      text-align: center;
308    }
309
310    .footer .footer-contact {
311      align-items: center;
312    }
313
314    .footer .footer-contact a:hover {
315      padding-left: 0;
316    }
317
318    .footer .footer-cta {
319      width: 100%;
320      justify-content: center;
321    }
322
323    .footer .footer-links {
324      grid-template-columns: 1fr;
325      gap: 25px;
326      margin-left: 0;
327      padding-left: 10px; 
328      padding-right: 10px;
329    }
330
331    .footer .footer-col a:hover {
332      padding-left: 0;
333    }
334
335    .footer .footer-bottom {
336      flex-direction: column;
337      text-align: center;
338      gap: 16px;
339    }
340
341    .footer .footer-bottom-left {
342      flex-direction: column;
343      gap: 10px;
344    }
345
346    .footer .footer-bottom-right {
347      flex-direction: column;
348      gap: 8px;
349    }
350  }</style>
350<script type="application/ld+json">{
351  "@context": "https://schema.org",
352  "@graph": [
353    { "@type": "Organization", "@id": "https://www.nicoka.com/#organization",
354      "name": "Nicoka", "legalName": "Orinea", "url": "https://www.nicoka.com/",
355      "logo": { "@type": "ImageObject", "url": "https://www.nicoka.com/assets/img/1026/img_2b6a7692a145.svg" },
356      "foundingDate": "2009",
357      "contactPoint": { "@type": "ContactPoint", "telephone": "+33-1-89-16-77-39", "email": "[email protected]", "contactType": "sales", "areaServed": "FR", "availableLanguage": ["French","English"] },
358      "sameAs": ["https://www.linkedin.com/company/nicoka","https://fr.trustpilot.com/review/nicoka.com","https://www.capterra.fr/software/1071381/Nicoka-CABS"] },
359    { "@type": "WebSite", "@id": "https://www.nicoka.com/#website",
360      "url": "https://www.nicoka.com/", "name": "Nicoka", "inLanguage": "fr-FR",
361      "publisher": { "@id": "https://www.nicoka.com/#organization" } }
362  ]
363}</script>
363<script type="application/ld+json">{
364  "@context": "https://schema.org",
365  "@type": "SoftwareApplication",
366  "name": "Nicoka",
367  "description": "Suite logicielle SaaS tout-en-un (ATS, CRM, SIRH, ERP, facturation) dédiée aux cabinets de recrutement, cabinets de conseil et sociétés de services. Développée et hébergée en France.",
368  "url": "https://www.nicoka.com/",
369  "applicationCategory": "BusinessApplication",
370  "operatingSystem": "Web, iOS, Android, Windows, macOS, Linux",
371  "inLanguage": ["fr-FR","en"],
372  "publisher": { "@id": "https://www.nicoka.com/#organization" },
373  "offers": { "@type": "Offer", "price": "130", "priceCurrency": "EUR", "description": "À partir de 130 € / mois" },
374  "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.8", "bestRating": "5", "ratingCount": "9" }
375}</script>
375<script type="application/ld+json">{
376  "@context": "https://schema.org",
377  "@type": "BreadcrumbList",
378  "itemListElement": [
379    { "@type": "ListItem", "position": 1, "name": "Accueil", "item": "https://www.nicoka.com/" },
380    { "@type": "ListItem", "position": 2, "name": "Solutions", "item": "https://www.nicoka.com/solutions" },
381    { "@type": "ListItem", "position": 3, "name": "Gestion des ventes et de la relation client (CRM)", "item": "https://www.nicoka.com/solutions/gestion-des-ventes-et-de-la-relation-client-crm" }
382  ]
383}</script>
383<title>Gérez vos fournisseurs</title><link href="https://www.nicoka.com/solutions/gestion-des-achats/gerez-vos-fournisseurs" rel="canonical"/><link rel="alternate" hreflang="en" href="https://www.nicoka.com/en/solutions/purchasing/suppliers"/><link rel="alternate" hreflang="fr" href="https://www.nicoka.com/solutions/gestion-des-achats/gerez-vos-fournisseurs"/><link rel="alternate" hreflang="x-default" href="https://www.nicoka.com/solutions/gestion-des-achats/gerez-vos-fournisseurs"/></head><body id="layout" class="fr gerez-vos-fournisseurs " data-page="gerez-vos-fournisseurs"><!DOCTYPE html>
384<html lang="fr">
385<head>
386  <meta charset="UTF-8">
387  <meta name="viewport" content="width=device-width, initial-scale=1.0">
388  <link rel="preconnect" href="https://fonts.googleapis.com">
389  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
390  <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" rel="stylesheet">
391  <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
392  <style>
393    * { margin:0; padding:0; box-sizing:border-box; font-family:'Poppins',sans-serif; }
394    body { min-height:2000px; background:#ffffff; padding-top:100px; }
395
396    :root {
397      --nk-topbar-height: 34px;
398    }
399
400    /* ===========================================
401       BANDEAU ANNONCE — HUMAN DAY
402       (élément séparé au-dessus de la navbar,
403        n'hérite pas du scroll de #navbar)
404    =========================================== */
405    #nk-topbar {
406      position: fixed;
407      top: 0;
408      left: 0;
409      width: 100%;
410      z-index: 1001;
411      background-color: #ffffff;
412      border-bottom: 1px solid #e8f0fb;
413      font-family: 'Inter', sans-serif;
414      box-sizing: border-box;
415      transition: transform 0.4s cubic-bezier(0.4,0,0.2,1), opacity 0.4s ease;
416    }
417    #nk-topbar *, #nk-topbar *::before, #nk-topbar *::after { box-sizing: border-box; }
418    #nk-topbar.nk-topbar-closed {
419      transform: translateY(-100%);
420      opacity: 0;
421      pointer-events: none;
422    }
423    .nk-topbar-inner {
424      display: flex;
425      align-items: center;
426      justify-content: center;
427      gap: 14px;
428      max-width: 1200px;
429      margin: 0 auto;
430      padding: 5px 52px;
431      min-height: var(--nk-topbar-height);
432      position: relative;
433      flex-wrap: nowrap;
434    }
435    .nk-topbar-badge {
436      display: inline-flex;
437      align-items: center;
438      gap: 6px;
439      color: #F08B66;
440      font-family: 'Poppins', sans-serif;
441      font-size: 10px;
442      font-weight: 600;
443      letter-spacing: 0.04em;
444      text-transform: uppercase;
445      white-space: nowrap;
446      flex-shrink: 0;
447    }
448    .nk-topbar-badge i { font-size: 11px; }
449    .nk-topbar-sep {
450      color: #c4c9d4; font-size: 16px; line-height: 1;
451      user-select: none; flex-shrink: 0;
452    }
453    .nk-topbar-text {
454      color: #1a1a1a;
455      font-family: 'Inter', sans-serif;
456      font-size: 13px; font-weight: 500;
457      line-height: 1.3; white-space: nowrap;
458    }
459    .nk-topbar-logo {
460      display: inline-flex; align-items: center; line-height: 0;
461      text-decoration: none; flex-shrink: 0;
462      transition: opacity 0.2s ease;
463    }
464    .nk-topbar-logo:hover { opacity: 0.7; }
465    .nk-topbar-logo img { height: 26px; width: auto; display: block; }
466
467    /* CTA — texte + flèche animée, aligné branding Nicoka (bleu) */
468    .nk-topbar-cta,
469    .nk-topbar-cta:link,
470    .nk-topbar-cta:visited,
471    .nk-topbar-cta:hover,
472    .nk-topbar-cta:focus,
473    .nk-topbar-cta:active {
474      display: inline-flex; align-items: center; gap: 0.5rem;
475      color: #004682 !important;
476      -webkit-text-fill-color: #004682 !important;
477      font-family: 'Inter', sans-serif;
478      font-size: 13px; font-weight: 600;
479      text-decoration: none;
480      background: transparent; border: none; padding: 0;
481      white-space: nowrap; flex-shrink: 0;
482      position: relative;
483    }
484    .nk-topbar-cta::after {
485      content: ''; position: absolute;
486      bottom: -3px; left: 0;
487      width: 0; height: 1.5px;
488      background: #004682;
489      transition: width 0.25s ease; display: block;
490    }
491    .nk-topbar-cta:hover::after { width: 100%; }
492    .nk-topbar-cta .nk-btn-arrow { display: inline-flex; transition: transform 0.3s ease-in-out; }
493    .nk-topbar-cta:hover .nk-btn-arrow { transform: translateX(4px); }
494    .nk-topbar-cta .nk-btn-arrow svg path { stroke: currentColor; }
495    .nk-topbar-close {
496      position: absolute; right: 16px; top: 50%;
497      transform: translateY(-50%); background: transparent; border: none;
498      color: #9ca3af; cursor: pointer; display: inline-flex;
499      align-items: center; padding: 4px; line-height: 0;
500      transition: color 0.2s ease;
501    }
502    .nk-topbar-close:hover { color: #1a1a1a; }
503    .nk-topbar-close i { font-size: 16px; }
504
505    /* ===========================================
506       NAVIGATION
507    =========================================== */
508    nav {
509      position: fixed;
510      top: 6px;
511      left: 50%;
512      transform: translateX(-50%);
513      background-color: transparent;
514      width: auto;
515      max-width: 95%;
516      z-index: 1000;
517      transition: top 0.4s cubic-bezier(0.4,0,0.2,1),
518                  transform 0.5s cubic-bezier(0.4,0,0.2,1),
519                  opacity 0.5s cubic-bezier(0.4,0,0.2,1),
520                  background-color 0.4s ease,
521                  box-shadow 0.4s ease,
522                  border-radius 0.4s ease;
523      box-shadow: none;
524      opacity: 1;
525      border-radius: 0;
526    }
527    /* Décalage de la navbar quand le bandeau est visible */
528    body.nk-has-topbar nav { top: calc(var(--nk-topbar-height) + 6px); }
529    body.nk-topbar-dismissed nav { top: 6px; }
530
531    nav.nav-scrolled {
532      background-color: #ffffff;
533      box-shadow: 0 6px 24px rgba(0,30,70,0.1);
534      border-radius: 100px;
535    }
536    nav.nav-hidden {
537      transform: translateX(-50%) translateY(-120%);
538      opacity: 0;
539      pointer-events: none;
540    }
541
542    .nav-container {
543      display: inline-flex;
544      align-items: center;
545      flex-wrap: nowrap;
546      white-space: nowrap;
547      gap: 36px;
548      padding: 14px 28px;
549    }
550
551    /* === LOGO === */
552    .logo { display: flex; align-items: center; flex-shrink: 0; }
553    .logo a { display: inline-block; text-decoration: none; line-height: 0; }
554    .logo a .logo-mask {
555      display: inline-block;
556      width: 110px;
557      height: 32px;
558      background-color: #004682;
559      -webkit-mask-image: url('https://www.nicoka.com/assets/img/1026/img_2b6a7692a145.svg');
560      mask-image: url('https://www.nicoka.com/assets/img/1026/img_2b6a7692a145.svg');
561      -webkit-mask-size: contain;
562      mask-size: contain;
563      -webkit-mask-repeat: no-repeat;
564      mask-repeat: no-repeat;
565      -webkit-mask-position: left center;
566      mask-position: left center;
567      margin-right: -20px;
568    }
569
570    /* === MENUS DESKTOP === */
571    .menu-center {
572      display: flex;
573      align-items: center;
574      gap: 32px;
575      font-family: 'Inter', sans-serif;
576      flex-shrink: 0;
577    }
578    .menu-center a {
579      display: inline-flex;
580      align-items: center;
581      font-family: 'Inter', sans-serif;
582    }
583    .menu-right {
584      display: flex;
585      align-items: center;
586      gap: 16px;
587      flex-shrink: 0;
588    }
589
590    /* Liens */
591    nav .menu a,
592    nav .menu a:link,
593    nav .menu a:visited,
594    nav .menu a:hover,
595    nav .menu a:active,
596    nav .menu a:focus {
597      text-decoration: none !important;
598      font-size: 14px;
599      font-weight: 500;
600      color: #004682 !important;
601      background: transparent !important;
602      -webkit-text-fill-color: #004682 !important;
603      opacity: 1 !important;
604      position: relative;
605      transition: color 0.2s ease;
606    }
607
608    /* Hover : trait fin */
609    nav .menu-center > .menu-item > a::after {
610      content: '';
611      position: absolute;
612      left: 0;
613      bottom: -4px;
614      width: 0;
615      height: 1.5px;
616      background-color: #004682;
617      transition: width 0.25s ease;
618    }
619    nav .menu-center > .menu-item > a:hover::after { width: 100%; }
620
621    .menu-item { position: relative; }
622    .menu-item.has-dropdown > a { gap: 4px; cursor: pointer; }
623
624    .dropdown-arrow {
625      display: inline-block;
626      width: 0; height: 0;
627      border-left: 4px solid transparent;
628      border-right: 4px solid transparent;
629      border-top: 5px solid #004682;
630      margin-left: 2px;
631      transition: transform 0.3s ease;
632    }
633    .menu-item.has-dropdown:hover .dropdown-arrow { transform: rotate(180deg); }
634
635    /* Dropdown générique */
636    .dropdown-menu {
637      display: flex;
638      flex-direction: column;
639      position: absolute;
640      top: 100%;
641      left: 0;
642      background: #ffffff;
643      border-radius: 6px;
644      border: 1px solid #e6e9ed;
645      padding: 14px 20px;
646      min-width: 220px;
647      width: max-content;
648      max-width: 340px;
649      box-shadow: 0 4px 20px rgba(0,0,0,0.08);
650      opacity: 0;
651      visibility: hidden;
652      transform: translateY(6px);
653      transition: opacity 0.45s ease-in-out, transform 0.45s ease-in-out;
654      margin-top: 12px;
655      font-family: 'Inter', sans-serif;
656    }
657    .dropdown-menu::before {
658      content: '';
659      position: absolute;
660      top: -15px; left: 0;
661      width: 100%; height: 15px;
662      background: transparent;
663    }
664    .menu-item.has-dropdown:hover .dropdown-menu {
665      opacity: 1;
666      visibility: visible;
667      transform: translateY(0);
668    }
669
670    /* ===========================================
671       MEGA DROPDOWN "NOS SOLUTIONS"
672    =========================================== */
673    .dropdown-menu.mega-solutions {
674      width: 680px;
675      max-width: 680px;
676      min-width: 680px;
677      padding: 28px;
678    }
679
680    /* Zone haute : cartes marque */
681    .sol-brands {
682      display: grid;
683      grid-template-columns: 1fr 1fr;
684      gap: 14px;
685    }
686    nav .dropdown-menu.mega-solutions a.sol-brand-card {
687      position: relative;
688      display: flex !important;
689      align-items: center;
690      gap: 12px;
691      padding: 14px 16px !important;
692      border-radius: 12px;
693      border: 1px solid #e4eefb;
694      background: linear-gradient(155deg, #f7fbff 0%, #eef5ff 100%);
695      text-decoration: none !important;
696      transition: border-color 0.18s ease;
697    }
698    nav .dropdown-menu.mega-solutions a.sol-brand-card:hover {
699      border-color: #004682;
700      padding-left: 16px !important;
701    }
702    .sol-brand-top {
703      display: flex;
704      flex-direction: column;
705      align-items: flex-start;
706      gap: 7px;
707      flex: 1;
708      min-width: 0;
709    }
710    .sol-brand-logo {
711      height: 24px;
712      width: auto;
713      max-width: 96px;
714      object-fit: contain;
715      object-position: left center;
716      display: block;
717      flex-shrink: 0;
718    }
719    .sol-brand-arrow {
720      position: absolute;
721      top: 13px;
722      right: 14px;
723      font-size: 13px;
724      font-weight: 300;
725      line-height: 1;
726      color: #9aa7b8;
727      opacity: 0;
728      transition: opacity 0.18s ease, color 0.18s ease, transform 0.18s ease;
729    }
730    nav .dropdown-menu.mega-solutions a.sol-brand-card:hover .sol-brand-arrow {
731      opacity: 1;
732      color: #004682;
733      transform: translate(1px, -1px);
734    }
735    .sol-tags { display: flex; flex-wrap: wrap; gap: 6px; }
736    .sol-tag {
737      display: inline-block;
738      background: rgba(0, 70, 130, 0.08);
739      color: #004682 !important;
740      -webkit-text-fill-color: #004682 !important;
741      padding: 4px 10px;
742      border-radius: 1px;
743      font-family: 'Inter', sans-serif;
744      font-size: 10px;
745      font-weight: 500;
746      text-transform: uppercase;
747      letter-spacing: 0.5px;
748      line-height: 1.2;
749    }
750    .sol-brand-desc {
751      font-family: 'Inter', sans-serif;
752      font-size: 12px;
753      font-weight: 400;
754      color: #5a6573 !important;
755      -webkit-text-fill-color: #5a6573 !important;
756      line-height: 1.45;
757      margin: 0;
758    }
759
760    /* Séparateur + label ERP */
761    .sol-erp-head {
762      display: flex;
763      align-items: center;
764      gap: 10px;
765      margin: 18px 0 12px;
766    }
767    .sol-erp-head .sol-tag-erp {
768      display: inline-block;
769      background: rgba(0, 70, 130, 0.08);
770      color: #004682 !important;
771      -webkit-text-fill-color: #004682 !important;
772      padding: 4px 10px;
773      border-radius: 1px;
774      font-family: 'Inter', sans-serif;
775      font-size: 10px;
776      font-weight: 500;
777      text-transform: uppercase;
778      letter-spacing: 0.5px;
779      line-height: 1.2;
780      flex-shrink: 0;
781    }
782    .sol-erp-head .sol-erp-label {
783      font-family: 'Inter', sans-serif;
784      font-size: 11px;
785      font-weight: 500;
786      color: #8a93a0 !important;
787      -webkit-text-fill-color: #8a93a0 !important;
788      flex-shrink: 0;
789    }
790    .sol-erp-head .sol-erp-rule {
791      flex: 1;
792      height: 1px;
793      background: #eef0f3;
794    }
795
796    /* Grille fonctionnalités ERP */
797    .sol-erp-grid {
798      display: grid;
799      grid-template-columns: 1fr 1fr;
800      gap: 6px 14px;
801    }
802    nav .dropdown-menu.mega-solutions a.sol-erp-item {
803      display: flex !important;
804      align-items: center;
805      gap: 12px;
806      padding: 9px 10px !important;
807      border-radius: 10px;
808      border: 1px solid transparent;
809      text-decoration: none !important;
810      background: transparent;
811      transition: background 0.16s ease, border-color 0.16s ease;
812    }
813    nav .dropdown-menu.mega-solutions a.sol-erp-item:hover {
814      background: #f6f9fe;
815      border-color: #e4eefb;
816      padding-left: 10px !important;
817    }
818    .sol-erp-ic {
819      width: 34px;
820      height: 34px;
821      min-width: 34px;
822      border-radius: 9px;
823      border: 1px solid #e4eefb;
824      background: #ebf5ff;
825      display: flex;
826      align-items: center;
827      justify-content: center;
828      color: #004682;
829      flex-shrink: 0;
830      transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease;
831    }
832    .sol-erp-ic svg { width: 17px; height: 17px; display: block; stroke: currentColor; fill: none; }
833    .sol-erp-ic svg path { stroke: currentColor; }
834    nav .dropdown-menu.mega-solutions a.sol-erp-item:hover .sol-erp-ic {
835      background: #004682;
836      border-color: #004682;
837      color: #ffffff;
838    }
839    .sol-erp-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
840    .sol-erp-title {
841      font-family: 'Inter', sans-serif;
842      font-size: 13.5px;
843      font-weight: 600;
844      color: #1a2433 !important;
845      -webkit-text-fill-color: #1a2433 !important;
846      line-height: 1.3;
847    }
848    .sol-erp-sub {
849      font-family: 'Inter', sans-serif;
850      font-size: 10.5px;
851      font-weight: 400;
852      color: #8a93a0 !important;
853      -webkit-text-fill-color: #8a93a0 !important;
854      line-height: 1.3;
855    }
856
857    /* === CTA === */
858    nav .btn-expert,
859    nav .btn-expert:link,
860    nav .btn-expert:visited,
861    nav .btn-expert:hover,
862    nav .btn-expert:active,
863    nav .btn-expert:focus {
864      display: inline-flex;
865      align-items: center;
866      gap: 0.5rem;
867      padding: 0 !important;
868      background: transparent !important;
869      color: #004682 !important;
870      -webkit-text-fill-color: #004682 !important;
871      border-radius: 0 !important;
872      font-weight: 600;
873      font-size: 14px;
874      border: none !important;
875      text-decoration: none !important;
876      cursor: pointer;
877      font-family: 'Inter', sans-serif;
878      box-shadow: none !important;
879      outline: none !important;
880      opacity: 1 !important;
881    }
882    nav .btn-expert::after { display: none !important; }
883    .btn-arrow { display: inline-flex; transition: transform 0.3s ease-in-out; color: #004682; }
884    .btn-expert:hover .btn-arrow { transform: translateX(4px); }
885    .btn-arrow svg path { stroke: #004682; }
886
887    /* === HAMBURGER === */
888    .hamburger {
889      display: none;
890      flex-direction: column;
891      cursor: pointer;
892      padding: 8px;
893      z-index: 1002;
894      position: relative;
895      width: 41px;
896      height: 40px;
897      background: transparent;
898      border: none;
899      flex-shrink: 0;
900    }
901    .hamburger span {
902      display: block;
903      width: 25px;
904      height: 3px;
905      background-color: #004682;
906      transition: all 0.3s ease-in-out;
907      border-radius: 2px;
908      position: absolute;
909      left: 50%;
910      transform: translateX(-50%);
911    }
912    .hamburger span:nth-child(1) { top: 8px; }
913    .hamburger span:nth-child(2) { top: 18px; }
914    .hamburger span:nth-child(3) { top: 28px; }
915    .hamburger.active span:nth-child(1) { top: 18px; transform: translateX(-50%) rotate(45deg); }
916    .hamburger.active span:nth-child(2) { opacity: 0; }
917    .hamburger.active span:nth-child(3) { top: 18px; transform: translateX(-50%) rotate(-45deg); }
918
919    /* === PANEL MOBILE === */
920    .mobile-overlay {
921      display: none;
922      position: fixed;
923      top: 0; left: 0;
924      width: 100%; height: 100%;
925      background: rgba(0,0,0,0.5);
926      z-index: 998;
927      opacity: 0;
928      transition: opacity 0.3s ease-in-out;
929      pointer-events: none;
930    }
931    .mobile-overlay.active { display: block; opacity: 1; pointer-events: auto; }
932
933    .menu-mobile {
934      display: flex;
935      flex-direction: column;
936      position: fixed;
937      top: 0;
938      right: -100%;
939      width: 85%;
940      max-width: 380px;
941      height: 100vh;
942      background: linear-gradient(160deg, #001a33 0%, #0d3d75 100%);
943      z-index: 1000;
944      transition: right 0.4s cubic-bezier(0.4,0,0.2,1);
945      font-family: 'Inter', sans-serif;
946      overflow-y: auto;
947    }
948    .menu-mobile.active { right: 0; }
949
950    /* Header panel */
951    .mobile-header {
952      padding: 20px 24px;
953      border-bottom: 1px solid rgba(255,255,255,0.1);
954      display: flex;
955      justify-content: space-between;
956      align-items: center;
957      flex-shrink: 0;
958    }
959    .mobile-logo-mask {
960      display: inline-block;
961      width: 130px;
962      height: 38px;
963      background-color: #ffffff;
964      -webkit-mask-image: url('https://www.nicoka.com/assets/img/1026/img_2b6a7692a145.svg');
965      mask-image: url('https://www.nicoka.com/assets/img/1026/img_2b6a7692a145.svg');
966      -webkit-mask-size: contain;
967      mask-size: contain;
968      -webkit-mask-repeat: no-repeat;
969      mask-repeat: no-repeat;
970      -webkit-mask-position: left center;
971      mask-position: left center;
972    }
973    .mobile-close {
974      background: none;
975      border: none;
976      color: #ffffff;
977      font-size: 28px;
978      cursor: pointer;
979      padding: 5px;
980      line-height: 1;
981      opacity: 0.8;
982      transition: opacity 0.2s;
983    }
984    .mobile-close:hover { opacity: 1; }
985
986    /* Contenu panel */
987    .mobile-content { flex: 1; padding: 8px 0 0; }
988
989    .mobile-item { border-bottom: 1px solid rgba(255,255,255,0.08); }
990
991    .mobile-link {
992      display: flex;
993      justify-content: space-between;
994      align-items: center;
995      padding: 16px 24px;
996      color: rgba(255,255,255,0.92) !important;
997      -webkit-text-fill-color: rgba(255,255,255,0.92);
998      text-decoration: none !important;
999      font-size: 15px;
1000      font-weight: 500;
1001      font-family: 'Inter', sans-serif;
1002      cursor: pointer;
1003      transition: background 0.2s ease;
1004    }
1005    .mobile-link:hover {
1006      background: rgba(255,255,255,0.06);
1007      color: #ffffff !important;
1008      -webkit-text-fill-color: #ffffff;
1009    }
1010    .mobile-chevron {
1011      font-size: 11px;
1012      opacity: 0.6;
1013      transition: transform 0.3s ease;
1014    }
1015    .mobile-item.open .mobile-chevron { transform: rotate(180deg); }
1016
1017    /* Bandeau Human Day version mobile (dans le panel) */
1018    .mobile-topbar {
1019      display: flex;
1020      align-items: center;
1021      gap: 10px;
1022      margin: 12px 24px 4px;
1023      padding: 12px 14px;
1024      border-radius: 10px;
1025      background: rgba(255,255,255,0.08);
1026      text-decoration: none !important;
1027    }
1028    .mobile-topbar .mtb-badge {
1029      display: inline-flex; align-items: center; gap: 5px;
1030      color: #F08B66;
1031      font-family: 'Poppins', sans-serif;
1032      font-size: 9px; font-weight: 600;
1033      letter-spacing: 0.04em; text-transform: uppercase;
1034      flex-shrink: 0;
1035    }
1036    .mobile-topbar .mtb-text {
1037      color: rgba(255,255,255,0.9) !important;
1038      -webkit-text-fill-color: rgba(255,255,255,0.9);
1039      font-size: 12.5px; font-weight: 500; line-height: 1.35;
1040    }
1041    .mobile-topbar .mtb-text strong { font-weight: 700; color: #fff; }
1042
1043    /* Sous-menu accordéon */
1044    .mobile-submenu {
1045      max-height: 0;
1046      overflow: hidden;
1047      background: rgba(0,0,0,0.18);
1048      transition: max-height 0.4s ease-in-out;
1049    }
1050    .mobile-item.open .mobile-submenu { max-height: 800px; }
1051
1052    .mobile-submenu-title {
1053      padding: 14px 24px 6px 36px;
1054      font-size: 10px;
1055      font-weight: 700;
1056      text-transform: uppercase;
1057      letter-spacing: 0.08em;
1058      color: rgba(255,255,255,0.45) !important;
1059      -webkit-text-fill-color: rgba(255,255,255,0.45);
1060      font-family: 'Inter', sans-serif;
1061    }
1062    .mobile-submenu a {
1063      display: block;
1064      padding: 13px 24px 13px 36px;
1065      color: rgba(255,255,255,0.78) !important;
1066      -webkit-text-fill-color: rgba(255,255,255,0.78);
1067      text-decoration: none !important;
1068      font-size: 13.5px;
1069      font-family: 'Inter', sans-serif;
1070      font-weight: 400;
1071      border-bottom: 1px solid rgba(255,255,255,0.05);
1072      transition: all 0.2s ease;
1073    }
1074    .mobile-submenu a:last-child { border-bottom: none; }
1075    .mobile-submenu a:hover {
1076      background: rgba(255,255,255,0.06);
1077      color: #ffffff !important;
1078      -webkit-text-fill-color: #ffffff;
1079      padding-left: 40px;
1080    }
1081
1082    .mobile-divider {
1083      border: none;
1084      border-top: 1px solid rgba(255,255,255,0.12);
1085      margin: 6px 24px;
1086    }
1087
1088    /* CTA mobile */
1089    .mobile-cta { padding: 20px 24px; }
1090    .mobile-cta a {
1091      display: inline-flex;
1092      align-items: center;
1093      justify-content: center;
1094      gap: 8px;
1095      width: 100%;
1096      padding: 12px 22px;
1097      background: #ffffff;
1098      color: #004682 !important;
1099      -webkit-text-fill-color: #004682;
1100      border-radius: 100px;
1101      font-size: 14px;
1102      font-weight: 700;
1103      font-family: 'Inter', sans-serif;
1104      text-decoration: none !important;
1105      transition: background 0.2s, gap 0.2s;
1106    }
1107    .mobile-cta a:hover { background: #ebf5ff; gap: 12px; }
1108
1109    /* Footer panel */
1110    .mobile-footer {
1111      padding: 16px 24px 28px;
1112      border-top: 1px solid rgba(255,255,255,0.1);
1113      flex-shrink: 0;
1114    }
1115
1116    /* ===========================================
1117       RESPONSIVE
1118    =========================================== */
1119    @media (max-width: 1024px) {
1120      .dropdown-menu.mega-solutions {
1121        width: 560px;
1122        max-width: 560px;
1123        min-width: 560px;
1124      }
1125    }
1126
1127    @media (max-width: 768px) {
1128      body { padding-top: 70px; }
1129
1130      nav {
1131        top: 4px;
1132        max-width: calc(100% - 20px);
1133        width: calc(100% - 20px);
1134      }
1135      nav.nav-scrolled { border-radius: 12px; }
1136
1137      /* En mobile, le bandeau vit dans le panel : la navbar ne se décale plus */
1138      body.nk-has-topbar nav { top: 4px; }
1139
1140      .nav-container {
1141        display: flex !important;
1142        justify-content: space-between;
1143        align-items: center;
1144        gap: 0;
1145        padding: 16px 20px;
1146        width: 100%;
1147        white-space: normal;
1148      }
1149      .logo a .logo-mask { width: 110px; height: 30px; margin-right: 0; }
1150
1151      /* Masquer les menus desktop */
1152      .menu-center,
1153      .menu-right { display: none !important; }
1154
1155      /* Masquer le bandeau desktop, il est repris dans le panel */
1156      #nk-topbar { display: none !important; }
1157
1158      /* Afficher hamburger */
1159      .hamburger { display: flex; }
1160
1161      /* Masquer dropdown desktop */
1162      .dropdown-menu { display: none !important; }
1163    }
1164
1165    @media (max-width: 480px) {
1166      .menu-mobile { width: 100%; max-width: none; }
1167      .mobile-header { padding: 18px 20px; }
1168      .mobile-link { padding: 15px 20px; }
1169      .mobile-submenu a { padding: 12px 20px 12px 32px; }
1170      .mobile-submenu a:hover { padding-left: 36px; }
1171      .mobile-submenu-title { padding-left: 32px; }
1172      .mobile-cta, .mobile-footer { padding-left: 20px; padding-right: 20px; }
1173      .mobile-topbar { margin-left: 20px; margin-right: 20px; }
1174    }
1175  
1176/* nk-verre-liquide */
1177/* ===================================================================
1178   VERRE LIQUIDE AU SCROLL — portage du menu CABS v10 vers les autres sites
1179   Source : Output/Site/menu-v2/21-verre-v8.css (partie « fonds clairs »)
1180
1181   Ce fichier ne contient QUE la surface de la barre en mode scrolle.
1182   Il remplace la pilule blanche opaque des quatre sites par le meme verre
1183   que CABS. Rien d'autre ne change : ni la geometrie (pilule centree,
1184   rayon 100 px), ni les couleurs de texte, ni les panneaux deroulants.
1185
1186   nav-scrolled   nom de la classe posee au scroll par le script du site
1187             (nav-scrolled sur nicoka.com / blog / support, nk-scrolled sur SIRH)
1188   rgba(0,30,70,0.12) teinte de l'ombre portee, reprise du site (bleu de marque)
1189   top 0.4s cubic-bezier(0.4,0,0.2,1),transform 0.5s cubic-bezier(0.4,0,0.2,1),opacity 0.5s cubic-bezier(0.4,0,0.2,1),background-color 0.4s ease,box-shadow 0.4s ease,border-radius 0.4s ease liste de transitions DEJA declaree par le site, recopiee telle
1190             quelle et completee par le flou (voir la note 2 ci-dessous)
1191
1192   ⚠️ Aucun antislash dans ce fichier : le CMS les retire du contenu servi.
1193   =================================================================== */
1194
1195/* Le taux de blanc du verre, isole pour etre reglable. 0,66 est la valeur
1196   retenue sur CABS : le texte du menu (#004682 / #0d3d75) reste a 9,3 de
1197   contraste sur fond clair, tres au-dessus du seuil AA de 4,5. */
1198:root{--nk-glass-clair:0.66}
1199
1200/* ── 1. La surface de verre ─────────────────────────────────────────
1201   - saturate(190%) est ce qui donne l'effet « liquide » : le flou seul
1202     rend une bouillie grise ;
1203   - le degrade interne remplace la bordure : le haut du verre capte un
1204     peu plus la lumiere, ce qui dessine son epaisseur ;
1205   - l'ombre portee est la seule chose qui decolle la barre du fond. */
1206#navbar.nav-scrolled{
1207  background-color:rgba(255,255,255,var(--nk-glass-clair)) !important;
1208  background-image:linear-gradient(180deg,rgba(255,255,255,0.28),rgba(255,255,255,0) 62%) !important;
1209  -webkit-backdrop-filter:blur(24px) saturate(190%) !important;
1210  backdrop-filter:blur(24px) saturate(190%) !important;
1211  border:none !important;
1212  box-shadow:0 10px 30px rgba(0,30,70,0.12) !important;
1213}
1214
1215/* ── 2. La transition ───────────────────────────────────────────────
1216   La regle de base du site ne fait pas transiter le flou : sans cette
1217   reecriture, le verre apparait d'un coup au 31e pixel de scroll.
1218   La liste d'origine est recopiee a l'identique, le flou est ajoute. */
1219#navbar{
1220  transition:top 0.4s cubic-bezier(0.4,0,0.2,1),transform 0.5s cubic-bezier(0.4,0,0.2,1),opacity 0.5s cubic-bezier(0.4,0,0.2,1),background-color 0.4s ease,box-shadow 0.4s ease,border-radius 0.4s ease,
1221             -webkit-backdrop-filter 0.4s ease,
1222             backdrop-filter 0.4s ease !important;
1223}
1224
1225/* ── 3. Le repli ────────────────────────────────────────────────────
1226   Sans backdrop-filter (vieux Firefox, « reduire la transparence » sur
1227   macOS/iOS, navigateur qui coupe les effets), un fond translucide
1228   laisserait passer le texte de la page. On repasse alors a un blanc
1229   quasi opaque, c'est-a-dire au comportement actuel. */
1230@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
1231  #navbar.nav-scrolled{
1232    background-color:rgba(255,255,255,0.94) !important;
1233    background-image:none !important;
1234  }
1235}
1236</style>
1237</head>
1238<body>
1239
1240<nav id="navbar">
1241  <div class="nav-container">
1242
1243    <!-- Logo -->
1244    <div class="logo">
1245      <a href="https://www.nicoka.com" aria-label="Nicoka">
1246        <span class="logo-mask" role="img" aria-label="Logo Nicoka"></span>
1247      </a>
1248    </div>
1249
1250    <!-- Menu centre (desktop) -->
1251    <div class="menu menu-center">
1252      <div class="menu-item"><a href="#vos-besoins">Vos besoins</a></div>
1253      <div class="menu-item has-dropdown">
1254        <a href="#notre-solution">Nos solutions <span class="dropdown-arrow"></span></a>
1255        <div class="dropdown-menu mega-solutions">
1256
1257          <!-- Zone haute : cartes marque -->
1258          <div class="sol-brands">
1259
1260            <!-- CABS -->
1261            <a href="https://cabs.nicoka.com/?utm_source=nicoka&utm_medium=menu&utm_content=cabs" class="sol-brand-card">
1262              <span class="sol-brand-arrow">↗</span>
1263              <img src="https://www.nicoka.com/assets/img/1021/img_3b6b57bdc230.svg" alt="Nicoka CABS" class="sol-brand-logo">
1264              <div class="sol-brand-top">
1265                <div class="sol-tags">
1266                  <span class="sol-tag">ATS</span>
1267                  <span class="sol-tag">CRM</span>
1268                </div>
1269                <p class="sol-brand-desc">Pour les acteurs du recrutement.</p>
1270              </div>
1271            </a>
1272
1273            <!-- SIRH -->
1274            <a href="https://sirh.nicoka.com/?utm_source=nicoka&utm_medium=menu&utm_content=sirh" class="sol-brand-card">
1275              <span class="sol-brand-arrow">↗</span>
1276              <img src="https://www.nicoka.com/assets/img/1021/img_9f69356de014.svg" alt="Nicoka SIRH" class="sol-brand-logo">
1277              <div class="sol-brand-top">
1278                <div class="sol-tags">
1279                  <span class="sol-tag">SIRH</span>
1280                </div>
1281                <p class="sol-brand-desc">Des PME aux grands groupes.</p>
1282              </div>
1283            </a>
1284
1285          </div>
1286
1287          <!-- Séparateur + label ERP -->
1288          <div class="sol-erp-head">
1289            <span class="sol-tag-erp">ERP</span>
1290            <span class="sol-erp-label">La gestion de votre entreprise</span>
1291            <span class="sol-erp-rule"></span>
1292          </div>
1293
1294          <!-- Zone basse : fonctionnalités ERP -->
1295          <div class="sol-erp-grid">
1296
1297            <a href="https://www.nicoka.com/gestion-des-ventes-et-de-la-relation-client-crm" class="sol-erp-item">
1298              <span class="sol-erp-ic">
1299                <svg viewBox="0 0 24 24" fill="none"><path d="M16 19v-1a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v1M9 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM22 19v-1a4 4 0 0 0-3-3.87M16 5.13A4 4 0 0 1 16 13" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>
1300              </span>
1301              <span class="sol-erp-text">
1302                <span class="sol-erp-title">CRM</span>
1303                <span class="sol-erp-sub">Relation client &amp; ventes</span>
1304              </span>
1305            </a>
1306
1307            <a href="https://www.nicoka.com/solutions/gerez-vos-fournisseurs" class="sol-erp-item">
1308              <span class="sol-erp-ic">
1309                <svg viewBox="0 0 24 24" fill="none"><path d="M3 3h2l2.4 12.4a2 2 0 0 0 2 1.6h7.7a2 2 0 0 0 2-1.6L22 7H6M9 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2ZM18 21a1 1 0 1 0 0-2 1 1 0 0 0 0 2Z" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>
1310              </span>
1311              <span class="sol-erp-text">
1312                <span class="sol-erp-title">Achats</span>
1313                <span class="sol-erp-sub">Gérez vos fournisseurs</span>
1314              </span>
1315            </a>
1316
1317            <a href="https://www.nicoka.com/gestion-des-ventes/gestion-des-clients" class="sol-erp-item">
1318              <span class="sol-erp-ic">
1319                <svg viewBox="0 0 24 24" fill="none"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6ZM14 2v6h6M9 13h6M9 17h6M9 9h1" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>
1320              </span>
1321              <span class="sol-erp-text">
1322                <span class="sol-erp-title">Ventes</span>
1323                <span class="sol-erp-sub">Devis &amp; facturation</span>
1324              </span>
1325            </a>
1326
1327            <a href="https://www.nicoka.com/gestion-de-projets-saisie-des-temps" class="sol-erp-item">
1328              <span class="sol-erp-ic">
1329                <svg viewBox="0 0 24 24" fill="none"><path d="M9 11l3 3 8-8M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round"/></svg>
1330              </span>
1331              <span class="sol-erp-text">
1332                <span class="sol-erp-title">Gestion de projets</span>
1333                <span class="sol-erp-sub">Saisie des temps</span>
1334              </span>
1335            </a>
1336
1337          </div>
1338
1339        </div>
1340      </div>
1341      <div class="menu-item"><a href="#avis-clients">Avis clients</a></div>
1342      <div class="menu-item"><a href="#blog">Blog</a></div>
1343    </div>
1344
1345    <!-- Menu droite (desktop) -->
1346    <div class="menu menu-right"><div class="nk-lang" role="group" aria-label="Language"><svg class="nk-lang-globe" viewBox="0 0 24 24" width="15" height="15" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.6"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9z" fill="none" stroke="currentColor" stroke-width="1.6"/></svg><a class="nk-lang-opt" data-lang="fr" href="/fr/" hreflang="fr">FR</a><span class="nk-lang-sep" aria-hidden="true">/</span><a class="nk-lang-opt" data-lang="en" href="/en/" hreflang="en">EN</a></div><style>.nk-lang{display:inline-flex;align-items:center;gap:5px;font-family:'Poppins','Inter',sans-serif;font-size:13px;line-height:1;user-select:none;margin-right:10px}.nk-lang-globe{flex:0 0 auto;opacity:.85}.nk-lang .nk-lang-opt{color:inherit!important;text-decoration:none!important;font-weight:500!important;opacity:.7;padding:2px 3px;letter-spacing:.03em;background:none!important}.nk-lang .nk-lang-opt:hover{opacity:1}.nk-lang[data-cur="fr"] .nk-lang-opt[data-lang="fr"],.nk-lang[data-cur="en"] .nk-lang-opt[data-lang="en"]{font-weight:700!important;opacity:1;border-bottom:2px solid currentColor!important;padding-bottom:1px}.nk-lang .nk-lang-sep{opacity:.5}</style>
1346<script>(function(){var M={"a-propos-de-nous":"about-us","avoir-une-demonstration":"book-a-demo","compte-activation":"account-activation","conditions-generales-de-services":"terms-of-use","demande-demonstration-succes":"demo-request-success","dematerialisez-vos-factures-d-achats":"invoice-digitisation","divulgation-des-vulnerabilites":"vulnerability","essai-gratuit-inscription":"try","gerez-vos-commandes-d-achats":"purchase-orders","gerez-vos-factures-d-achats":"purchase-invoices","gerez-vos-fournisseurs":"suppliers","gerez-vos-produits-et-vos-services":"products-and-services","gestion-de-la-facturation":"billing-management","gestion-de-projets-saisie-des-temps":"project-management-timesheets","gestion-des-achats":"purchasing","gestion-des-clients":"client-management","gestion-des-commandes-et-des-contrats":"orders-and-contracts","gestion-des-contacts-crm":"crm-contacts","gestion-des-devis":"quotes","gestion-des-ventes":"sales","gestion-des-ventes-et-de-la-relation-client-crm":"crm-sales-management","inscription-reussi":"signup-success","nous-contacter":"contact-us","old-homepage":"home","politique-confidentialite-mobile":"mobile-privacy-policy","politique-de-confidentialite":"privacy-policy","pourquoi-nicoka":"why-nicoka","securise-et-evolutif":"secure-and-scalable","suivi-des-encaissements":"payment-tracking","support-client":"customer-support"},I={},k;for(k in M){if(M.hasOwnProperty(k)){I[M[k]]=k;}}function s(){var p=location.pathname,cur="fr",b=p;if(b==="/en"||b.indexOf("/en/")===0){cur="en";b=(b==="/en")?"":b.substring(4);}else if(b==="/fr"||b.indexOf("/fr/")===0){b=(b==="/fr")?"":b.substring(4);}else if(b.charAt(0)==="/"){b=b.substring(1);}while(b.charAt(b.length-1)==="/"){b=b.substring(0,b.length-1);}var fr=I.hasOwnProperty(b)?I[b]:b;var en=M.hasOwnProperty(fr)?M[fr]:fr;var q=location.search+location.hash;var l=document.querySelectorAll(".nk-lang");for(var i=0;i<l.length;i++){l[i].setAttribute("data-cur",cur);var af=l[i].querySelector('[data-lang="fr"]'),ae=l[i].querySelector('[data-lang="en"]');if(af){af.setAttribute("href","/fr/"+fr+q);}if(ae){ae.setAttribute("href","/en/"+en+q);}}}s();if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",s);}})();</script>
1346
1347      <a id="Nicoka_Menu_demo"
1348         href="https://www.nicoka.com/demo?utm_source=nicoka&utm_medium=menu&utm_content=demo-desktop"
1349         class="btn-expert">
1350        Échangez avec un expert
1351        <span class="btn-arrow">
1352          <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
1353            <path d="M0 6H10M10 6L6 2M10 6L6 10" stroke="currentColor" stroke-width="2"/>
1354          </svg>
1355        </span>
1356      </a>
1357    </div>
1358
1359    <!-- Hamburger (mobile) -->
1360    <button class="hamburger" id="hamburger" aria-label="Ouvrir le menu">
1361      <span></span><span></span><span></span>
1362    </button>
1363
1364  </div>
1365</nav>
1366
1367<!-- ===========================================
1368     PANEL MOBILE
1369=========================================== -->
1370<div class="menu-mobile" id="menuMobile">
1371
1372  <div class="mobile-header">
1373    <span class="mobile-logo-mask" role="img" aria-label="Logo Nicoka"></span>
1374    <button class="mobile-close" id="mobileClose" aria-label="Fermer">×</button>
1375  </div>
1376
1377  <div class="mobile-content">
1378
1379<!-- Vos besoins -->
1380    <div class="mobile-item">
1381      <a href="#vos-besoins" class="mobile-link">Vos besoins</a>
1382    </div>
1383
1384    <!-- Nos solutions -->
1385    <div class="mobile-item">
1386      <div class="mobile-link" data-toggle="submenu">
1387        Nos solutions
1388        <span class="mobile-chevron">▾</span>
1389      </div>
1390      <div class="mobile-submenu">
1391        <div class="mobile-submenu-title">Logiciels métier</div>
1392        <a href="https://cabs.nicoka.com/?utm_source=nicoka&utm_medium=menu&utm_content=cabs">Nicoka CABS — ATS / CRM</a>
1393        <a href="https://sirh.nicoka.com/?utm_source=nicoka&utm_medium=menu&utm_content=sirh">Nicoka SIRH</a>
1394        <div class="mobile-submenu-title">ERP — Gestion d'entreprise</div>
1395        <a href="https://www.nicoka.com/gestion-des-ventes-et-de-la-relation-client-crm">CRM</a>
1396        <a href="https://www.nicoka.com/solutions/gestion-des-achats/gerez-vos-produits-et-vos-services">Achats</a>
1397        <a href="https://www.nicoka.com/gestion-des-ventes/gestion-des-clients">Ventes</a>
1398        <a href="https://www.nicoka.com/gestion-de-projets-saisie-des-temps">Gestion de projets</a>
1399      </div>
1400    </div>
1401
1402    <!-- Avis clients -->
1403    <div class="mobile-item">
1404      <a href="#avis-clients" class="mobile-link">Avis clients</a>
1405    </div>
1406
1407    <!-- Blog -->
1408    <div class="mobile-item">
1409      <a href="#blog" class="mobile-link">Blog</a>
1410    </div>
1411
1412    <!-- CTA -->
1413    <div class="nk-lang" role="group" aria-label="Language"><svg class="nk-lang-globe" viewBox="0 0 24 24" width="15" height="15" aria-hidden="true" focusable="false"><circle cx="12" cy="12" r="9" fill="none" stroke="currentColor" stroke-width="1.6"/><path d="M3 12h18M12 3c2.6 2.4 4 5.6 4 9s-1.4 6.6-4 9c-2.6-2.4-4-5.6-4-9s1.4-6.6 4-9z" fill="none" stroke="currentColor" stroke-width="1.6"/></svg><a class="nk-lang-opt" data-lang="fr" href="/fr/" hreflang="fr">FR</a><span class="nk-lang-sep" aria-hidden="true">/</span><a class="nk-lang-opt" data-lang="en" href="/en/" hreflang="en">EN</a></div><div class="mobile-cta">
1414      <a href="https://www.nicoka.com/demo?utm_source=nicoka&utm_medium=menu&utm_content=demo-mobile">
1415        Échangez avec un expert
1416        <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
1417          <path d="M0 6H10M10 6L6 2M10 6L6 10" stroke="#004682" stroke-width="2"/>
1418        </svg>
1419      </a>
1420    </div>
1421
1422  </div>
1423</div>
1424
1425<div class="mobile-overlay" id="mobileOverlay"></div>
1426
1427<!-- ===========================================
1428     JAVASCRIPT
1429=========================================== -->
1430<script>
1431(function() {
1432  'use strict';
1433
1434  /* ===== Bandeau : affichage + fermeture ===== */
1435  var topbar = document.getElementById('nk-topbar');
1436  var closeBtn = document.getElementById('nkTopbarClose');
1437  if (topbar) {
1438    document.body.classList.add('nk-has-topbar');
1439    if (closeBtn) {
1440      closeBtn.addEventListener('click', function() {
1441        topbar.classList.add('nk-topbar-closed');
1442        document.body.classList.remove('nk-has-topbar');
1443        document.body.classList.add('nk-topbar-dismissed');
1444      });
1445    }
1446  }
1447})();
1448
1449(function() {
1450  'use strict';
1451
1452  const hamburger   = document.getElementById('hamburger');
1453  const menuMobile  = document.getElementById('menuMobile');
1454  const overlay     = document.getElementById('mobileOverlay');
1455  const mobileClose = document.getElementById('mobileClose');
1456
1457  function openMenu() {
1458    hamburger.classList.add('active');
1459    menuMobile.classList.add('active');
1460    overlay.classList.add('active');
1461    document.body.style.overflow = 'hidden';
1462  }
1463  function closeMenu() {
1464    hamburger.classList.remove('active');
1465    menuMobile.classList.remove('active');
1466    overlay.classList.remove('active');
1467    document.body.style.overflow = '';
1468  }
1469
1470  hamburger.addEventListener('click', openMenu);
1471  mobileClose.addEventListener('click', closeMenu);
1472  overlay.addEventListener('click', closeMenu);
1473
1474  // Accordéon sous-menus
1475  document.querySelectorAll('.mobile-link[data-toggle="submenu"]').forEach(toggle => {
1476    toggle.addEventListener('click', (e) => {
1477      e.preventDefault();
1478      const parent = toggle.parentElement;
1479      document.querySelectorAll('.mobile-item.open').forEach(item => {
1480        if (item !== parent) item.classList.remove('open');
1481      });
1482      parent.classList.toggle('open');
1483    });
1484  });
1485
1486  // Fermer au clic sur un lien
1487  document.querySelectorAll('.mobile-link:not([data-toggle]), .mobile-submenu a, .mobile-cta a, .mobile-topbar').forEach(link => {
1488    link.addEventListener('click', closeMenu);
1489  });
1490
1491  // Resize
1492  window.addEventListener('resize', () => {
1493    if (window.innerWidth > 768 && menuMobile.classList.contains('active')) closeMenu();
1494  });
1495})();
1496</script>
1496
1497
1498<!-- Scroll hide/show + scrolled pill -->
1499<script>
1500(function() {
1501  const navbar = document.getElementById('navbar');
1502  let lastScrollY = window.scrollY;
1503  let ticking = false;
1504  function onScroll() {
1505    const y = window.scrollY;
1506    if (y > 30) navbar.classList.add('nav-scrolled');
1507    else navbar.classList.remove('nav-scrolled');
1508    if (y > lastScrollY && y > 150) navbar.classList.add('nav-hidden');
1509    else navbar.classList.remove('nav-hidden');
1510    lastScrollY = y;
1511    ticking = false;
1512  }
1513  window.addEventListener('scroll', () => {
1514    if (!ticking) { requestAnimationFrame(onScroll); ticking = true; }
1515  });
1516})();
1517</script>
1517
1518
1519<!-- UTM propagation -->
1520<script>
1521(function() {
1522  const params = new URLSearchParams(window.location.search);
1523  if (!params.toString()) return;
1524  const utmParams = {};
1525  params.forEach((value, key) => { if (key.startsWith('utm_')) utmParams[key] = value; });
1526  if (Object.keys(utmParams).length === 0) return;
1527  document.querySelectorAll('a[href]').forEach(link => {
1528    const href = link.getAttribute('href');
1529    if (!href || !href.startsWith('http')) return;
1530    if (href.includes('nicoka.com')) {
1531      const url = new URL(href);
1532      Object.keys(utmParams).forEach(key => url.searchParams.set(key, utmParams[key]));
1533      link.setAttribute('href', url.toString());
1534    }
1535  });
1536})();
1537</script>
1537
1538
1539</body>
1540</html>
1541<section class="bg-grey"><div class="content-wrapper container">
1542<div class="sidebar-menu col-md-3 sidebar-menu__inside" id="sub-page-menu"></div>
1543<div class="col-md-9 col-lg-12 features-content shorten">
1544<!-- ============================================================
1545     NICOKA — Sous-page "Gérez vos fournisseurs"
1546     Bloc HTML autonome, scopé sous #nk-subpage-fournisseurs
1547     Modifs : texte du lead justifié + barre de progression scroll
1548     ============================================================ -->
1549<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Inter:wght@300;400;500&display=swap" rel="stylesheet">
1550
1551<div id="nk-subpage-fournisseurs">
1552<style>
1553#nk-subpage-fournisseurs, #nk-subpage-fournisseurs *, #nk-subpage-fournisseurs *::before, #nk-subpage-fournisseurs *::after{
1554  box-sizing: border-box !important;
1555  font-family:'Inter', sans-serif !important;
1556}
1557#nk-subpage-fournisseurs{
1558  --color-primary:#004682; --color-primary-dark:#
1558003566;
1559  --color-orange:#EA6D2E;
1560  --color-text:#263238; --color-text-light:#6b7280; --color-light:#F8FAFC;
1561  background:#fff !important; color:var(--color-text) !important;
1562}
1563#nk-subpage-fournisseurs h1, #nk-subpage-fournisseurs h2, #nk-subpage-fournisseurs h3{
1564  font-family:'Poppins', sans-serif !important; color:var(--color-text) !important; margin:0 !important;
1565}
1566#nk-subpage-fournisseurs p{ margin:0 !important; }
1567#nk-subpage-fournisseurs a{ text-decoration:none !important; }
1568
1569/* ---------- BARRE DE PROGRESSION SCROLL ---------- */
1570#nk-subpage-fournisseurs .nk-scroll-progress{
1571  position:fixed; top:0; left:0; height:3px; width:0%;
1572  background: var(--color-primary);
1573  z-index:9999; pointer-events:none;
1574  transition: width 0.05s linear;
1575}
1576
1577#nk-subpage-fournisseurs .nk-eyebrow-wrap{
1578  width:80%; max-width:1000px; margin:60px auto 0; text-align:center;
1579}
1580#nk-subpage-fournisseurs .nk-eyebrow{
1581  display:inline-block; font-size:12px; font-weight:600; letter-spacing:0.08em;
1582  text-transform:uppercase; color: var(--color-primary) !important;
1583  background:rgba(0,70,130,0.08); padding:6px 14px; border-radius:999px;
1584}
1585#nk-subpage-fournisseurs .nk-subhero{ width:80%; max-width:1000px; margin:14px auto 0; }
1586#nk-subpage-fournisseurs .nk-subhero h1{ font-size:19px; font-weight:600; text-transform:uppercase; margin-bottom:14px !important; }
1587#nk-subpage-fournisseurs .nk-subhero p{
1588  font-size:16px; font-weight:300; color:var(--color-text-light) !important; line-height:1.6;
1589  max-width:760px; margin:0 auto 12px !important;
1590  text-align: center; /* ajouté */
1591}
1592#nk-subpage-fournisseurs .nk-micro{ font-size:12px; color:#9aa3ab !important; letter-spacing:0.03em; }
1593
1594#nk-subpage-fournisseurs .nk-feature-row{
1595  width:80%; max-width:1000px; margin:70px auto 0; display:flex; align-items:center; gap:50px;
1596}
1597#nk-subpage-fournisseurs .nk-feature-row.reverse{ flex-direction:row-reverse; }
1598#nk-subpage-fournisseurs .nk-feature-row .nk-visual{
1599  flex:1; min-height:220px; border-radius:14px; background:var(--color-light) !important;
1600  border:1px solid #e5e9f0; display:flex; align-items:center; justify-content:center;
1601}
1602#nk-subpage-fournisseurs .nk-feature-row .nk-visual svg{ width:64px; height:64px; }
1603#nk-subpage-fournisseurs .nk-feature-row .nk-copy{ flex:1.1; }
1604#nk-subpage-fournisseurs .nk-feature-row h3{ font-size:22px; font-weight:500; margin-bottom:14px !important; }
1605#nk-subpage-fournisseurs .nk-feature-row p{ font-size:15px; line-height:1.6; color:var(--color-text-light) !important; }
1606
1607/* ---------- POURQUOI ---------- */
1608#nk-subpage-fournisseurs .nk-why{
1609  width:80%; max-width:1000px; margin:80px auto 70px;
1610}
1611#nk-subpage-fournisseurs .nk-why h2{ font-size:20px; font-weight:600; text-transform:uppercase; margin-bottom:22px !important; }
1612#nk-subpage-fournisseurs .nk-why ul{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:1fr 1fr; gap:18px 28px; }
1613#nk-subpage-fournisseurs .nk-why li{ display:flex; gap:12px; align-items:flex-start; font-size:14px; line-height:1.55; color:var(--color-text) !important; }
1614#nk-subpage-fournisseurs .nk-why li svg{ flex-shrink:0; width:20px; height:20px; margin-top:2px; }
1615#nk-subpage-fournisseurs .nk-why li strong{ color:var(--color-primary) !important; }
1616
1617/* ---------- CTA BANDEAU (hive) ---------- */
1618#nk-subpage-fournisseurs .nk-cta-hive-wrap{
1619  width:100%; background:#ffffff !important; padding:64px 0 0;
1620}
1621#nk-subpage-fournisseurs .nk-cta-hive{
1622  position:relative; width:100%; padding:70px 0; overflow:hidden;
1623  background:linear-gradient(to bottom, #004682 0%, #003d70 65%, #002a4e 100%) !important;
1624}
1625#nk-subpage-fournisseurs .nk-cta-hive-hive{
1626  position:absolute; inset:0; width:100%; height:100%; pointer-events:none; z-index:1;
1627  opacity:0.72;
1628  -webkit-mask-image:linear-gradient(to bottom, transparent 8%, rgba(0,0,0,0.32) 40%, rgba(0,0,0,0.78) 72%, #000 100%);
1629  mask-image:linear-gradient(to bottom, transparent 8%, rgba(0,0,0,0.32) 40%, rgba(0,0,0,0.78) 72%, #000 100%);
1630}
1631#nk-subpage-fournisseurs .nk-cta-hive-hive svg{ width:100%; height:100%; display:block; }
1632#nk-subpage-fournisseurs .nk-cta-hive-hive .hex{ fill:none; stroke:#ffffff; stroke-width:0.65; vector-effect:non-scaling-stroke; }
1633#nk-subpage-fournisseurs .nk-cta-hive-hive .hex--faint{ opacity:0.08; }
1634#nk-subpage-fournisseurs .nk-cta-hive-hive .hex--base{ opacity:0.13; }
1635#nk-subpage-fournisseurs .nk-cta-hive-hive .hex--mid{ opacity:0.20; }
1636#nk-subpage-fournisseurs .nk-cta-hive-hive .hex--breath{ opacity:0.13; animation:nk-cta-hiveBreathFourn 16s ease-in-out infinite; }
1637#nk-subpage-fournisseurs .nk-cta-hive-hive .hex--halo{ opacity:0.22; animation:nk-cta-hiveBreathFourn 20s ease-in-out infinite; }
1638@keyframes nk-cta-hiveBreathFourn{ 0%,100%{ opacity:var(--op-base,0.13); } 50%{ opacity:var(--op-peak,0.27); } }
1639
1640#nk-subpage-fournisseurs .nk-cta-hive-inner{
1641  position:relative; z-index:2; width:80%; max-width:1000px; margin:0 auto; text-align:center;
1642}
1643#nk-subpage-fournisseurs .nk-cta-hive h2{
1644  font-size:20px !important; font-weight:600 !important; letter-spacing:-0.01em !important;
1645  line-height:1.3 !important; color:#ffffff !important; margin-bottom:14px !important;
1646  text-transform:uppercase;
1647}
1648#nk-subpage-fournisseurs .nk-cta-hive p{
1649  font-size:15px !important; color:rgba(255,255,255,0.78) !important; line-height:1.6 !important;
1650  margin:0 auto 28px !important; max-width:520px !important;
1651}
1652#nk-subpage-fournisseurs .nk-cta-hive-btn{
1653  display:inline-flex; align-items:center; gap:0.5rem; padding:12px 28px; border-radius:3px;
1654  font-weight:600; font-size:15px;
1655  background:#ffffff !important; color:#004682 !important; border:1px solid #ffffff !important;
1656  transition:background .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease;
1657}
1658#nk-subpage-fournisseurs .nk-cta-hive-btn:hover{
1659  background:transparent !important; color:#ffffff !important; transform:translateY(-1px);
1660  box-shadow:0 8px 24px rgba(0,0,0,0.15);
1661}
1662#nk-subpage-fournisseurs .nk-cta-hive-reassurance{
1663  display:flex; justify-content:center; flex-wrap:wrap; gap:32px; margin-top:36px;
1664  padding-top:26px; border-top:1px solid rgba(255,255,255,0.15);
1665}
1666#nk-subpage-fournisseurs .nk-cta-hive-reassurance-item{
1667  display:flex; align-items:center; gap:8px; font-size:12.5px; color:rgba(255,255,255,0.85) !important;
1668  letter-spacing:0.02em;
1669}
1670#nk-subpage-fournisseurs .nk-cta-hive-reassurance-item svg{ width:18px; height:18px; flex-shrink:0; }
1671
1672@media (max-width:900px){
1673  #nk-subpage-fournisseurs .nk-cta-hive-wrap{ padding-top:44px; }
1674  #nk-subpage-fournisseurs .nk-cta-hive{ padding:52px 0; }
1675  #nk-subpage-fournisseurs .nk-cta-hive-inner{ width:90%; }
1676  #nk-subpage-fournisseurs .nk-cta-hive h2{ font-size:18px !important; }
1677  #nk-subpage-fournisseurs .nk-cta-hive-hive{ opacity:0.55; }
1678  #nk-subpage-fournisseurs .nk-cta-hive-reassurance{ gap:18px 26px; }
1679}
1680
1681@media (max-width:820px){
1682  #nk-subpage-fournisseurs .nk-eyebrow-wrap, #nk-subpage-fournisseurs .nk-subhero,
1683  #nk-subpage-fournisseurs .nk-feature-row, #nk-subpage-fournisseurs .nk-why{ width:90%; }
1684  #nk-subpage-fournisseurs .nk-feature-row, #nk-subpage-fournisseurs .nk-feature-row.reverse{ flex-direction:column; }
1685  #nk-subpage-fournisseurs .nk-subhero h1{ font-size:17px; }
1686}
1687
1688/* ---------- REVEAL (apparition au scroll) ---------- */
1689#nk-subpage-fournisseurs .nk-reveal{
1690  opacity:0;
1691  transition: opacity 1.1s cubic-bezier(.19,1,.22,1), transform 1.1s cubic-bezier(.19,1,.22,1);
1692  will-change: opacity, transform;
1693}
1694#nk-subpage-fournisseurs .nk-reveal-left{ transform: translateX(-38px); }
1695#nk-subpage-fournisseurs .nk-reveal-right{ transform: translateX(38px); }
1696#nk-subpage-fournisseurs .nk-reveal-up{ transform: translateY(22px); }
1697#nk-subpage-fournisseurs .nk-reveal.is-visible{ opacity:1 !important; transform:none !important; }
1698@media (prefers-reduced-motion: reduce){
1699  #nk-subpage-fournisseurs .nk-reveal{ transition:none !important; opacity:1 !important; transform:none !important; }
1700}
1701
1702/* ---------- BADGES (France / RGPD) ---------- */
1703#nk-subpage-fournisseurs .nk-badges{
1704  display:flex; gap:10px; justify-content:center; flex-wrap:wrap;
1705}
1706#nk-subpage-fournisseurs .nk-badge{
1707  display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:400;
1708  color:var(--color-text-light) !important; background:transparent; border:none; padding:0;
1709  letter-spacing:0.02em;
1710}
1711#nk-subpage-fournisseurs .nk-badge svg{ width:16px; height:16px; flex-shrink:0; }
1712</style>
1713
1714<!-- Barre de progression scroll -->
1715<div class="nk-scroll-progress" id="nkScrollProgressFournisseurs" aria-hidden="true"></div>
1716
1717<div class="nk-eyebrow-wrap"><span class="nk-eyebrow nk-reveal nk-reveal-up">Gestion des achats</span></div>
1718
1719<div class="nk-subhero">
1720  <h1 class="nk-reveal nk-reveal-up" style="transition-delay:.08s">Gérez vos fournisseurs</h1>
1721  <p class="nk-reveal nk-reveal-up" style="transition-delay:0.14s">Gérez toutes les informations de vos fournisseurs, créez des contrats, envoyez vos bons de commande, ajoutez des paiements...</p>
1722  <p class="nk-reveal nk-reveal-up" style="transition-delay:0.22s">Ce module s'intègre nativement à Nicoka : vos fournisseurs alimentent directement votre suivi de facturation et de paiements.</p>
1723  <div class="nk-badges nk-reveal nk-reveal-up" style="transition-delay:0.30s">
1724    <span class="nk-badge"><svg viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="11" fill="#e8eef8"/><path d="M7 12.5l3 3.2 7-7.2" stroke="#0d3c6e" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"/></svg>Données hébergées en France</span>
1725    <span class="nk-badge"><svg viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="11" fill="#e8eef8"/><path d="M7 12.5l3 3.2 7-7.2" stroke="#0d3c6e" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"/></svg>Conforme RGPD</span>
1726  </div>
1727</div>
1728
1729<div class="nk-feature-row nk-reveal nk-reveal-left">
1730  <div class="nk-visual">
1731    <svg viewBox="0 0 24 24" fill="none"><rect x="3" y="4" width="18" height="16" rx="2" stroke="#004682" stroke-width="1.8"/><path d="M7 9h10M7 13h10M7 17h6" stroke="#004682" stroke-width="1.6" stroke-linecap="round"/></svg>
1732  </div>
1733  <div class="nk-copy">
1734    <h3>Une fiche fournisseur claire et complète</h3>
1735    <p>Avec Nicoka vous avez sur une seule page un résumé de votre activité vis-à-vis de vos fournisseurs : le chiffre d'affaires réalisé, votre encours de facturation et de paiement...</p>
1736  </div>
1737</div>
1738
1739<div class="nk-feature-row reverse nk-reveal nk-reveal-right">
1740  <div class="nk-visual">
1741    <svg viewBox="0 0 24 24" fill="none"><path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z" stroke="#004682" stroke-width="1.6" stroke-linejoin="round"/></svg>
1742  </div>
1743  <div class="nk-copy">
1744    <h3>Suivez vos échanges</h3>
1745    <p>Tous les messages que vous envoyez à partir de Nicoka à vos fournisseurs sont enregistrés dans leur fil d'actualité. Vous aurez ainsi un historique des différents échanges, que vous en soyez l'auteur ou non.</p>
1746  </div>
1747</div>
1748
1749<div class="nk-cta-hive-wrap">
1750  <section class="nk-cta-hive">
1751    <div class="nk-cta-hive-hive" id="nkHiveFournisseurs" aria-hidden="true"></div>
1752    <div class="nk-cta-hive-inner">
1753      <h2 class="nk-reveal nk-reveal-up">Le seul logiciel dont votre activité commerciale a besoin</h2>
1754      <p class="nk-reveal nk-reveal-up" style="transition-delay:.
175408s">Découvrez en 30 minutes comment Nicoka peut centraliser votre CRM, vos devis et votre facturation.</p>
1755      <div class="nk-reveal nk-reveal-up" style="transition-delay:.16s">
1756        <a href="https://www.nicoka.com/demo" class="nk-cta-hive-btn">Réserver une démonstration <svg viewBox="0 0 12 12" width="12" height="12" fill="none"><path d="M1 6h9M6 2l4 4-4 4" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/></svg></a>
1757      </div>
1758      <div class="nk-cta-hive-reassurance nk-reveal nk-reveal-up" style="transition-delay:.24s">
1759        <div class="nk-cta-hive-reassurance-item">
1760          <svg viewBox="0 0 24 24" fill="none"><path d="M12 21s7-6.5 7-11a7 7 0 1 0-14 0c0 4.5 7 11 7 11z" stroke="#fff" stroke-width="1.5"/><circle cx="12" cy="10" r="2.3" stroke="#fff" stroke-width="1.5"/></svg>
1761          <span>Données hébergées en France</span>
1762        </div>
1763        <div class="nk-cta-hive-reassurance-item">
1764          <svg viewBox="0 0 24 24" fill="none"><path d="M12 3l7 3v6c0 5-3.5 8-7 9-3.5-1-7-4-7-9V6l7-3z" stroke="#fff" stroke-width="1.5" stroke-linejoin="round"/><path d="M9 12l2 2 4-4" stroke="#fff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>
1765          <span>Conforme RGPD</span>
1766        </div>
1767        <div class="nk-cta-hive-reassurance-item">
1768          <svg viewBox="0 0 24 24" fill="none"><path d="M4 13a8 8 0 0 1 16 0" stroke="#fff" stroke-width="1.5" stroke-linecap="round"/><rect x="2.5" y="13" width="4" height="6" rx="1.5" stroke="#fff" stroke-width="1.5"/><rect x="17.5" y="13" width="4" height="6" rx="1.5" stroke="#fff" stroke-width="1.5"/></svg>
1769          <span>Accompagnement sur la durée</span>
1770        </div>
1771      </div>
1772    </div>
1773  </section>
1774</div>
1775
1776<script>
1777(function() {
1778  const container = document.getElementById('nkHiveFournisseurs');
1779  if (!container) return;
1780
1781  function build() {
1782    const rect = container.getBoundingClientRect();
1783    const w = Math.max(1, rect.width);
1784    const h = Math.max(1, rect.height);
1785
1786    const r = 28;
1787    const hexWidth = r * Math.sqrt(3);
1788    const dx = hexWidth;
1789    const dy = r * 1.5;
1790    const cols = Math.ceil(w / dx) + 2;
1791    const rows = Math.ceil(h / dy) + 2;
1792
1793    const halfW = (hexWidth / 2).toFixed(2);
1794    const poly = `0,${(-r).toFixed(2)} ${halfW},${(-r/2).toFixed(2)} ${halfW},${(r/2).toFixed(2)} 0,${r.toFixed(2)} -${halfW},${(r/2).toFixed(2)} -${halfW},${(-r/2).toFixed(2)}`;
1795
1796    let svg = `<svg viewBox="0 0 ${Math.round(w)} ${Math.round(h)}" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none">`;
1797    svg += `<defs><polygon id="nkHiveFournisseursHex" points="${poly}"/></defs><g>`;
1798
1799    let idx = 0;
1800    for (let row = 0; row < rows; row++) {
1801      for (let col = 0; col < cols; col++) {
1802        const cx = col * dx + (row % 2 ? dx / 2 : 0);
1803        const cy = row * dy;
1804        const hash = ((idx * 2654435761) ^ 0x9e3779b9) >>> 0;
1805        const rand = hash / 4294967295;
1806        const rand2 = ((hash >> 8) >>> 0) / 4294967295;
1807
1808        let cls = 'hex';
1809        let extra = '';
1810        if (rand < 0.018) {
1811          cls += ' hex--halo';
1812          extra = ` style="animation-delay:-${(rand2 * 20).toFixed(2)}s"`;
1813        } else if (rand < 0.10) {
1814          cls += ' hex--breath';
1815          extra = ` style="animation-delay:-${(rand2 * 16).toFixed(2)}s"`;
1816        } else if (rand < 0.35) {
1817          cls += ' hex--mid';
1818        } else if (rand < 0.70) {
1819          cls += ' hex--base';
1820        } else {
1821          cls += ' hex--faint';
1822        }
1823        svg += `<use href="#nkHiveFournisseursHex" x="${cx.toFixed(2)}" y="${cy.toFixed(2)}" class="${cls}"${extra}/>`;
1824        idx++;
1825      }
1826    }
1827    svg += '</g></svg>';
1828    container.innerHTML = svg;
1829  }
1830
1831  build();
1832
1833  var rebuildTimer;
1834  var lastW = 0, lastH = 0;
1835
1836  function scheduleRebuild(w, h) {
1837    if (Math.abs(w - lastW) < 2 && Math.abs(h - lastH) < 2) return;
1838    clearTimeout(rebuildTimer);
1839    rebuildTimer = setTimeout(function() {
1840      build();
1841      lastW = w;
1842      lastH = h;
1843    }, 120);
1844  }
1845
1846  if ('ResizeObserver' in window) {
1847    var ro = new ResizeObserver(function(entries) {
1848      var entry = entries[0];
1849      var box = entry.contentRect;
1850      scheduleRebuild(box.width, box.height);
1851    });
1852    ro.observe(container);
1853  } else {
1854    [300, 800, 1600].forEach(function(delay) {
1855      setTimeout(function() {
1856        var rect = container.getBoundingClientRect();
1857        scheduleRebuild(rect.width, rect.height);
1858      }, delay);
1859    });
1860    window.addEventListener('resize', function() {
1861      var rect = container.getBoundingClientRect();
1862      scheduleRebuild(rect.width, rect.height);
1863    }, { passive: true });
1864  }
1865})();
1866</script>
1866
1867
1868<div class="nk-why">
1869  <h2>Pourquoi choisir Nicoka ?</h2>
1870  <ul>
1871    <li class="nk-reveal nk-reveal-left" style="transition-delay:0.00s"><svg viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="11" fill="#e8eef8"/><path d="M7 12.5l3 3.2 7-7.2" stroke="#0d3c6e" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"/></svg><span><strong>Tout-en-un.</strong> Un outil modulable et puissant technologiquement, qui rassemble plusieurs modules métiers.</span></li>
1872    <li class="nk-reveal nk-reveal-right" style="transition-delay:0.08s"><svg viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="11" fill="#e8eef8"/><path d="M7 12.5l3 3.2 7-7.2" stroke="#0d3c6e" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"/></svg><span><strong>100 % paramétrable.</strong> Champs, étapes et workflows s'adaptent à votre façon de travailler, pas l'inverse.</span></li>
1873    <li class="nk-reveal nk-reveal-left" style="transition-delay:0.16s"><svg viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="11" fill="#e8eef8"/><path d="M7 12.5l3 3.2 7-7.2" stroke="#0d3c6e" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"/></svg><span><strong>Souverain &amp; sécurisé.</strong> Technologie propriétaire, serveurs en France, conformité RGPD et données jamais exploitées commercialement.</span></li>
1874    <li class="nk-reveal nk-reveal-right" style="transition-delay:0.24s"><svg viewBox="0 0 24 24" fill="none"><circle cx="12" cy="12" r="11" fill="#e8eef8"/><path d="M7 12.5l3 3.2 7-7.2" stroke="#0d3c6e" stroke-width="2.3" stroke-linecap="round" stroke-linejoin="round"/></svg><span><strong>Un accompagnement reconnu.</strong> Support réactif, disponible pour vous accompagner au quotidien.</span></li>
1875  </ul>
1876</div>
1877
1878<script>
1879(function(){
1880  var root = document.getElementById('nk-subpage-fournisseurs');
1881  if(!root) return;
1882  var els = root.querySelectorAll('.nk-reveal');
1883  if(!els.length) return;
1884
1885  if(!('IntersectionObserver' in window) || window.matchMedia('(prefers-reduced-motion: reduce)').matches){
1886    els.forEach(function(el){ el.classList.add('is-visible'); });
1887    return;
1888  }
1889
1890  var io = new IntersectionObserver(function(entries){
1891    entries.forEach(function(entry){
1892      if(entry.isIntersecting){
1893        entry.target.classList.add('is-visible');
1894        io.unobserve(entry.target);
1895      }
1896    });
1897  }, { threshold: 0.15, rootMargin: '0px 0px -60px 0px' });
1898
1899  els.forEach(function(el){ io.observe(el); });
1900})();
1901</script>
1901
1902
1903<!-- Script barre de progression scroll -->
1904<script>
1905(function(){
1906  var bar = document.getElementById('nkScrollProgressFournisseurs');
1907  if (!bar) return;
1908
1909  function update(){
1910    var doc = document.documentElement;
1911    var scrollTop = window.pageYOffset || doc.scrollTop || document.body.scrollTop || 0;
1912    var scrollHeight = (doc.scrollHeight || document.body.scrollHeight) - doc.clientHeight;
1913    var pct = scrollHeight > 0 ? Math.min(100, Math.max(0, (scrollTop / scrollHeight) * 100)) : 0;
1914    bar.style.width = pct + '%';
1915  }
1916
1917  update();
1918  window.addEventListener('scroll', update, { passive: true });
1919  window.addEventListener('resize', update);
1920  setTimeout(update, 500);
1921  setTimeout(update, 1500);
1922})();
1923</script>
1923
1924
1925<script>
1926(function(){
1927  var el = document.getElementById('nk-subpage-fournisseurs');
1928  if(!el) return;
1929
1930  function fullBleed(){
1931    el.style.setProperty('width', '', '');
1932    el.style.setProperty('margin-left', '', '');
1933    el.style.setProperty('margin-right', '', '');
1934
1935    var rect = el.getBoundingClientRect();
1936    var vw = window.innerWidth || document.documentElement.clientWidth;
1937
1938    el.style.setProperty('width', vw + 'px', 'important');
1939    el.style.setProperty('max-width', vw + 'px', 'important');
1940    el.style.setProperty('margin-left', (-rect.left) + 'px', 'important');
1941    el.style.setProperty('margin-right', 'auto', 'important');
1942
1943    var parent = el.parentElement;
1944    var depth = 0;
1945    while (parent && depth < 10) {
1946      parent.style.setProperty('height', 'auto', 'important');
1947      parent.style.setProperty('min-height', 'auto', 'important');
1948      parent = parent.parentElement;
1949      depth++;
1950    }
1951  }
1952
1953  fullBleed();
1954  window.addEventListener('resize', function(){
1955    clearTimeout(window.__nkFournisseursResizeTimer);
1956    window.__nkFournisseursResizeTimer = setTimeout(fullBleed, 150);
1957  });
1958  window.addEventListener('load', fullBleed);
1959  setTimeout(fullBleed, 500);
1960  setTimeout(fullBleed, 1500);
1961})();
1962</script>
1962
1963
1964</div><!-- ═══════════════════════════════════════════════════════════════════
1965     NICOKA — BLOC SCROLL LUXE (autonome, Lenis embarqué)
1966     À coller tel quel sur chaque page où tu veux l'effet
1967     (homepage + pages solutions). Rien à configurer ailleurs,
1968     aucune dépendance externe, aucun script global à toucher.
1969═══════════════════════════════════════════════════════════════════ -->
1970<style>
1971  /* Règles recommandées par Lenis pour un fonctionnement propre */
1972  html.lenis, html.lenis body {
1973    height: auto;
1974  }
1975  .lenis.lenis-smooth {
1976    scroll-behavior: auto !important;
1977  }
1978  .lenis.lenis-smooth [data-lenis-prevent] {
1979    overscroll-behavior: contain;
1980  }
1981  .lenis.lenis-stopped {
1982    overflow: hidden;
1983  }
1984  .lenis.lenis-scrolling iframe {
1985    pointer-events: none;
1986  }
1987</style>
1988
1989<script>
1990/* Lenis v1.1.13 — embarqué directement (évite tout blocage CSP/CDN côté CMS) */
1991!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).Lenis=i()}(this,(function(){"use strict";function clamp(t,i,e){return Math.max(t,Math.min(i,e))}class Animate{constructor(){this.isRunning=!1,this.value=0,this.from=0,this.to=0,this.currentTime=0}advance(t){var i;if(!this.isRunning)return;let e=!1;if(this.duration&&this.easing){this.currentTime+=t;const i=clamp(0,this.currentTime/this.duration,1);e=i>=1;const s=e?1:this.easing(i);this.value=this.from+(this.to-this.from)*s}else this.lerp?(this.value=function damp(t,i,e,s){return function lerp(t,i,e){return(1-e)*t+e*i}(t,i,1-Math.exp(-e*s))}(this.value,this.to,60*this.lerp,t),Math.round(this.value)===this.to&&(this.value=this.to,e=!0)):(this.value=this.to,e=!0);e&&this.stop(),null===(i=this.onUpdate)||void 0===i||i.call(this,this.value,e)}stop(){this.isRunning=!1}fromTo(t,i,{lerp:e,duration:s,easing:o,onStart:n,onUpdate:l}){this.from=this.value=t,this.to=i,this.lerp=e,this.duration=s,this.easing=o,this.currentTime=0,this.isRunning=!0,null==n||n(),this.onUpdate=l}}class Dimensions{constructor(t,i,{autoResize:e=!0,debounce:s=250}={}){this.wrapper=t,this.content=i,this.width=0,this.height=0,this.scrollHeight=0,this.scrollWidth=0,this.resize=()=>{this.onWrapperResize(),this.onContentResize()},this.onWrapperResize=()=>{this.wrapper instanceof Window?(this.width=window.innerWidth,this.height=window.innerHeight):(this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight)},this.onContentResize=()=>{this.wrapper instanceof Window?(this.scrollHeight=this.content.scrollHeight,this.scrollWidth=this.content.scrollWidth):(this.scrollHeight=this.wrapper.scrollHeight,this.scrollWidth=this.wrapper.scrollWidth)},e&&(this.debouncedResize=function debounce(t,i){let e;return function(...s){let o=this;clearTimeout(e),e=setTimeout((()=>{e=void 0,t.apply(o,s)}),i)}}(this.resize,s),this.wrapper instanceof Window?window.addEventListener("resize",this.debouncedResize,!1):(this.wrapperResizeObserver=new ResizeObserver(this.debouncedResize),this.wrapperResizeObserver.observe(this.wrapper)),this.contentResizeObserver=new ResizeObserver(this.debouncedResize),this.contentResizeObserver.observe(this.content)),this.resize()}destroy(){var t,i;null===(t=this.wrapperResizeObserver)||void 0===t||t.disconnect(),null===(i=this.contentResizeObserver)||void 0===i||i.disconnect(),this.wrapper===window&&this.debouncedResize&&window.removeEventListener("resize",this.debouncedResize,!1)}get limit(){return{x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}}class Emitter{constructor(){this.events={}}emit(t,...i){var e;let s=this.events[t]||[];for(let t=0,o=s.length;t<o;t++)null===(e=s[t])||void 0===e||e.call(s,...i)}on(t,i){var e;return(null===(e=this.events[t])||void 0===e?void 0:e.push(i))||(this.events[t]=[i]),()=>{var e;this.events[t]=null===(e=this.events[t])||void 0===e?void 0:e.filter((t=>i!==t))}}off(t,i){var e;this.events[t]=null===(e=this.events[t])||void 0===e?void 0:e.filter((t=>i!==t))}destroy(){this.events={}}}const t=100/6,i={passive:!1};class VirtualScroll{constructor(e,s={wheelMultiplier:1,touchMultiplier:1}){this.element=e,this.options=s,this.touchStart={x:0,y:0},this.lastDelta={x:0,y:0},this.window={width:0,height:0},this.emitter=new Emitter,this.onTouchStart=t=>{const{clientX:i,clientY:e}=t.targetTouches?t.targetTouches[0]:t;this.touchStart.x=i,this.touchStart.y=e,this.lastDelta={x:0,y:0},this.emitter.emit("scroll",{deltaX:0,deltaY:0,event:t})},this.onTouchMove=t=>{const{clientX:i,clientY:e}=t.targetTouches?t.targetTouches[0]:t,s=-(i-this.touchStart.x)*this.options.touchMultiplier,o=-(e-this.touchStart.y)*this.options.touchMultiplier;this.touchStart.x=i,this.touchStart.y=e,this.lastDelta={x:s,y:o},this.emitter.emit("scroll",{deltaX:s,deltaY:o,event:t})},this.onTouchEnd=t=>{this.emitter.emit("scroll",{deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:t})},this.onWheel=i=>{let{deltaX:e,deltaY:s,deltaMode:o}=i;e*=1===o?t:2===o?this.window.width:1,s*=1===o?t:2===o?this.window.height:1,e*=this.options.wheelMultiplier,s*=this.options.wheelMultiplier,this.emitter.emit("scroll",{deltaX:e,deltaY:s,event:i})},this.onWindowResize=()=>{this.window={width:window.innerWidth,height:window.innerHeight}},window.addEventListener("resize",this.onWindowResize,!1),this.onWindowResize(),this.element.addEventListener("wheel",this.onWheel,i),this.element.addEventListener("touchstart",this.onTouchStart,i
1991),this.element.addEventListener("touchmove",this.onTouchMove,i),this.element.addEventListener("touchend",this.onTouchEnd,i)}on(t,i){return this.emitter.on(t,i)}destroy(){this.emitter.destroy(),window.removeEventListener("resize",this.onWindowResize,!1),this.element.removeEventListener("wheel",this.onWheel,i),this.element.removeEventListener("touchstart",this.onTouchStart,i),this.element.removeEventListener("touchmove",this.onTouchMove,i),this.element.removeEventListener("touchend",this.onTouchEnd,i)}}return class Lenis{constructor({wrapper:t=window,content:i=document.documentElement,eventsTarget:e=t,smoothWheel:s=!0,syncTouch:o=!1,syncTouchLerp:n=.075,touchInertiaMultiplier:l=35,duration:r,easing:h=(t=>Math.min(1,1.001-Math.pow(2,-10*t))),lerp:a=.1,infinite:c=!1,orientation:u="vertical",gestureOrientation:d="vertical",touchMultiplier:p=1,wheelMultiplier:m=1,autoResize:v=!0,prevent:g,virtualScroll:S,__experimental__naiveDimensions:w=!1}={}){this._isScrolling=!1,this._isStopped=!1,this._isLocked=!1,this._preventNextNativeScrollEvent=!1,this._resetVelocityTimeout=null,this.time=0,this.userData={},this.lastVelocity=0,this.velocity=0,this.direction=0,this.animate=new Animate,this.emitter=new Emitter,this.onPointerDown=t=>{1===t.button&&this.reset()},this.onVirtualScroll=t=>{if("function"==typeof this.options.virtualScroll&&!1===this.options.virtualScroll(t))return;const{deltaX:i,deltaY:e,event:s}=t;if(this.emitter.emit("virtual-scroll",{deltaX:i,deltaY:e,event:s}),s.ctrlKey)return;const o=s.type.includes("touch"),n=s.type.includes("wheel");this.isTouching="touchstart"===s.type||"touchmove"===s.type;if(this.options.syncTouch&&o&&"touchstart"===s.type&&!this.isStopped&&!this.isLocked)return void this.reset();const l=0===i&&0===e,r="vertical"===this.options.gestureOrientation&&0===e||"horizontal"===this.options.gestureOrientation&&0===i;if(l||r)return;let h=s.composedPath();h=h.slice(0,h.indexOf(this.rootElement));const a=this.options.prevent;if(h.find((t=>{var i,e,s,l,r;return t instanceof HTMLElement&&("function"==typeof a&&(null==a?void 0:a(t))||(null===(i=t.hasAttribute)||void 0===i?void 0:i.call(t,"data-lenis-prevent"))||o&&(null===(e=t.hasAttribute)||void 0===e?void 0:e.call(t,"data-lenis-prevent-touch"))||n&&(null===(s=t.hasAttribute)||void 0===s?void 0:s.call(t,"data-lenis-prevent-wheel"))||(null===(l=t.classList)||void 0===l?void 0:l.contains("lenis"))&&!(null===(r=t.classList)||void 0===r?void 0:r.contains("lenis-stopped")))})))return;if(this.isStopped||this.isLocked)return void s.preventDefault();if(!(this.options.syncTouch&&o||this.options.smoothWheel&&n))return this.isScrolling="native",void this.animate.stop();s.preventDefault();let c=e;"both"===this.options.gestureOrientation?c=Math.abs(e)>Math.abs(i)?e:i:"horizontal"===this.options.gestureOrientation&&(c=i);const u=o&&this.options.syncTouch,d=o&&"touchend"===s.type&&Math.abs(c)>5;d&&(c=this.velocity*this.options.touchInertiaMultiplier),this.scrollTo(this.targetScroll+c,Object.assign({programmatic:!1},u?{lerp:d?this.options.syncTouchLerp:1}:{lerp:this.options.lerp,duration:this.options.duration,easing:this.options.easing}))},this.onNativeScroll=()=>{if(null!==this._resetVelocityTimeout&&(clearTimeout(this._resetVelocityTimeout),this._resetVelocityTimeout=null),this._preventNextNativeScrollEvent)this._preventNextNativeScrollEvent=!1;else if(!1===this.isScrolling||"native"===this.isScrolling){const t=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity,this.velocity=this.animatedScroll-t,this.direction=Math.sign(this.animatedScroll-t),this.isScrolling="native",this.emit(),0!==this.velocity&&(this._resetVelocityTimeout=setTimeout((()=>{this.lastVelocity=this.velocity,this.velocity=0,this.isScrolling=!1,this.emit()}),400))}},window.lenisVersion="1.1.13",t&&t!==document.documentElement&&t!==document.body||(t=window),this.options={wrapper:t,content:i,eventsTarget:e,smoothWheel:s,syncTouch:o,syncTouchLerp:n,touchInertiaMultiplier:l,duration:r,easing:h,lerp:a,infinite:c,gestureOrientation:d,orientation:u,touchMultiplier:p,wheelMultiplier:m,autoResize:v,prevent:g,virtualScroll:S,__experimental__naiveDimensions:w},this.dimensions=new Dimensions(t,i,{autoResize:v}),this.updateClassName(),this.targetScroll=this.animatedScroll=this.actualScroll,this.options.wrapper.addEventListener("scroll",this.onNativeScroll,!1),this.options.wrapper.addEventListener("pointerdown",this.onPointerDown,!1),this.virtualScroll=ne
1991w VirtualScroll(e,{touchMultiplier:p,wheelMultiplier:m}),this.virtualScroll.on("scroll",this.onVirtualScroll)}destroy(){this.emitter.destroy(),this.options.wrapper.removeEventListener("scroll",this.onNativeScroll,!1),this.options.wrapper.removeEventListener("pointerdown",this.onPointerDown,!1),this.virtualScroll.destroy(),this.dimensions.destroy(),this.cleanUpClassName()}on(t,i){return this.emitter.on(t,i)}off(t,i){return this.emitter.off(t,i)}setScroll(t){this.isHorizontal?this.rootElement.scrollLeft=t:this.rootElement.scrollTop=t}resize(){this.dimensions.resize(),this.animatedScroll=this.targetScroll=this.actualScroll,this.emit()}emit(){this.emitter.emit("scroll",this)}reset(){this.isLocked=!1,this.isScrolling=!1,this.animatedScroll=this.targetScroll=this.actualScroll,this.lastVelocity=this.velocity=0,this.animate.stop()}start(){this.isStopped&&(this.isStopped=!1,this.reset())}stop(){this.isStopped||(this.isStopped=!0,this.animate.stop(),this.reset())}raf(t){const i=t-(this.time||t);this.time=t,this.animate.advance(.001*i)}scrollTo(t,{offset:i=0,immediate:e=!1,lock:s=!1,duration:o=this.options.duration,easing:n=this.options.easing,lerp:l=this.options.lerp,onStart:r,onComplete:h,force:a=!1,programmatic:c=!0,userData:u}={}){if(!this.isStopped&&!this.isLocked||a){if("string"==typeof t&&["top","left","start"].includes(t))t=0;else if("string"==typeof t&&["bottom","right","end"].includes(t))t=this.limit;else{let e;if("string"==typeof t?e=document.querySelector(t):t instanceof HTMLElement&&(null==t?void 0:t.nodeType)&&(e=t),e){if(this.options.wrapper!==window){const t=this.rootElement.getBoundingClientRect();i-=this.isHorizontal?t.left:t.top}const s=e.getBoundingClientRect();t=(this.isHorizontal?s.left:s.top)+this.animatedScroll}}if("number"==typeof t){if(t+=i,t=Math.round(t),this.options.infinite?c&&(this.targetScroll=this.animatedScroll=this.scroll):t=clamp(0,t,this.limit),t===this.targetScroll)return null==r||r(this),void(null==h||h(this));if(this.userData=null!=u?u:{},e)return this.animatedScroll=this.targetScroll=t,this.setScroll(this.scroll),this.reset(),this.preventNextNativeScrollEvent(),this.emit(),null==h||h(this),void(this.userData={});c||(this.targetScroll=t),this.animate.fromTo(this.animatedScroll,t,{duration:o,easing:n,lerp:l,onStart:()=>{s&&(this.isLocked=!0),this.isScrolling="smooth",null==r||r(this)},onUpdate:(t,i)=>{this.isScrolling="smooth",this.lastVelocity=this.velocity,this.velocity=t-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=t,this.setScroll(this.scroll),c&&(this.targetScroll=t),i||this.emit(),i&&(this.reset(),this.emit(),null==h||h(this),this.userData={},this.preventNextNativeScrollEvent())}})}}}preventNextNativeScrollEvent(){this._preventNextNativeScrollEvent=!0,requestAnimationFrame((()=>{this._preventNextNativeScrollEvent=!1}))}get rootElement(){return this.options.wrapper===window?document.documentElement:this.options.wrapper}get limit(){return this.options.__experimental__naiveDimensions?this.isHorizontal?this.rootElement.scrollWidth-this.rootElement.clientWidth:this.rootElement.scrollHeight-this.rootElement.clientHeight:this.dimensions.limit[this.isHorizontal?"x":"y"]}get isHorizontal(){return"horizontal"===this.options.orientation}get actualScroll(){return this.isHorizontal?this.rootElement.scrollLeft:this.rootElement.scrollTop}get scroll(){return this.options.infinite?function modulo(t,i){return(t%i+i)%i}(this.animatedScroll,this.limit):this.animatedScroll}get progress(){return 0===this.limit?1:this.scroll/this.limit}get isScrolling(){return this._isScrolling}set isScrolling(t){this._isScrolling!==t&&(this._isScrolling=t,this.updateClassName())}get isStopped(){return this._isStopped}set isStopped(t){this._isStopped!==t&&(this._isStopped=t,this.updateClassName())}get isLocked(){return this._isLocked}set isLocked(t){this._isLocked!==t&&(this._isLocked=t,this.updateClassName())}get isSmooth(){return"smooth"===this.isScrolling}get className(){let t="lenis";return this.isStopped&&(t+=" lenis-stopped"),this.isLocked&&(t+=" lenis-locked"),this.isScrolling&&(t+=" lenis-scrolling"),"smooth"===this.isScrolling&&(t+=" lenis-smooth"),t}updateClassName(){this.cleanUpClassName(),this.rootElement.className=`${this.rootElement.className} ${this.className}`.trim()}cleanUpClassName(){this.rootElement.className=this.rootElement.className.replace(/lenis(-w+)?/g,"").trim()}}}));
1992//# sourceMappingURL=lenis.min.js.map
1993</script>
1993
1994
1995<script>
1996(function() {
1997  if (window.__nkLenis) return;
1998  if (typeof Lenis === 'undefined') return;
1999  if (window.matchMedia('(hover: none), (pointer: coarse)').matches) return; // pas sur tactile/mobile
2000  if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return; // respecte l'accessibilité
2001  window.__nkLenis = true;
2002
2003  var lenis = new Lenis({
2004    duration: 0.42,           // rééquilibré : plus réactif qu'avant (était 0.6, ressenti trop lent)
2005    easing: function (t) { return 1 - Math.pow(1 - t, 3); }, // easeOutCubic
2006    smoothWheel: true,
2007    wheelMultiplier: 1,
2008    touchMultiplier: 1.2,
2009    infinite: false,
2010  });
2011
2012  function raf(time) {
2013    lenis.raf(time);
2014    window.requestAnimationFrame(raf);
2015  }
2016  window.requestAnimationFrame(raf);
2017})();
2018</script>
2018
2019
2020<!-- ═══════════════════════════════════════════════════════════════════
2021     NICOKA — APPARITIONS SMOOTH AU SCROLL (fondu + léger déplacement)
2022     Cible automatiquement les blocs standards de la homepage.
2023     N'entre pas en conflit avec l'ancien système ".animate" existant
2024     (classes distinctes : .nk-reveal-block).
2025═══════════════════════════════════════════════════════════════════ -->
2026<style>
2027  .nk-reveal-block {
2028    opacity: 0;
2029    transform: translateY(52px);
2030    transition: opacity 1s cubic-bezier(.19,1,.22,1), transform 1s cubic-bezier(.19,1,.22,1);
2031    will-change: opacity, transform;
2032  }
2033  .nk-reveal-block.is-visible {
2034    opacity: 1;
2035    transform: none;
2036  }
2037  @media (prefers-reduced-motion: reduce) {
2038    .nk-reveal-block {
2039      transition: none !important;
2040      opacity: 1 !important;
2041      transform: none !important;
2042    }
2043  }
2044</style>
2045
2046<script>
2047(function() {
2048  if (window.__nkRevealBlocks) return;
2049  window.__nkRevealBlocks = true;
2050
2051  // Sections/blocs standards de la homepage Nicoka. Complète cette liste
2052  // si tu ajoutes de nouveaux blocs plus tard.
2053  var SECTION_SELECTORS = [
2054    '.header',
2055    '.solutions-section',
2056    '.solutions-2.offers',
2057    '.logo-slider',
2058    '.section-cards',
2059    '.stats-section',
2060    '.ai-section',
2061    '.partenaires',
2062    '.tst-wrap',
2063    '.news-section',
2064    '.cta-wrap'
2065  ];
2066
2067  // Cartes/éléments internes à faire apparaître en cascade (léger décalage)
2068  var CARD_SELECTORS = [
2069    '.solution-card',
2070    '.offer-card',
2071    '.stat-box',
2072    '.news-section .card',
2073    '.nk-testi-card'
2074  ];
2075
2076  function prepare() {
2077    SECTION_SELECTORS.forEach(function(sel) {
2078      document.querySelectorAll(sel).forEach(function(el) {
2079        if (!el.classList.contains('nk-reveal-block')) {
2080          el.classList.add('nk-reveal-block');
2081        }
2082      });
2083    });
2084
2085    CARD_SELECTORS.forEach(function(sel) {
2086      document.querySelectorAll(sel).forEach(function(el, i) {
2087        if (!el.classList.contains('nk-reveal-block')) {
2088          el.classList.add('nk-reveal-block');
2089          el.style.transitionDelay = Math.min(i * 0.08, 0.4) + 's';
2090        }
2091      });
2092    });
2093  }
2094
2095  function observe() {
2096    var els = document.querySelectorAll('.nk-reveal-block:not(.is-visible)');
2097    if (!els.length) return;
2098
2099    if (!('IntersectionObserver' in window) || window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
2100      els.forEach(function(el) { el.classList.add('is-visible'); });
2101      return;
2102    }
2103
2104    var io = new IntersectionObserver(function(entries) {
2105      entries.forEach(function(entry) {
2106        if (entry.isIntersecting) {
2107          entry.target.classList.add('is-visible');
2108          io.unobserve(entry.target);
2109        }
2110      });
2111    }, { threshold: 0.15, rootMargin: '0px 0px -60px 0px' });
2112
2113    els.forEach(function(el) { io.observe(el); });
2114  }
2115
2116  function init() {
2117    prepare();
2118    observe();
2119  }
2120
2121  if (document.readyState === 'loading') {
2122    document.addEventListener('DOMContentLoaded', init);
2123  } else {
2124    init();
2125  }
2126})();
2127</script>
2127
2128</div>
2129</div>
2130</section>
2131<script src="//code.tidio.co/ukwgoz0dfmtpze6xkp6qr2xznrrwa4vx.js" async></script>
2131<!-- Footer Nicoka -->
2132<footer class="footer">
2133  <div class="footer-container">
2134    <!-- Logo et tagline -->
2135    <div class="footer-brand">
2136      <img src="https://www.nicoka.com/assets/img/1026/img_2b6a7692a145.svg" alt="Logo Nicoka">
2137      <p><strong>Experts du sur-mesure</strong></p>
2138      <div class="footer-contact">
2139        <span class="contact-label">Contactez-nous :</span>
2140        <a href="tel:+33189167739">+33 1 89 16 77 39</a>
2141        <a href="mailto:[email protected]">[email protected]</a>
2142      </div>
2143      <a href="https://www.nicoka.com/demo?utm_source=nicoka&utm_medium=footer&utm_content=demo" class="footer-cta" style="border-radius: 3px;">
2144        Échangez avec un expert <span>→</span>
2145      </a>
2146    </div>
2147    <!-- Liens -->
2148    <div class="footer-links">
2149      <div class="footer-col">
2150        <h4>Solutions</h4>
2151        <a class="footer-logo footer-logo--cabs" href="https://cabs.nicoka.com/?utm_source=nicoka&utm_medium=footer&utm_content=cabs"><img src="https://www.nicoka.com/assets/img/global/img_f1acbb8ed748.svg" alt="Logo CABS by Nicoka"><span class="footer-logo__accroche">Solution de recrutement tout-en-un</span></a>
2152        <a class="footer-logo footer-logo--sirh" href="https://sirh.nicoka.com/?utm_source=nicoka&utm_medium=footer&utm_content=sirh"><img src="https://www.nicoka.com/assets/img/1026/img_8c95b1231581.svg" alt="Logo Nicoka SIRH"><span class="footer-logo__accroche">Solution SIRH sur-mesure</span></a>
2153        <a href="https://www.nicoka.com/solutions/gestion-des-achats/gerez-vos-produits-et-vos-services">Achats</a>
2154        <a href="https://www.nicoka.com/gestion-des-ventes/gestion-des-clients">Ventes</a>
2155        <a href="https://crm.nicoka.com">Nicoka CRM</a>
2156      </div>
2157      <div class="footer-col">
2158        <h4>Ressources</h4>
2159        <a href="https://cabs.nicoka.com/cas-clients">Nos clients</a>
2160        <a href="https://blog.nicoka.com">Blog</a>
2161        <a href="https://support.nicoka.com">Support</a>
2162      </div>
2163      <div class="footer-col">
2164        <h4>En savoir plus</h4>
2165        <a href="https://cabs.nicoka.com/a-propos">À propos</a>
2166        <a href="https://www.nicoka.com/demo?utm_source=nicoka&utm_medium=footer&utm_content=nous-contacter">Nous contacter</a>
2167        <!-- LinkedIn déplacé ici -->
2168        <div class="footer-social-col">
2169          <a href="https://www.linkedin.com/company/nicoka" aria-label="LinkedIn" class="footer-social-btn">
2170            <span>in</span>
2171          </a>
2172        </div>
2173      </div>
2174    </div>
2175  </div>
2176
2177  <!-- Bas de page -->
2178  <div class="footer-bottom-wrap">
2179    <div class="footer-bottom">
2180      <div class="footer-bottom-left">
2181        <span class="copyright">© 2026 Nicoka – Tous droits réservés</span>
2182      </div>
2183      <div class="footer-bottom-right">
2184        <a href="https://www.nicoka.com/conditions-generales-de-services">Conditions générales de services</a>
2185        <a href="https://www.nicoka.com/politique-de-confidentialite">Politique de confidentialité</a>
2186        <a href="https://www.nicoka.com/politique-confidentialite-mobile">Politique de confidentialité Mobile</a>
2187        <a href="https://www.nicoka.com/divulgation-des-vulnerabilites">Divulgation des vulnérabilités</a>
2188      </div>
2189    </div>
2190  </div>
2191</footer>
2192
2193<style>
2194  /* ========== FOOTER PRINCIPAL ========== */
2195  .footer {
2196    background: linear-gradient(to bottom, #004682 0%, #003d70 65%, #002a4e 100%);
2197    color: white;
2198    padding: 60px 40px 0;
2199    font-family: 'Poppins', sans-serif !important;
2200  }
2201  .footer-container {
2202    max-width: 1200px;
2203    margin: 0 auto;
2204    display: grid;
2205    grid-template-columns: 1fr 2fr;
2206    gap: 40px;
2207    align-items: start;
2208    padding-bottom: 60px;
2209  }
2210
2211  /* ========== BRAND ========== */
2212  .footer .footer-brand img {
2213    height: 40px;
2214    margin-bottom: 15px;
2215    transition: transform 0.3s ease;
2216  }
2217  .footer .footer-brand img:hover { transform: scale(1.05); }
2218  .footer .footer-brand p {
2219    font-size: 14px;
2220    line-height: 1.6;
2221    color: white !important;
2222    margin: 0 0 20px 0;
2223  }
2224
2225  /* ========== CONTACT ========== */
2226  .footer .footer-contact {
2227    display: flex;
2228    flex-direction: column;
2229    gap: 6px;
2230    margin-bottom: 20px;
2231  }
2232  .footer .footer-contact .contact-label {
2233    font-size: 13px;
2234    font-weight: 600;
2235    color: white !important;
2236    margin-bottom: 4px;
2237  }
2238  .footer .footer-contact a {
2239    font-size: 13px;
2240    color: rgba(255,255,255,0.9) !important;
2241    text-decoration: none;
2242    transition: all 0.3s ease;
2243  }
2244  .footer .footer-contact a:hover { color: white !important; padding-left: 4px; }
2245
2246  /* ========== CTA ========== */
2247  .footer .footer-cta {
2248    display: inline-flex;
2249    align-items: center;
2250    gap: 10px;
2251    padding: 12px 24px;
2252    background: white;
2253    color: #004682 !important;
2254    font-size: 14px;
2255    font-weight: 600;
2256    text-decoration: none;
2257    border-radius: 6px;
2258    transition: all 0.3s ease;
2259  }
2260  .footer .footer-cta:hover {
2261    background: rgba(255,255,255,0.9);
2262    transform: translateY(-2px);
2263    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
2264  }
2265  .footer .footer-cta span { transition: transform 0.3s ease; }
2266  .footer .footer-cta:hover span { transform: translateX(4px); }
2267
2268  /* ========== LIENS ========== */
2269  .footer .footer-links {
2270    display: grid;
2271    grid-template-columns: repeat(3, 1fr);
2272    gap: 15px;
2273    margin-left: -50px;
2274  }
2275  .footer .footer-col h4 {
2276    font-size: 15px;
2277    font-weight: 600;
2278    margin-bottom: 15px;
2279    color: white !important;
2280  }
2281  .footer .footer-col h4::after { display: none; }
2282  .footer .footer-col a {
2283    display: block;
2284    font-size: 13px;
2285    text-decoration: none;
2286    color: rgba(255,255,255,0.9) !important;
2287    margin: 10px 0;
2288    transition: all 0.3s ease;
2289  }
2290  .footer .footer-col a:hover { color: #fff !important; padding-left: 4px; }
2291
2292  /* ========== LINKEDIN SOUS "EN SAVOIR PLUS" ========== */
2293  .footer-social-col { margin-top: 18px; }
2294  .footer .footer-col .footer-social-btn {
2295    display: inline-flex !important;
2296    justify-content: center !important;
2297    align-items: center !important;
2298    width: 28px !important;
2299    height: 24px !important;
2300    padding: 0 !important;
2301    border-radius: 6px !important;
2302    background: transparent !important;
2303    color: rgba(255,255,255,0.7) !important;
2304    font-size: 12px !important;
2305    font-weight: 600 !important;
2306    text-decoration: none !important;
2307    border: 1px solid rgba(255,255,255,0.3) !important;
2308    transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease !important;
2309    margin: 0 !important;
2310  }
2311  .footer .footer-col .footer-social-btn:hover {
2312    background: white !important;
2313    color: #004682 !important;
2314    border-color: white !important;
2315    transform: translateY(-2px) !important;
2316    padding-left: 0 !important;
2317  }
2318
2319  /* ========== BAS DE PAGE ========== */
2320  .footer-bottom-wrap {
2321    background: transparent !important;
2322    background-color: transparent !important;
2323    padding: 0 40px !important;
2324    box-sizing: border-box !important;
2325  }
2326  .footer-bottom {
2327    max-width: 1200px;
2328    margin: 0 auto !important;
2329    padding: 25px 0 30px !important;
2330    border-top: 1px solid rgba(255,255,255,0.15) !important;
2331    font-size: 13px;
2332    display: flex !important;
2333    justify-content: space-between !important;
2334    align-items: center !important;
2335    flex-wrap: wrap !important;
2336    gap: 20px !important;
2337    background: transparent !important;
2338    background-color: transparent !important;
2339  }
2340  .footer-bottom-left {
2341    display: flex;
2342    align-items: center;
2343    gap: 12px;
2344  }
2345  .footer-bottom-left .copyright { color: white !important; }
2346  .footer-bottom-right {
2347    display: flex;
2348    align-items: center;
2349    gap: 20px;
2350    flex-wrap: wrap;
2351  }
2352  .footer-bottom-right a {
2353    color: rgba(255,255,255,0.8) !important;
2354    text-decoration: none;
2355    transition: color 0.2s ease;
2356  }
2357  .footer-bottom-right a:hover { color: white !important; }
2358
2359  /* ========== RESPONSIVE TABLETTE ========== */
2360  @media (max-width: 1024px) {
2361    .footer .footer-container { grid-template-columns: 1fr; gap: 50px; }
2362    .footer .footer-links { grid-template-columns: repeat(3, 1fr); gap: 15px; margin-left: 0; }
2363  }
2364
2365  /* ========== RESPONSIVE MOBILE ========== */
2366  @media (max-width: 768px) {
2367    .footer { padding: 50px 24px 0; }
2368    .footer .footer-container { grid-template-columns: 1fr; text-align: center; padding-bottom: 40px; }
2369    .footer .footer-brand p { text-align: center; }
2370    .footer .footer-contact { align-items: center; }
2371    .footer .footer-contact a:hover { padding-left: 0; }
2372    .footer .footer-cta { width: 100%; justify-content: center; }
2373    .footer .footer-links { grid-template-columns: 1fr; gap: 25px; margin-left: 0; }
2374    .footer .footer-col { text-align: center; }
2375    .footer .footer-col a:hover { padding-left: 0; }
2376    .footer-social-col { display: flex; justify-content: center; }
2377    .footer-bottom-wrap { padding: 0 20px !important; }
2378    .footer-bottom { flex-direction: column; text-align: center; gap: 16px; }
2379    .footer-bottom-left { flex-direction: column; gap: 10px; }
2380    .footer-bottom-right { flex-direction: column; gap: 8px; }
2381  }
2382
2383  /* ========== LOGOS DE MARQUE + ACCROCHE (colonne Solutions) ========== */
2384  .footer .footer-col a.footer-logo {
2385    display: flex;
2386    flex-direction: column;
2387    align-items: flex-start;
2388    gap: 7px;
2389    margin: 22px 0;
2390    padding: 0 !important;
2391  }
2392  .footer .footer-col a.footer-logo:hover { padding-left: 0 !important; }
2393  .footer .footer-col a.footer-logo--sirh { margin-bottom: 28px; }
2394  .footer .footer-col a.footer-logo img {
2395    display: block;
2396    width: auto;
2397    max-width: 100%;
2398    opacity: .94;
2399    transition: opacity .3s ease;
2400  }
2401  .footer .footer-col a.footer-logo:hover img { opacity: 1; }
2402  .footer .footer-col a.footer-logo .footer-logo__accroche {
2403    display: block;
2404    font-size: 11.5px;
2405    line-height: 1.4;
2406    letter-spacing: .01em;
2407    color: rgba(255,255,255,0.62);
2408    transition: color .3s ease;
2409  }
2410  .footer .footer-col a.footer-logo:hover .footer-logo__accroche { color: rgba(255,255,255,0.88); }
2411  /* le SVG CABS embarque ~50 % de vide vertical (trace 224,6 pour un viewBox de 444,3),
2412     le SIRH est cadre au ras (210,2 / 226) : hauteur doublee sur CABS et marges verticales
2413     negatives pour egaliser la hauteur optique et garder le rythme de la colonne */
2414  .footer .footer-col a.footer-logo--cabs img { height: 52px; margin: -13px 0; }
2415  .footer .footer-col a.footer-logo--sirh img { height: 28px; margin: -1px 0; }
2416  /* aucun agrandissement au survol, y compris sur le logo Nicoka du bloc marque */
2417  .footer .footer-brand img { transition: none; }
2418  .footer .footer-brand img:hover { transform: none; }
2419  @media (max-width: 768px) {
2420    .footer .footer-col a.footer-logo { align-items: center; text-align: center; }
2421  }
2422</style><style>/**
2423 * Cookie consent manager — public sites (career sites, CMS websites).
2424 *
2425 * Inlined by the public renderer before any tracker markup, so the banner is
2426 * painted with the page and never flashes. Everything is namespaced under
2427 * .nk-consent: the widget sits on sites with their own (unknown) stylesheet, so
2428 * it must neither inherit from nor leak into the host design.
2429 */
2430.nk-consent {
2431	--nk-consent-accent: #004682;
2432	--nk-consent-radius: 12px;
2433	color-scheme: light;
2434}
2435
2436.nk-consent *,
2437.nk-consent *::before,
2438.nk-consent *::after {
2439	box-sizing: border-box;
2440}
2441
2442.nk-consent[hidden] {
2443	display: none;
2444}
2445
2446.nk-consent-backdrop {
2447	position: fixed;
2448	inset: 0;
2449	background: rgba(15, 23, 42, .45);
2450	z-index: 2147483000;
2451}
2452
2453.nk-consent-dialog {
2454	position: fixed;
2455	z-index: 2147483001;
2456	left: 24px;
2457	bottom: 24px;
2458	width: 420px;
2459	max-width: calc(100vw - 32px);
2460	max-height: calc(100vh - 48px);
2461	display: flex;
2462	flex-direction: column;
2463	overflow: hidden;
2464	background: #fff;
2465	color: #1f2937;
2466	border-radius: var(--nk-consent-radius);
2467	box-shadow: 0 18px 48px rgba(15, 23, 42, .28);
2468	font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
2469	font-size: 14px;
2470	line-height: 1.5;
2471	text-align: left;
2472}
2473
2474.nk-consent-view {
2475	display: flex;
2476	flex-direction: column;
2477	min-height: 0;
2478	padding: 24px;
2479	gap: 12px;
2480	overflow-y: auto;
2481}
2482
2483.nk-consent-view[hidden] {
2484	display: none;
2485}
2486
2487.nk-consent-title {
2488	display: flex;
2489	flex-direction: column;
2490	gap: 2px;
2491	margin: 0;
2492	font-size: 17px;
2493	font-weight: 600;
2494	color: #0f172a;
2495}
2496
2497/* Editorial lead-in: the site introduces its banner before naming it */
2498.nk-consent-kicker {
2499	font-size: 13px;
2500	font-weight: 500;
2501	color: #64748b;
2502}
2503
2504.nk-consent-headline {
2505	font-size: 20px;
2506	line-height: 1.25;
2507	color: var(--nk-consent-accent);
2508}
2509
2510/* The introduction is rich text, so its own tags have to behave */
2511.nk-consent-text > :first-child {
2512	margin-top: 0;
2513}
2514
2515.nk-consent-text > :last-child {
2516	margin-bottom: 0;
2517}
2518
2519.nk-consent-text p {
2520	margin: 0 0 8px;
2521}
2522
2523.nk-consent-text a {
2524	color: var(--nk-consent-accent);
2525}
2526
2527.nk-consent-text {
2528	margin: 0;
2529	color: #4b5563;
2530}
2531
2532.nk-consent-link {
2533	color: var(--nk-consent-accent);
2534	text-decoration: underline;
2535}
2536
2537.nk-consent-actions {
2538	display: flex;
2539	flex-wrap: wrap;
2540	gap: 8px;
2541	margin-top: 4px;
2542}
2543
2544.nk-consent-btn {
2545	flex: 1 1 auto;
2546	min-width: 120px;
2547	padding: 10px 16px;
2548	border-radius: 8px;
2549	border: 1px solid transparent;
2550	font: inherit;
2551	font-weight: 600;
2552	cursor: pointer;
2553	transition: filter .15s ease, background-color .15s ease;
2554}
2555
2556.nk-consent-btn:focus-visible {
2557	outline: 2px solid var(--nk-consent-accent);
2558	outline-offset: 2px;
2559}
2560
2561.nk-consent-btn-primary {
2562	background: var(--nk-consent-accent);
2563	color: #fff;
2564}
2565
2566.nk-consent-btn-primary:hover {
2567	filter: brightness(1.1);
2568}
2569
2570/* Refusing must be as easy to reach as accepting (CNIL): same size, same row. */
2571.nk-consent-btn-secondary {
2572	background: #f1f5f9;
2573	color: #0f172a;
2574	border-color: #cbd5e1;
2575}
2576
2577.nk-consent-btn-secondary:hover {
2578	background: #e2e8f0;
2579}
2580
2581.nk-consent-btn-link {
2582	flex: 0 0 auto;
2583	min-width: 0;
2584	padding: 10px 4px;
2585	background: none;
2586	color: #4b5563;
2587	font-weight: 500;
2588	text-decoration: underline;
2589}
2590
2591.nk-consent-btn-link:hover {
2592	color: #0f172a;
2593}
2594
2595.nk-consent-purposes {
2596	margin: 0;
2597	padding: 0;
2598	list-style: none;
2599	display: flex;
2600	flex-direction: column;
2601	gap: 4px;
2602}
2603
2604.nk-consent-purpose {
2605	padding: 12px 0;
2606	border-top: 1px solid #e5e7eb;
2607}
2608
2609.nk-consent-purpose:first-child {
2610	border-top: 0;
2611}
2612
2613.nk-consent-purpose-head {
2614	display: flex;
2615	align-items: center;
2616	justify-content: space-between;
2617	gap: 12px;
2618}
2619
2620.nk-consent-purpose-label {
2621	font-weight: 600;
2622	color: #0f172a;
2623}
2624
2625.nk-consent-purpose-help {
2626	margin: 6px 0 0;
2627	color: #6b7280;
2628	font-size: 13px;
2629}
2630
2631.nk-consent-locked {
2632	color: #6b7280;
2633	font-size: 13px;
2634	font-style: italic;
2635	white-space: nowrap;
2636}
2637
2638.nk-consent-switch {
2639	position: relative;
2640	flex: 0 0 auto;
2641	width: 44px;
2642	height: 24px;
2643	cursor: pointer;
2644}
2645
2646.nk-consent-switch input {
2647	position: absolute;
2648	opacity: 0;
2649	width: 100%;
2650	height: 100%;
2651	margin: 0;
2652	cursor: pointer;
2653}
2654
2655.nk-consent-slider {
2656	position: absolute;
2657	inset: 0;
2658	border-radius: 999px;
2659	background: #cbd5e1;
2660	transition: background-color .15s ease;
2661	pointer-events: none;
2662}
2663
2664.nk-consent-slider::before {
2665	content: "";
2666	position: absolute;
2667	top: 3px;
2668	left: 3px;
2669	width: 18px;
2670	height: 18px;
2671	border-radius: 50%;
2672	background: #fff;
2673	transition: transform .15s ease;
2674}
2675
2676.nk-consent-switch input:checked + .nk-consent-slider {
2677	background: var(--nk-consent-accent);
2678}
2679
2680.nk-consent-switch input:checked + .nk-consent-slider::before {
2681	transform: translateX(20px);
2682}
2683
2684.nk-consent-switch input:focus-visible + .nk-consent-slider {
2685	outline: 2px solid var(--nk-consent-accent);
2686	outline-offset: 2px;
2687}
2688
2689.nk-consent-badge {
2690	position: fixed;
2691	z-index: 2147482999;
2692	left: 20px;
2693	bottom: 20px;
2694	width: 44px;
2695	height: 44px;
2696	padding: 0;
2697	display: flex;
2698	align-items: center;
2699	justify-content: center;
2700	border: 0;
2701	border-radius: 50%;
2702	background: var(--nk-consent-accent);
2703	color: #fff;
2704	cursor: pointer;
2705	box-shadow: 0 6px 18px rgba(15, 23, 42, .25);
2706	opacity: .75;
2707	transition: opacity .15s ease;
2708}
2709
2710.nk-consent-badge:hover,
2711.nk-consent-badge:focus-visible {
2712	opacity: 1;
2713}
2714
2715.nk-consent-badge[hidden] {
2716	display: none;
2717}
2718
2719.nk-consent-badge svg {
2720	width: 22px;
2721	height: 22px;
2722	fill: currentColor;
2723}
2724
2725@media (max-width: 520px) {
2726	.nk-consent-dialog {
2727		left: 8px;
2728		right: 8px;
2729		bottom: 8px;
2730		width: auto;
2731		max-height: calc(100vh - 16px);
2732	}
2733
2734	.nk-consent-view {
2735		padding: 20px 16px;
2736	}
2737}
2738
2739@media (prefers-reduced-motion: reduce) {
2740	.nk-consent-btn,
2741	.nk-consent-slider,
2742	.nk-consent-slider::before,
2743	.nk-consent-badge {
2744		transition: none;
2745	}
2746}
2747
2748/**
2749 * Hardening against the host stylesheet.
2750 *
2751 * The widget is dropped into designs it knows nothing about, whose rules are
2752 * routinely more specific than a lone class — a themed `#page h2` beats
2753 * `.nk-consent-title` and turns the heading into a display title. Everything
2754 * below therefore restates, under the id, the properties a theme commonly
2755 * imposes. Kept apart from the layout above so the two concerns stay legible.
2756 */
2757#nk-consent[hidden],
2758#nk-consent [hidden] {
2759	/* An author-level `display` on an element beats the browser's [hidden] rule,
2760	   which left the dialog on screen after a choice was made */
2761	display: none !important;
2762}
2763
2764#nk-consent .nk-consent-title,
2765#nk-consent .nk-consent-kicker,
2766#nk-consent .nk-consent-headline {
2767	margin: 0;
2768	padding: 0;
2769	font-family: inherit;
2770	line-height: 1.35;
2771	letter-spacing: normal;
2772	text-transform: none;
2773	text-align: left;
2774}
2775
2776#nk-consent .nk-consent-kicker {
2777	font-size: 13px;
2778	font-weight: 500;
2779	color: #64748b;
2780}
2781
2782#nk-consent .nk-consent-headline {
2783	font-size: 20px;
2784	font-weight: 600;
2785	color: var(--nk-consent-accent);
2786}
2787
2788#nk-consent .nk-consent-text,
2789#nk-consent .nk-consent-purpose-help {
2790	font-family: inherit;
2791	letter-spacing: normal;
2792	text-transform: none;
2793	text-align: left;
2794}
2795
2796#nk-consent .nk-consent-btn {
2797	font-family: inherit;
2798	letter-spacing: normal;
2799	text-transform: none;
2800	text-decoration: none;
2801	min-width: 0;
2802	width: auto;
2803}
2804
2805#nk-consent .nk-consent-link {
2806	text-transform: none;
2807	letter-spacing: normal;
2808}
2809</style>
2809<script language="javascript">/**
2810 * Cookie consent manager — public sites (career sites, CMS websites).
2811 *
2812 * Self-hosted replacement for the third-party CMP. Vanilla, no dependency: the
2813 * script is inlined in the <head> of public pages, which have no orix.js.
2814 *
2815 * All markup and every user-facing string come from the server (the widget is
2816 * rendered by Cms\Ui\Consent in the visitor's language) — this file only carries
2817 * behaviour: read/write the choice, release the blocked tags, log the proof.
2818 *
2819 * Blocked tags are 
2819<script type="text/plain" data-nk-consent="<purpose>">. That
2820 * type keeps the browser from executing *and* from fetching them, so nothing
2821 * reaches the vendor before the visitor agrees.
2822 *
2823 * Public API on window.nkConsent:
2824 *   open()               reopen the preferences panel
2825 *   accepted(purpose)    true when that purpose is granted
2826 *   purposes()           granted purposes
2827 * plus a `nk-consent:change` CustomEvent on document, detail = {purposes: []}.
2828 */
2829(function () {
2830	'use strict';
2831
2832	var COOKIE_NAME = 'nk_consent';
2833	var root = null;
2834	var config = { webid: 0, version: 1, lifetime: 182, offered: [], endpoint: '' };
2835	var granted = [];
2836
2837	/**
2838	 * Stored decision, or null when absent, unreadable or outdated
2839	 */
2840	function readDecision() {
2841		var match = document.cookie.match(new RegExp('(?:^|; )' + COOKIE_NAME + '=([^;]*)'));
2842		if (!match) {
2843			return null;
2844		}
2845		var stored;
2846		try {
2847			stored = JSON.parse(decodeURIComponent(match[1]));
2848		} catch (e) {
2849			return null;
2850		}
2851		if (!stored || stored.v !== config.version || !Array.isArray(stored.p)) {
2852			return null;
2853		}
2854		return stored;
2855	}
2856
2857	function writeDecision(purposes, uid) {
2858		var payload = { u: uid, v: config.version, p: purposes };
2859		var expires = new Date(Date.now() + config.lifetime * 86400000);
2860		document.cookie = COOKIE_NAME + '=' + encodeURIComponent(JSON.stringify(payload))
2861			+ '; path=/; expires=' + expires.toUTCString()
2862			+ '; SameSite=Lax' + (location.protocol === 'https:' ? '; Secure' : '');
2863	}
2864
2865	/**
2866	 * Random visitor token — only ties a proof row to the browser that sent it
2867	 */
2868	function newUid() {
2869		if (window.crypto && typeof window.crypto.randomUUID === 'function') {
2870			return window.crypto.randomUUID();
2871		}
2872		return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
2873			var r = Math.random() * 16 | 0;
2874			return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
2875		});
2876	}
2877
2878	/**
2879	 * Turn a blocked placeholder back into an executable script
2880	 */
2881	function release(placeholder) {
2882		var script = document.createElement('script');
2883		Array.prototype.forEach.call(placeholder.attributes, function (attribute) {
2884			if (attribute.name === 'type' || attribute.name === 'data-nk-consent') {
2885				return;
2886			}
2887			script.setAttribute(attribute.name, attribute.value);
2888		});
2889		script.text = placeholder.textContent;
2890		placeholder.parentNode.replaceChild(script, placeholder);
2891	}
2892
2893	/**
2894	 * Release every tag whose purpose is granted, then notify the page
2895	 */
2896	function apply(purposes) {
2897		granted = purposes;
2898		var placeholders = document.querySelectorAll('script[type="text/plain"][data-nk-consent]');
2899		Array.prototype.forEach.call(placeholders, function (placeholder) {
2900			if (purposes.indexOf(placeholder.getAttribute('data-nk-consent')) >= 0) {
2901				release(placeholder);
2902			}
2903		});
2904		document.dispatchEvent(new CustomEvent('nk-consent:change', { detail: { purposes: purposes } }));
2905	}
2906
2907	/**
2908	 * Send the proof of consent. Best effort: a failed log must never keep the
2909	 * banner up, the visitor already made their choice.
2910	 */
2911	function logDecision(purposes, uid) {
2912		if (!config.endpoint) {
2913			return;
2914		}
2915		var body = new FormData();
2916		body.append('webid', config.webid);
2917		body.append('uid', uid);
2918		body.append('version', config.version);
2919		body.append('purposes', purposes.join(','));
2920		body.append('offered', config.offered.join(','));
2921		body.append('page_url', location.href);
2922		fetch(config.endpoint, { method: 'POST', body: body, credentials: 'same-origin' })
2923			.catch(function () { /* proof is best effort */ });
2924	}
2925
2926	function showView(name) {
2927		Array.prototype.forEach.call(root.querySelectorAll('[data-nk-consent-view]'), function (view) {
2928			view.hidden = view.getAttribute('data-nk-consent-view') !== name;
2929		});
2930	}
2931
2932	function openDialog(view) {
2933		root.hidden = false;
2934		root.querySelector('[data-nk-consent-role="backdrop"]').hidden = false;
2935		root.querySelector('[data-nk-consent-role="dialog"]').hidden = false;
2936		badge().hidden = true;
2937		showView(view);
2938		var focusable = root.querySelector('[data-nk-consent-view]:not([hidden]) .nk-consent-btn');
2939		if (focusable) {
2940			focusable.focus();
2941		}
2942	}
2943
2944	function closeDialog() {
2945		root.querySelector('[data-nk-consent-role="backdrop"]').hidden = true;
2946		root.querySelector('[data-nk-consent-role="dialog"]').hidden = true;
2947		badge().hidden = false;
2948	}
2949
2950	function badge() {
2951		return root.querySelector('[data-nk-consent-role="badge"]');
2952	}
2953
2954	function switches() {
2955		return root.querySelectorAll('[data-nk-consent-purpose]');
2956	}
2957
2958	function checkedPurposes() {
2959		var purposes = [];
2960		Array.prototype.forEach.call(switches(), function (input) {
2961			if (input.checked) {
2962				purposes.push(input.getAttribute('data-nk-consent-purpose'));
2963			}
2964		});
2965		return purposes;
2966	}
2967
2968	function syncSwitches(purposes) {
2969		Array.prototype.forEach.call(switches(), function (input) {
2970			input.checked = purposes.indexOf(input.getAttribute('data-nk-consent-purpose')) >= 0;
2971		});
2972	}
2973
2974	function decide(purposes) {
2975		var stored = readDecision();
2976		var uid = stored && stored.u ? stored.u : newUid();
2977		writeDecision(purposes, uid);
2978		syncSwitches(purposes);
2979		apply(purposes);
2980		logDecision(purposes, uid);
2981		closeDialog();
2982	}
2983
2984	function onClick(event) {
2985		// The listener is on document: a click may land on anything, including
2986		// nodes without closest() such as the document itself
2987		if (!event.target || typeof event.target.closest !== 'function') {
2988			return;
2989		}
2990		var trigger = event.target.closest('[data-nk-consent-action]');
2991		if (!trigger || !root.contains(trigger)) {
2992			return;
2993		}
2994		event.preventDefault();
2995		switch (trigger.getAttribute('data-nk-consent-action')) {
2996			case 'accept':
2997				decide(config.offered.slice());
2998				break;
2999			case 'reject':
3000				decide([]);
3001				break;
3002			case 'save':
3003				decide(checkedPurposes());
3004				break;
3005			case 'customize':
3006				showView('panel');
3007				break;
3008			case 'reopen':
3009				syncSwitches(granted);
3010				openDialog('panel');
3011				break;
3012		}
3013	}
3014
3015	function initialize() {
3016		root = document.getElementById('nk-consent');
3017		if (!root) {
3018			return;
3019		}
3020		config = {
3021			webid: parseInt(root.dataset.webid, 10) || 0,
3022			version: parseInt(root.dataset.version, 10) || 1,
3023			lifetime: parseInt(root.dataset.lifetime, 10) || 182,
3024			offered: root.dataset.purposes ? root.dataset.purposes.split(',') : [],
3025			endpoint: root.dataset.endpoint || ''
3026		};
3027
3028		document.addEventListener('click', onClick);
3029
3030		var stored = readDecision();
3031		root.hidden = false;
3032		if (stored) {
3033			// Purposes withdrawn from the site config must not stay granted
3034			var purposes = stored.p.filter(function (purpose) {
3035				return config.offered.indexOf(purpose) >= 0;
3036			});
3037			syncSwitches(purposes);
3038			apply(purposes);
3039			closeDialog();
3040		} else {
3041			syncSwitches([]);
3042			openDialog('banner');
3043		}
3044	}
3045
3046	window.nkConsent = {
3047		open: function () {
3048			if (root) {
3049				syncSwitches(granted);
3050				openDialog('panel');
3051			}
3052		},
3053		accepted: function (purpose) {
3054			return granted.indexOf(purpose) >= 0;
3055		},
3056		purposes: function () {
3057			return granted.slice();
3058		}
3059	};
3060
3061	if (document.readyState === 'loading') {
3062		document.addEventListener('DOMContentLoaded', initialize);
3063	} else {
3064		initialize();
3065	}
3066})();
3067</script>
3067<div id="nk-consent" class="nk-consent" data-webid="1021" data-version="1" data-lifetime="182" data-purposes="analytics,marketing" data-endpoint="https://www.nicoka.com/public/consent/log?xvtrs=1" style="--nk-consent-accent:#004682" hidden><div class="nk-consent-backdrop" data-nk-consent-role="backdrop" hidden></div><section class="nk-consent-dialog" data-nk-consent-role="dialog" role="dialog" aria-modal="true" aria-labelledby="nk-consent-title" hidden><div class="nk-consent-view" data-nk-consent-view="banner"><h2 class="nk-consent-title" id="nk-consent-title"><span class="nk-consent-headline">Nous respectons votre vie privée</span></h2><div class="nk-consent-text"><p>Nous utilisons des cookies pour faire fonctionner ce site, mesurer son audience et, avec votre accord, personnaliser les contenus qui vous sont proposés. Vous pouvez accepter, refuser ou choisir finalité par finalité.</p></div><div class="nk-consent-actions"><button type="button" class="nk-consent-btn nk-consent-btn-secondary" data-nk-consent-action="reject">Tout refuser</button><button type="button" class="nk-consent-btn nk-consent-btn-primary" data-nk-consent-action="accept">Tout accepter</button></div><div class="nk-consent-actions"><button type="button" class="nk-consent-btn nk-consent-btn-link" data-nk-consent-action="customize">Personnaliser</button></div></div><div class="nk-consent-view" data-nk-consent-view="panel" hidden><h2 class="nk-consent-title">Vos préférences de cookies</h2><ul class="nk-consent-purposes"><li class="nk-consent-purpose"><div class="nk-consent-purpose-head"><span class="nk-consent-purpose-label">Strictement nécessaires</span><span class="nk-consent-locked">Toujours actif</span></div><p class="nk-consent-purpose-help">Indispensables au fonctionnement du site : session, sécurité, langue et enregistrement de votre choix de cookies. Ils ne peuvent pas être désactivés.</p></li><li class="nk-consent-purpose"><div class="nk-consent-purpose-head"><label class="nk-consent-purpose-label" for="nk-consent-purpose-analytics">Mesure d'audience</label><span class="nk-consent-switch"><input type="checkbox" id="nk-consent-purpose-analytics" data-nk-consent-purpose="analytics"><span class="nk-consent-slider"></span></span></div><p class="nk-consent-purpose-help">Nous permettent de compter les visites et de comprendre comment les pages sont utilisées, afin d'améliorer le site.</p></li><li class="nk-consent-purpose"><div class="nk-consent-purpose-head"><label class="nk-consent-purpose-label" for="nk-consent-purpose-marketing">Marketing</label><span class="nk-consent-switch"><input type="checkbox" id="nk-consent-purpose-marketing" data-nk-consent-purpose="marketing"><span class="nk-consent-slider"></span></span></div><p class="nk-consent-purpose-help">Servent à mesurer nos campagnes publicitaires et à vous proposer des offres correspondant à vos centres d'intérêt.</p></li></ul><div class="nk-consent-actions"><button type="button" class="nk-consent-btn nk-consent-btn-secondary" data-nk-consent-action="reject">Tout refuser</button><button type="button" class="nk-consent-btn nk-consent-btn-secondary" data-nk-consent-action="accept">Tout accepter</button></div><div class="nk-consent-actions"><button type="button" class="nk-consent-btn nk-consent-btn-primary" data-nk-consent-action="save">Enregistrer mes choix</button></div></div></section><button type="button" class="nk-consent-badge" data-nk-consent-role="badge" data-nk-consent-action="reopen" title="Gérer mes cookies" aria-label="Gérer mes cookies" hidden><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M21.9 11.1a4 4 0 0 1-4.6-5.1A4 4 0 0 1 12.1 2 10 10 0 1 0 22 12c0-.3 0-.6-.1-.9zM8 16.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm.5-6a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm5.5 7a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3zm1.5-5.5a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3z"/></svg></button></div></body><link href="https://cdn.nicoka.com/css/fontawesome/6.4.0/css/fontawesome.min.css"type="text/css" rel="stylesheet"><link href="https://cdn.nicoka.com/css/fontawesome/6.4.0/css/brands.min.css"type="text/css" rel="stylesheet"><link href="https://cdn.nicoka.com/css/fontawesome/6.4.0/css/regular.min.css"type="text/css" rel="stylesheet"><link href="https://cdn.nicoka.com/css/fontawesome/6.4.0/css/solid.min.css"type="text/css" rel="stylesheet"><link href="https://cdn.nicoka.com/css/fontawesome/6.4.0/css/sharp-solid.min.css"type="text/css" rel="stylesheet"><link href="https://cdn.nicoka.com/css/fontawesome/6.4.0/css/sharp-regular.min.css"type="text/css" rel="stylesheet"></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.