/* SKILL by IKONIQ — structure calquée sur agencecut.fr, palette IKONIQ en bleu.
   Site engagé sur un seul monde visuel : pas de thème sombre, les couleurs de
   marque doivent s'afficher à l'identique pour tout le monde. */
:root{
  --bleu:#2000EB; --bleu-fonce:#1600A8; --bleu-pale:#EAE6FF; --bleu-filet:#D4CBFF;
  --bleu-nuit:#171043;
  --orange:#FF4500;
  --fond:#F4F4F7; --blanc:#FFFFFF; --encre:#0A0A14; --gris:#65657A;
  --filet:#E4E4EC;
  --r:8px; --r-c:16px; --r-g:22px;
  --col:1180px; --nav-h:78px;
  --ombre:0 1px 2px rgba(10,10,20,.05), 0 8px 24px rgba(10,10,20,.06);
  --ombre-f:0 2px 6px rgba(10,10,20,.07), 0 18px 44px rgba(10,10,20,.10);
}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 20px)}
body{background:var(--fond);color:var(--encre);
     font-family:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
     line-height:1.6;font-size:16.5px;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}

/* La colonne centrale est encadrée de deux filets verticaux teintés de l'accent,
   comme sur la référence : ils courent sur toute la hauteur de la page. */
.cadre{max-width:var(--col);margin:0 auto;border-left:1px solid var(--bleu-filet);
       border-right:1px solid var(--bleu-filet);background:var(--fond)}
.wrap{max-width:1030px;margin:0 auto;padding:0 26px}

h1,h2,h3{font-weight:800;letter-spacing:-.025em;line-height:1.08;text-wrap:balance}
.bl{color:var(--bleu)}
.center{text-align:center}

/* ── Boutons ───────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;
     border-radius:var(--r);font-weight:700;font-size:16px;padding:14px 26px;
     text-decoration:none;border:none;cursor:pointer;transition:background .18s,transform .18s}
.btn-sombre{background:var(--encre);color:#fff}
.btn-sombre:hover{background:#1C1C2E}
.btn-bleu{background:var(--bleu);color:#fff}
.btn-bleu:hover{background:var(--bleu-fonce)}
.btn-blanc{background:#fff;color:var(--encre);box-shadow:var(--ombre)}
.btn-blanc:hover{background:var(--bleu-pale)}
.btn-lg{padding:17px 34px;font-size:17px}

/* ── Navigation ────────────────────────────────────────────────────────── */
.nav{position:sticky;top:0;z-index:60;background:#fff;
     border-bottom:2px solid var(--bleu);box-shadow:0 1px 12px rgba(10,10,20,.05)}
.nav-in{max-width:var(--col);margin:0 auto;height:var(--nav-h);padding:0 26px;
        display:flex;align-items:center;gap:26px}
.logo{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.logo svg{height:34px;width:auto;display:block}
.nav-liens{display:flex;gap:32px;margin:0 auto}
.nav-liens a{text-decoration:none;font-size:16px;font-weight:600;color:var(--encre);
             transition:color .16s}
.nav-liens a:hover{color:var(--bleu)}
.nav-burger{display:none;background:none;border:none;padding:8px;cursor:pointer}
.nav-burger span{display:block;width:22px;height:2px;background:var(--encre);border-radius:2px}
.nav-burger span+span{margin-top:5px}

/* ── Hero ──────────────────────────────────────────────────────────────── */
.hero{padding:70px 0 54px;text-align:center;position:relative;overflow:hidden}
.bandeau-h{display:inline-flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center;
           font-size:14.5px;color:var(--gris);margin-bottom:30px}
.bandeau-h b{color:var(--bleu);font-weight:800}
.bandeau-h .tiret{width:1px;height:16px;background:var(--filet)}
.bandeau-h .puce{display:inline-flex;align-items:center;gap:7px}
.hero h1{font-size:clamp(36px,5vw,61px);max-width:22ch;margin:0 auto;line-height:1.1}
.hero-sub{margin:24px auto 0;font-size:18px;color:var(--gris);max-width:52ch}
.outils-lab{margin:44px 0 20px;font-size:14px;color:var(--gris)}
.outils{display:flex;justify-content:center;align-items:flex-end;gap:16px;flex-wrap:wrap}
.outil:nth-child(2){margin:0 6px}
.outil{width:64px;height:64px;border-radius:50%;background:#fff;box-shadow:var(--ombre-f);
       display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.outil img{width:30px;height:30px;object-fit:contain}
.hero-bouton{margin-top:34px}

@keyframes flotte{0%,100%{transform:translateY(var(--dep,0))}50%{transform:translateY(calc(var(--dep,0) - 10px))}}
.outil{animation:flotte 4.4s ease-in-out infinite;will-change:transform}
/* Position de départ dispersée, pas un alignement — le mouvement garde
   chaque bulle sur sa propre trajectoire. */
.outil:nth-child(1){--dep:16px;animation-delay:-.4s}
.outil:nth-child(2){--dep:-22px;animation-delay:-2.1s}
.outil:nth-child(3){--dep:6px;animation-delay:-3.4s}


.pastilles{display:flex;flex-wrap:nowrap;justify-content:center;gap:clamp(10px,3vw,34px);margin-top:34px}
.pastille{display:inline-flex;align-items:center;gap:clamp(5px,1.4vw,9px);
            font-size:clamp(11px,2.6vw,15.5px);font-weight:600;white-space:nowrap}
.pastille .b{width:clamp(22px,6vw,34px);height:clamp(22px,6vw,34px);border-radius:9px;background:#fff;
             box-shadow:var(--ombre);display:flex;align-items:center;justify-content:center;
             color:var(--orange);flex:0 0 auto}
.pastille .b svg{width:56%;height:56%}

/* ── Sections ──────────────────────────────────────────────────────────── */
section{padding:66px 0}
.sur-titre{font-size:13px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;
           color:var(--bleu);margin-bottom:14px}
h2{font-size:clamp(27px,3.9vw,44px);max-width:20ch;font-weight:700;color:var(--bleu-nuit)}
h2 b{font-weight:900;color:var(--bleu)}
.sombre h2 b,.final h2 b{color:#fff}
.pj-hero h1 b{color:var(--bleu)}
.center h2,.center .sur-titre{margin-left:auto;margin-right:auto}
.intro{color:var(--gris);font-size:17px;max-width:58ch;margin-top:16px}
.center .intro{margin-left:auto;margin-right:auto}

/* ── Bandeau défilant des projets ──────────────────────────────────────── */
.projets-bande{padding:52px 0;background:var(--blanc);
               border-top:1px solid var(--filet);border-bottom:1px solid var(--filet)}
.piste{overflow:hidden;margin-top:34px;
       -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
       mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.piste-inner{display:flex;gap:20px;width:max-content;animation:glisse 48s linear infinite}
.piste:hover .piste-inner{animation-play-state:paused}
@keyframes glisse{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 10px))}}
.vue{flex:0 0 auto;width:326px;background:#fff;border-radius:var(--r-c);overflow:hidden;
     box-shadow:var(--ombre);text-decoration:none;color:inherit;transition:transform .25s,box-shadow .25s}
.vue:hover{transform:translateY(-4px);box-shadow:var(--ombre-f)}
.vue img{width:100%;height:204px;object-fit:cover;object-position:top center}
.vue .lg{padding:14px 18px;display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.vue .lg b{font-size:15px;font-weight:800}
.vue .lg span{font-size:12px;color:var(--gris)}

/* ── Grilles de cartes ─────────────────────────────────────────────────── */
.g{display:grid;gap:20px}
.g-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.g-3{grid-template-columns:repeat(auto-fit,minmax(276px,1fr))}
.g-4{grid-template-columns:repeat(auto-fit,minmax(228px,1fr))}
.carte{background:var(--blanc);border-radius:var(--r-c);padding:28px 26px;box-shadow:var(--ombre)}
.carte h3{font-size:19px;margin-bottom:9px}
.carte p{font-size:15.5px;color:var(--gris);line-height:1.58}

/* Section sombre (les problèmes) */
.sombre{background:var(--encre);color:#fff}
.sombre h2{color:rgba(255,255,255,.78)}
.sombre .intro{color:rgba(255,255,255,.72)}
.sombre .sur-titre{color:var(--orange)}
.sombre .carte{background:rgba(255,255,255,.06);box-shadow:none;
               border:1px solid rgba(255,255,255,.11)}
.sombre .carte h3{color:#fff}
.sombre .carte p{color:rgba(255,255,255,.7)}
.sombre 
/* ── Méthode ───────────────────────────────────────────────────────────── */
.etape{background:var(--blanc);border-radius:var(--r-c);padding:30px 28px;box-shadow:var(--ombre);
       position:relative}
.etape .n{font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
          color:var(--bleu);margin-bottom:14px}
.etape h3{font-size:20px;margin-bottom:10px}
.etape p{font-size:15.5px;color:var(--gris)}

/* ── Bouton lumineux « Prendre rendez-vous » ─────────────────────────────
   Repris d'un composant Uiverse (Spacious74), reteinté dans le bleu SKILL
   au lieu du noir/blanc d'origine. */
.btn-neo{cursor:pointer;font-weight:700;font-size:15.5px;border-radius:16px;border:none;
         padding:2px;position:relative;display:inline-flex;text-decoration:none;
         background:radial-gradient(circle 90px at 80% -10%, #6A57FF, #0A0730)}
.btn-neo::after{content:"";position:absolute;width:65%;height:60%;border-radius:120px;
                top:0;right:0;box-shadow:0 0 22px rgba(63,233,255,.25);z-index:-1}
.btn-neo .blob{position:absolute;width:60px;height:100%;border-radius:16px;bottom:0;left:0;
               background:radial-gradient(circle 60px at 0% 100%,#3FE9FF,rgba(0,0,255,.5),transparent);
               box-shadow:-10px 10px 30px rgba(0,81,255,.25)}
.btn-neo .inner{padding:14px 24px;border-radius:14px;color:#fff;z-index:3;position:relative;
                background:radial-gradient(circle 90px at 80% -50%, #2E22C9, #0A0730);
                transition:transform .18s}
.btn-neo .inner::before{content:"";position:absolute;inset:0;border-radius:14px;
                        background:radial-gradient(circle 60px at 0% 100%, rgba(63,233,255,.12),
                        rgba(32,0,235,.12), transparent)}
.btn-neo:hover .inner{transform:translateY(-1px)}
.btn-neo.btn-lg .inner{padding:17px 32px;font-size:17px}

/* ── Carrousel 3D des réalisations ────────────────────────────────────────
   Repris d'un composant Uiverse (ilkhoeri) : un anneau de cartes en 3D qui
   tourne en continu (perspective + rotateY par carte). Adapté avec les
   vraies captures de projets et une teinte alignée sur la palette de marque
   (bleu / orange en alternance) plutôt que l'arc-en-ciel d'origine. */
.ring-wrap{
  width:100%;height:340px;position:relative;display:flex;align-items:center;
  justify-content:center;overflow:hidden;margin-top:46px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
}
.ring-inner{
  --w:220px;--h:138px;
  --translateZ:calc((var(--w) + var(--h)) + 60px);
  --perspective:1400px;
  position:relative;width:var(--w);height:var(--h);
  transform-style:preserve-3d;
  transform:perspective(var(--perspective));
  animation:ring-tourne 34s linear infinite;
}
.ring-wrap:hover .ring-inner{animation-play-state:paused}
@keyframes ring-tourne{
  from{transform:perspective(var(--perspective)) rotateY(0)}
  to{transform:perspective(var(--perspective)) rotateY(1turn)}
}
/* Carte à deux faces : la face avant montre la capture, la face arrière
   (rotateY(180deg), donc orientée à l'endroit une fois que l'anneau l'amène
   côté spectateur) est un panneau en verre dépoli — pas le dos en miroir. */
.ring-card{
  position:absolute;inset:0;border-radius:16px;
  transform-style:preserve-3d;
  transform:rotateY(calc((360deg / var(--quantite)) * var(--pos))) translateZ(var(--translateZ));
  text-decoration:none;display:block;
}
.rc-face{
  position:absolute;inset:0;border-radius:16px;overflow:hidden;
  backface-visibility:hidden;-webkit-backface-visibility:hidden;
}
.rc-front{
  border:2px solid rgba(var(--teinte-carte),.55);
  box-shadow:0 14px 34px rgba(10,10,20,.16), inset 0 0 0 1px rgba(255,255,255,.4);
  background:var(--blanc);
}
.rc-front img{width:100%;height:72%;object-fit:cover;object-position:top center;display:block}
.rc-front .rc-lg{
  height:28%;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:800;color:var(--encre);
  background:linear-gradient(180deg, rgba(var(--teinte-carte),.10), rgba(var(--teinte-carte),.02));
}
.rc-back{
  transform:rotateY(180deg);
  background:linear-gradient(155deg, rgba(255,255,255,.5), rgba(var(--teinte-carte),.14));
  backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 14px 34px rgba(10,10,20,.10);
  display:flex;align-items:center;justify-content:center;
}
.rc-back svg{width:34px;height:34px;opacity:.5}
@media (max-width:820px){
  .ring-wrap{height:250px}
  .ring-inner{--w:170px;--h:106px}
}
@media (prefers-reduced-motion:reduce){
  .ring-inner{animation:none}
}
/* Sans JS ou sur très petit écran, on retombe sur une bande simple plutôt
   que de laisser un anneau 3D vide ou illisible. */
.no-ring .ring-wrap{height:auto;overflow-x:auto;-webkit-mask-image:none;mask-image:none}
.no-ring .ring-inner{position:static;display:flex;gap:16px;transform:none;animation:none;width:max-content;height:auto}
.no-ring .ring-card{position:static;width:220px;height:138px;flex:0 0 auto;transform:none}

/* ── Section en escalier ──────────────────────────────────────────────── */
.escalier{padding:66px 0}
.escalier-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:32px;
               padding-bottom:32px;border-bottom:1px solid var(--bleu-filet)}
.escalier-tete h2{margin:0;max-width:18ch}
.escalier-tete .btn{flex:0 0 auto}
.marche{padding:24px 0;border-bottom:1px solid var(--bleu-filet)}
/* Chaque marche se décale un peu plus que la précédente — uniquement à partir
   de 820 px : en dessous la règle n'existe pas, rien à neutraliser. */
@media (min-width:821px){
  .escalier-marches .marche:nth-child(2) .marche-in{margin-left:9%}
  .escalier-marches .marche:nth-child(3) .marche-in{margin-left:18%}
  .escalier-marches .marche:nth-child(4) .marche-in{margin-left:27%}
  .escalier-marches .marche:nth-child(5) .marche-in{margin-left:36%}
}
.marche-in{display:inline-flex;align-items:baseline;gap:11px;flex-wrap:wrap;
           background:var(--bleu-pale);border-radius:14px;padding:15px 26px}
.marche-in b{font-size:clamp(23px,2.9vw,34px);font-weight:800;color:var(--bleu);letter-spacing:-.025em}
.marche-in span{font-size:clamp(15px,1.7vw,19px);font-weight:700;color:var(--bleu-nuit)}
.js-anim .marche{opacity:0;transform:translateX(-26px);
                 transition:opacity .6s cubic-bezier(.2,.62,.24,1),transform .6s cubic-bezier(.2,.62,.24,1)}
.js-anim .marche.vu{opacity:1;transform:none}

/* ── Parcours de la méthode ────────────────────────────────────────────── */
.parcours{position:relative;max-width:740px;margin:52px auto 0;padding-left:58px}
.rail{position:absolute;left:19px;top:10px;bottom:34px;width:2px;background:var(--filet);border-radius:2px}
.rail-fill{position:absolute;left:0;top:0;width:100%;height:0;border-radius:2px;
           background:linear-gradient(180deg,var(--bleu),#5B3DFF)}
/* La tête du tracé : le point lumineux qui descend au fil du défilement. */
.rail-fill::after{content:"";position:absolute;left:50%;bottom:-5px;transform:translateX(-50%);
                  width:10px;height:10px;border-radius:50%;background:#fff;
                  box-shadow:0 0 10px 2px rgba(32,0,235,.9),0 0 24px 7px rgba(32,0,235,.4);
                  opacity:0;transition:opacity .3s}
.parcours.roule .rail-fill::after{opacity:1}
.jalon{position:relative;padding-bottom:26px}
.jalon:last-child{padding-bottom:0}
.js-anim .jalon{opacity:0;transform:translateY(24px);
                transition:opacity .65s cubic-bezier(.2,.62,.24,1),transform .65s cubic-bezier(.2,.62,.24,1)}
.js-anim .jalon.vu{opacity:1;transform:none}
.noeud{position:absolute;left:-48px;top:26px;width:20px;height:20px;border-radius:50%;
       background:#fff;border:2px solid var(--filet);
       transition:border-color .4s,background .4s,box-shadow .4s}
.jalon.atteint .noeud{border-color:var(--bleu);background:var(--bleu);
                      box-shadow:0 0 0 5px rgba(32,0,235,.14),0 0 18px rgba(32,0,235,.5)}
.jalon-in{background:var(--blanc);border-radius:var(--r-c);padding:26px 28px;box-shadow:var(--ombre)}
.jalon-in .n{font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
             color:var(--bleu);margin-bottom:10px}
.jalon-in h3{font-size:20px;margin-bottom:10px}
.jalon-in p{font-size:15.5px;color:var(--gris)}

/* ── Offres ────────────────────────────────────────────────────────────── */
.offre{background:var(--blanc);border-radius:var(--r-g);padding:32px 28px;box-shadow:var(--ombre);
       display:flex;flex-direction:column;position:relative}
.offre.pop{background:var(--encre);color:#fff;box-shadow:var(--ombre-f)}
.badge-pop{position:absolute;top:18px;right:18px;background:var(--bleu);color:#fff;
           font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
           padding:6px 12px;border-radius:100px}
.offre h3{font-size:21px;margin-bottom:4px}
.offre .prix{font-size:42px;font-weight:800;letter-spacing:-.03em;line-height:1;margin:16px 0 3px;color:var(--bleu)}
.offre.pop .prix{color:#fff}
.offre .prix small{font-size:17px;font-weight:700}
.offre .fixe{font-size:14px;color:var(--gris);margin-bottom:22px}
.offre.pop .fixe{color:rgba(255,255,255,.66)}
.offre ul{list-style:none;flex:1;margin-bottom:26px}
.offre li{font-size:15px;color:var(--gris);padding:7px 0 7px 26px;position:relative}
.offre.pop li{color:rgba(255,255,255,.84)}
.offre li::before{content:"";position:absolute;left:2px;top:.86em;width:10px;height:5.5px;
                  border-left:2px solid var(--bleu);border-bottom:2px solid var(--bleu);
                  transform:rotate(-45deg)}
.offre.pop li::before{border-color:var(--orange)}

/* ── FAQ ───────────────────────────────────────────────────────────────── */
.faq{max-width:820px;margin:0 auto}
.faq details{background:var(--blanc);border-radius:var(--r-c);box-shadow:var(--ombre);
             margin-bottom:12px;overflow:hidden}
.faq summary{cursor:pointer;list-style:none;padding:22px 24px;font-size:17px;font-weight:700;
             display:flex;justify-content:space-between;gap:20px;align-items:center}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:26px;font-weight:700;color:var(--bleu);line-height:1;
                    transition:transform .22s;flex:0 0 auto}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .rep{padding:0 24px 24px;color:var(--gris);font-size:16px}

/* ── Appel à l'action final ────────────────────────────────────────────── */
.final{background:var(--bleu);color:#fff;border-radius:var(--r-g);padding:56px 40px;text-align:center;
       margin:0 26px}
.final h2{color:rgba(255,255,255,.8);margin:0 auto;font-size:clamp(26px,3.6vw,40px)}
.final p{color:rgba(255,255,255,.84);margin:16px auto 30px;max-width:48ch;font-size:17px}
.final .pastilles .pastille{color:#fff}
.final .pastilles .b{background:rgba(255,255,255,.16);box-shadow:none;color:#fff}

/* ── Pied de page ──────────────────────────────────────────────────────── */
.pied{background:var(--bleu);color:rgba(255,255,255,.82);padding:56px 0 0;font-size:14.5px;
      margin-top:66px;overflow:hidden}
.pied a{color:rgba(255,255,255,.82);text-decoration:none}
.pied a:hover{color:#fff}
.pied-row{display:flex;flex-wrap:wrap;gap:26px 48px;justify-content:space-between}
.pied-t{color:#fff;font-weight:700;margin-bottom:10px}

.pied-bas{margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.22);font-size:13px;
          color:rgba(255,255,255,.7)}
/* Logo géant en bas de page : 95 % de la largeur, rogné de 5 % en pied.
   Le conteneur est plus court que le tracé, le débordement est masqué. */
.pied-geant{width:95%;margin:44px auto 0;overflow:hidden;line-height:0;
            aspect-ratio:500 / 256.5}
.pied-geant svg{width:100%;height:auto;display:block}

a:focus-visible,summary:focus-visible,.btn:focus-visible{outline:3px solid var(--bleu);outline-offset:3px}

@media (max-width:820px){
  .escalier-tete{flex-direction:column;gap:20px}
  .marche-in{padding:13px 20px}
}
@media (max-width:900px){
  .nav-liens{display:none}
  .nav-liens.ouvert{display:flex;position:absolute;top:var(--nav-h);left:0;right:0;
                    flex-direction:column;gap:0;background:#fff;border-bottom:1px solid var(--filet);
                    box-shadow:var(--ombre)}
  .nav-liens.ouvert a{padding:15px 26px;border-top:1px solid var(--filet)}
  .nav-burger{display:block;margin-left:auto}
  .nav-cta{display:none}
  .cadre{border-left:none;border-right:none}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;scroll-behavior:auto!important}
  .piste-inner{animation:none;overflow-x:auto}
  .outil{animation:none}
  .js-anim .marche{opacity:1;transform:none;transition:none}
}
