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: "Font Awesome 6 Pro" !important; 77 --fa-font-solid: normal 900 1em / 1 "Font Awesome 6 Pro" !important; 78}</style>
78<script><script language="javascript" data-name="ukwgoz0dfmtpze6xkp6qr2xznrrwa4vx" src="https://code.tidio.co/ukwgoz0dfmtpze6xkp6qr2xznrrwa4vx.js" element-id="3"></script> 79<iframe id="tidio-chat-code" title="Tidio Chat code" element-id="18" style="display: none;"></iframe></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: "â¾"; 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 > 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 > 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 -> titre */ } .solutions-section .solution-card h3{ margin: 14px 0 14px !important; /* titre -> 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) -> 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("
79./Img/BackgroundAssistantIA.jpg"); 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("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"); } /* 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: ""; 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, "Segoe UI", 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: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 100%; aspect-ratio: 340 / 170; /* ajuste si besoin */ background: url("https://www.nicoka.com/assets/img/main/stat98barre.png") 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 "petit" */ 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:""; 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:""; 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 & 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 & 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 & 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.