@font-face{font-family:Outfit;src:url('../fonts/outfit-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:Outfit;src:url('../fonts/outfit-bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}

    :root{
      --bg:#0D102C;
      --bg2:#181E4B;
      --bg3:#0F1655;
      --blue:#304BAE;
      --blue2:#375BCF;
      --violet:#482CA5;
      --violet2:#6069D5;
      --cyan:#37D0EB;
      --white:#FAFAFC;
      --muted:#D4D0EB;
      --line:rgba(255,255,255,.12);
      --panel:rgba(16,22,58,.84);
      --radius:22px;
      --shadow:0 20px 55px rgba(0,0,0,.28);
      --cta:linear-gradient(135deg,#375BCF 0%,#6069D5 48%,#9C43D9 100%);
      --max:1440px;
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}

    body{
      margin:0;
      color:var(--white);
      background:
        radial-gradient(circle at 12% 7%,rgba(55,208,235,.10),transparent 18%),
        radial-gradient(circle at 80% 3%,rgba(72,44,165,.14),transparent 20%),
        var(--bg);
      font-family:Outfit,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
      line-height:1.55;
      -webkit-font-smoothing:antialiased;
      text-rendering:optimizeLegibility;
    }

    body.is-loading{overflow:hidden}

    /* FOND ABSTRAIT — masses lumineuses fixes sur toute la hauteur du parcours */
    .ambient-bg{
      position:fixed;
      inset:0;
      z-index:0;
      overflow:hidden;
      pointer-events:none;
      contain:strict;
      background:
        radial-gradient(circle at 50% 115%,rgba(13,16,44,.15),rgba(13,16,44,.78) 62%),
        #090B24;
    }

    /* Points indépendants, sans motif répété ni alignement en grille. */
    .ambient-particle{
      position:absolute;
      left:var(--ambient-x);
      top:var(--ambient-y);
      width:var(--ambient-size);
      height:var(--ambient-size);
      border-radius:50%;
      background:var(--ambient-color);
      box-shadow:0 0 9px 1px var(--ambient-color);
      opacity:.5;
      animation:ambient-drift var(--ambient-duration) ease-in-out var(--ambient-delay) infinite alternate;
    }
    @keyframes ambient-drift{
      0%{transform:translate3d(0,0,0) scale(.8);opacity:.25}
      45%{transform:translate3d(var(--ambient-mid-x),var(--ambient-mid-y),0) scale(1.25);opacity:.8}
      100%{transform:translate3d(var(--ambient-dx),var(--ambient-dy),0) scale(.95);opacity:.4}
    }
    .ambient-bg.is-paused .ambient-particle{animation-play-state:paused}
    @media(prefers-reduced-motion:reduce){
      .ambient-particle{animation:none;opacity:.4}
    }

    .ambient-blob{
      position:absolute;
      border-radius:50%;
      opacity:.22;
      filter:blur(82px);
      transform:translate3d(0,0,0);
      will-change:transform;
      mix-blend-mode:screen;
    }

    .ambient-blob--cyan{
      width:48vw;
      height:64vh;
      top:-18vh;
      left:-14vw;
      background:radial-gradient(ellipse at center,rgba(55,208,235,.92),rgba(48,75,174,.42) 46%,transparent 72%);
    }

    .ambient-blob--blue{
      width:50vw;
      height:72vh;
      top:22vh;
      right:-18vw;
      background:radial-gradient(ellipse at center,rgba(55,91,207,.92),rgba(55,208,235,.32) 48%,transparent 72%);
    }

    .ambient-blob--violet{
      width:58vw;
      height:70vh;
      bottom:-25vh;
      left:10vw;
      background:radial-gradient(ellipse at center,rgba(156,67,217,.9),rgba(72,44,165,.5) 50%,transparent 74%);
    }

    .ambient-blob--indigo{
      width:46vw;
      height:58vh;
      top:4vh;
      left:39vw;
      background:radial-gradient(ellipse at center,rgba(96,105,213,.78),rgba(72,44,165,.34) 48%,transparent 72%);
    }

    body > main,
    body > footer{
      position:relative;
      z-index:1;
    }

    /* PRELOADER — court, spatial et sans impact si JavaScript est désactivé */
    .preloader{
      position:fixed;
      inset:0;
      z-index:9999;
      display:grid;
      place-items:center;
      background:
        radial-gradient(circle at 50% 45%,rgba(96,105,213,.18),transparent 28%),
        var(--bg);
      opacity:1;
      visibility:visible;
    }

    .preloader-inner{
      display:grid;
      place-items:center;
      gap:18px;
      text-align:center;
    }

    .preloader-orbit{
      position:relative;
      width:112px;
      height:112px;
      display:grid;
      place-items:center;
      border:1px solid rgba(55,208,235,.24);
      border-radius:50%;
    }

    .preloader-orbit::before,
    .preloader-orbit::after{
      content:"";
      position:absolute;
      inset:12px;
      border:1px solid rgba(168,95,231,.2);
      border-radius:50%;
      transform:rotate(58deg) scaleY(.48);
    }

    .preloader-orbit::after{
      inset:-1px;
      border-color:rgba(55,208,235,.12);
      transform:rotate(-28deg) scaleY(.62);
    }

    .preloader-core{
      width:56px;
      height:56px;
      display:grid;
      place-items:center;
      border-radius:50%;
      color:#08102d;
      background:linear-gradient(135deg,var(--cyan),var(--violet2));
      box-shadow:0 0 34px rgba(55,208,235,.26);
      font-size:1.2rem;
      font-weight:700;
    }

    .preloader-satellite{
      position:absolute;
      top:-5px;
      left:50%;
      width:10px;
      height:10px;
      margin-left:-5px;
      border-radius:50%;
      background:var(--cyan);
      box-shadow:0 0 14px rgba(55,208,235,.9);
      transform-origin:5px 61px;
    }

    .preloader-wordmark{
      margin:0;
      font-size:.8rem;
      font-weight:700;
      letter-spacing:.19em;
      text-transform:uppercase;
      color:var(--muted);
    }

    .preloader-wordmark span{color:var(--cyan)}

    .preloader-line{
      width:128px;
      height:2px;
      overflow:hidden;
      border-radius:999px;
      background:rgba(255,255,255,.08);
    }

    .preloader-line span{
      display:block;
      width:100%;
      height:100%;
      border-radius:inherit;
      background:linear-gradient(90deg,var(--cyan),var(--violet2),#C888FF);
      transform:scaleX(0);
      transform-origin:left center;
    }



    .site-header{
      transition:background-color .25s ease,border-color .25s ease,box-shadow .25s ease;
    }

    .site-header.is-scrolled{
      background:rgba(7,11,35,.92);
      border-bottom-color:rgba(55,208,235,.12);
      box-shadow:0 10px 30px rgba(0,0,0,.12);
    }

    /* BOUTONS — effet génératif réservé aux CTA principaux */
    .btn.btn{
      position:relative;
      z-index:0;
      isolation:isolate;
      overflow:visible;
      border-radius:999px;
      transition:
        transform .48s cubic-bezier(.22,1,.36,1),
        color .35s ease,
        background-color .45s ease,
        border-color .45s ease,
        box-shadow .55s cubic-bezier(.22,1,.36,1);
    }

    .btn.btn-primary::before{
      content:"";
      position:absolute;
      pointer-events:none;
      border-radius:inherit;
      z-index:-1;
      inset:-9px -12px;
      background:
        linear-gradient(100deg,rgba(55,208,235,.16),rgba(96,105,213,.74),rgba(168,95,231,.78));
      opacity:.18;
      filter:blur(15px);
      transform:scale(.94);
      transition:
        opacity .7s cubic-bezier(.22,1,.36,1),
        transform .8s cubic-bezier(.22,1,.36,1),
        filter .8s ease;
    }

    .btn.btn-primary{
      border-color:rgba(255,255,255,.24);
      background-size:220% 220%;
      box-shadow:
        0 7px 22px rgba(72,44,165,.22),
        inset 0 1px 0 rgba(255,255,255,.18);
      animation:button-gradient 12s ease-in-out infinite alternate;
    }

    .btn.btn-primary:hover,
    .btn.btn-primary:focus-visible{
      transform:translateY(-2px) scale(1.012);
      border-color:rgba(255,255,255,.4);
      box-shadow:
        0 0 0 1px rgba(168,95,231,.16),
        0 11px 32px rgba(72,44,165,.36),
        0 0 22px rgba(96,105,213,.16),
        inset 0 1px 0 rgba(255,255,255,.22);
    }

    .btn.btn-primary:hover::before,
    .btn.btn-primary:focus-visible::before{
      opacity:.46;
      transform:scale(1.025);
      filter:blur(17px);
    }

    .btn-particle{
      position:absolute;
      z-index:-1;
      left:var(--particle-x);
      top:var(--particle-y);
      width:var(--particle-size);
      height:var(--particle-size);
      pointer-events:none;
      opacity:0;
      border-radius:50%;
      background:var(--particle-color);
      box-shadow:0 0 7px var(--particle-color);
      transform:translate(-50%,-50%);
      will-change:transform,opacity;
      animation:
        particle-drift var(--particle-duration) ease-in-out var(--particle-delay) infinite alternate,
        particle-twinkle var(--twinkle-duration) ease-in-out var(--particle-delay) infinite alternate;
      animation-play-state:paused;
      transition:opacity .85s cubic-bezier(.22,1,.36,1);
    }

    .btn-particle.is-star{
      border-radius:0;
      clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);
    }

    .btn.btn-primary:hover .btn-particle,
    .btn.btn-primary:focus-visible .btn-particle{
      opacity:var(--particle-opacity);
      animation-play-state:running;
    }

    /* Boutons secondaires : simple reflet, sans halo ni particules. */
    .btn.btn-ghost{
      overflow:hidden;
      background:rgba(255,255,255,.025);
      border-color:rgba(255,255,255,.16);
    }

    .btn.btn-ghost::before{
      content:"";
      position:absolute;
      z-index:-1;
      inset:-2px;
      pointer-events:none;
      background:linear-gradient(105deg,transparent 28%,rgba(55,208,235,.05) 42%,rgba(255,255,255,.16) 50%,rgba(168,95,231,.08) 58%,transparent 72%);
      transform:translateX(-120%) skewX(-12deg);
      transition:transform .9s cubic-bezier(.22,1,.36,1);
    }

    .btn.btn-ghost::after{
      content:"";
      position:absolute;
      left:22px;
      right:22px;
      bottom:7px;
      height:1px;
      pointer-events:none;
      background:linear-gradient(90deg,transparent,var(--cyan),#C888FF,transparent);
      opacity:.65;
      transform:scaleX(0);
      transition:transform .65s cubic-bezier(.22,1,.36,1);
    }

    .btn.btn-ghost:hover,
    .btn.btn-ghost:focus-visible{
      transform:translateY(-2px);
      border-color:rgba(55,208,235,.3);
      background:rgba(255,255,255,.045);
      box-shadow:0 8px 22px rgba(0,0,0,.13);
    }

    .btn.btn-ghost:hover::before,
    .btn.btn-ghost:focus-visible::before{
      transform:translateX(120%) skewX(-12deg);
    }

    .btn.btn-ghost:hover::after,
    .btn.btn-ghost:focus-visible::after{
      transform:scaleX(1);
    }

    @keyframes button-gradient{
      0%{background-position:0% 50%}
      100%{background-position:100% 50%}
    }

    @keyframes particle-drift{
      0%{
        transform:translate(-50%,-50%) translate3d(0,0,0) rotate(0deg) scale(.72);
      }
      48%{
        transform:translate(-50%,-50%) translate3d(var(--particle-dx),var(--particle-dy),0) rotate(105deg) scale(1);
      }
      100%{
        transform:translate(-50%,-50%) translate3d(var(--particle-dx2),var(--particle-dy2),0) rotate(225deg) scale(.82);
      }
    }

    @keyframes particle-twinkle{
      from{filter:brightness(.72);box-shadow:0 0 4px var(--particle-color)}
      to{filter:brightness(1.28);box-shadow:0 0 10px var(--particle-color)}
    }

    @media (prefers-reduced-motion:reduce){
      html{scroll-behavior:auto}
      *,*::before,*::after{
        scroll-behavior:auto !important;
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.01ms !important;
      }
      .preloader{display:none}
      body.is-loading{overflow:auto}
      .ambient-blob{will-change:auto}
      .btn-primary,.btn-primary::before,.btn-particle{animation:none !important}
    }

    a{color:inherit;text-decoration:none}
    button,input,textarea,select{font:inherit}
    h1,h2,h3,p{margin-top:0}

    .container{
      width:min(var(--max),calc(100% - 32px));
      margin-inline:auto;
    }

    .section{padding:18px 0}
    .section-lg{padding:34px 0}

    .panel{
      background:linear-gradient(180deg,rgba(18,24,70,.92),rgba(12,17,49,.92));
      border:1px solid var(--line);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
    }

    .muted{color:var(--muted)}
    .accent{color:var(--cyan)}
    .violet{color:#C888FF}
    .center{text-align:center}

    .eyebrow{
      display:inline-flex;
      gap:8px;
      align-items:center;
      color:var(--cyan);
      font-size:.78rem;
      font-weight:700;
      text-transform:uppercase;
      letter-spacing:.09em;
      margin-bottom:8px;
    }

    .section-title{
      font-size:clamp(1.7rem,2vw + .8rem,2.8rem);
      line-height:1.08;
      margin-bottom:10px;
      letter-spacing:-.02em;
    }

    .section-intro{
      max-width:760px;
      color:var(--muted);
      margin-bottom:20px;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:48px;
      padding:0 20px;
      border-radius:10px;
      border:1px solid rgba(255,255,255,.14);
      font-weight:700;
      transition:.2s ease;
    }

    .btn:hover{transform:translateY(-2px)}

    .btn-primary{
      background:var(--cta);
      box-shadow:0 12px 30px rgba(96,105,213,.26);
    }

    .btn-ghost{
      background:rgba(255,255,255,.02);
    }

    .btn:focus-visible,
    a:focus-visible,
    button:focus-visible{
      outline:2px solid var(--cyan);
      outline-offset:3px;
    }

    /* PLACEHOLDERS IMAGES */
    .ph{
      position:relative;
      overflow:hidden;
      min-height:160px;
      display:grid;
      place-items:center;
      background:
        linear-gradient(135deg,rgba(55,208,235,.10),rgba(96,105,213,.12)),
        repeating-linear-gradient(
          45deg,
          rgba(255,255,255,.03) 0 10px,
          transparent 10px 20px
        );
      border:1px dashed rgba(55,208,235,.35);
      border-radius:18px;
      color:var(--cyan);
      font-weight:700;
      text-transform:uppercase;
      letter-spacing:.06em;
      text-align:center;
      padding:18px;
    }

    .ph small{
      display:block;
      color:var(--muted);
      font-weight:600;
      letter-spacing:0;
      text-transform:none;
      margin-top:6px;
    }

    .ph-hero{min-height:440px}
    .ph-wide{min-height:250px}

    .ph-icon{
      min-height:68px;
      width:68px;
      border-radius:16px;
      font-size:.65rem;
      padding:8px;
      margin-inline:auto;
    }

    /* HEADER */
    .site-header{
      position:sticky;
      top:0;
      z-index:50;
      backdrop-filter:blur(14px);
      background:rgba(7,11,35,.78);
      border-bottom:1px solid rgba(255,255,255,.06);
    }

    .nav-wrap{
      min-height:72px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:24px;
    }

    .brand{
      display:flex;
      align-items:center;
      gap:10px;
      min-width:max-content;
    }

    .brand-mark{
      width:38px;
      height:38px;
      border-radius:50%;
      display:grid;
      place-items:center;
      background:linear-gradient(135deg,var(--cyan),var(--violet2));
      color:#08102d;
      font-weight:700;
    }

    .brand strong{
      font-size:1.16rem;
      letter-spacing:.02em;
    }

    .brand strong span{color:var(--cyan)}

    .brand small{
      display:block;
      color:var(--muted);
      font-size:.68rem;
      margin-top:2px;
    }

    nav{
      display:flex;
      align-items:center;
      gap:22px;
    }

    nav a{
      color:var(--muted);
      font-size:.86rem;
      font-weight:700;
    }

    nav a:hover{color:#fff}

    .menu-toggle{
      display:none;
      width:46px;
      height:46px;
      border:1px solid rgba(255,255,255,.14);
      border-radius:10px;
      background:rgba(255,255,255,.03);
      color:var(--white);
      cursor:pointer;
      align-items:center;
      justify-content:center;
      font-size:1.35rem;
      line-height:1;
    }

    .mobile-nav{
      display:none;
      padding:0 0 16px;
    }

    .mobile-nav.open{
      display:grid;
      gap:8px;
    }

    .mobile-nav a{
      display:block;
      padding:12px 14px;
      border:1px solid rgba(255,255,255,.08);
      border-radius:10px;
      color:var(--muted);
      font-weight:700;
      background:rgba(255,255,255,.025);
    }

    .mobile-nav a:hover{color:#fff}

    .hero-kicker{
      color:var(--cyan);
      font-size:.82rem;
      font-weight:700;
      text-transform:uppercase;
      letter-spacing:.08em;
      margin-bottom:10px;
    }

    .section-support{
      max-width:880px;
      margin:0 auto 20px;
      color:var(--muted);
      text-align:center;
    }

    /* HERO */
    .hero{padding:32px 0 14px}

    .hero-grid{
      display:grid;
      grid-template-columns:1.02fr .98fr;
      align-items:center;
      gap:30px;
    }

    .hero h1{
      font-size:clamp(2.55rem,5vw,4.8rem);
      line-height:1.03;
      letter-spacing:-.04em;
      margin-bottom:18px;
    }

    .hero p{
      color:var(--muted);
      font-size:1.06rem;
      max-width:620px;
      margin-bottom:20px;
    }

    .hero-actions{
      display:flex;
      gap:12px;
      flex-wrap:wrap;
      margin:22px 0;
    }

    .trust-points{
      display:flex;
      flex-wrap:wrap;
      gap:16px 22px;
      color:var(--muted);
      font-size:.9rem;
      font-weight:700;
    }

    .trust-points span::before{
      content:"✓";
      color:var(--cyan);
      margin-right:7px;
    }

    /* OBJECTIFS */
    .objectifs{padding:22px}

    .cards-6{
      display:grid;
      grid-template-columns:repeat(6,1fr);
      gap:12px;
    }

    .goal{
      padding:16px 12px;
      text-align:center;
      background:rgba(255,255,255,.025);
      border:1px solid var(--line);
      border-radius:16px;
    }

    .goal h3{
      font-size:1rem;
      line-height:1.2;
      margin:10px 0 8px;
    }

    .goal p{
      font-size:.82rem;
      color:var(--muted);
      margin:0;
    }

    .goal-footer{
      display:flex;
      justify-content:center;
      align-items:center;
      gap:14px;
      flex-wrap:wrap;
      margin-top:18px;
      color:var(--muted);
      font-size:.9rem;
    }

    /* EVOLUTION */
    .evolution{
      display:grid;
      grid-template-columns:240px 1fr;
      gap:22px;
      align-items:center;
      padding:22px;
    }

    .orbit-steps{
      display:grid;
      grid-template-columns:repeat(6,1fr);
      gap:8px;
      margin-top:16px;
    }

    .orbit-step{
      text-align:center;
      position:relative;
    }

    .orbit-step:not(:last-child)::after{
      content:"→";
      position:absolute;
      right:-10px;
      top:19px;
      color:var(--cyan);
      opacity:.7;
    }

    .orbit-step .circle{
      width:52px;
      height:52px;
      border-radius:50%;
      margin:0 auto 8px;
      display:grid;
      place-items:center;
      border:1px solid rgba(96,105,213,.5);
      background:rgba(255,255,255,.03);
      color:var(--cyan);
      font-weight:700;
    }

    .orbit-step strong{
      display:block;
      color:var(--cyan);
      font-size:.78rem;
    }

    .orbit-step span{
      display:block;
      color:var(--muted);
      font-size:.75rem;
      line-height:1.25;
    }

    /* TARIFS */
    .pricing{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      gap:18px;
    }

    .price-card{
      padding:24px;
      position:relative;
      background:linear-gradient(180deg,rgba(19,25,70,.95),rgba(11,16,48,.95));
      border:1px solid var(--line);
      border-radius:18px;
    }

    .price-card.featured{
      border-color:#5FB5FF;
      box-shadow:
        0 0 0 1px rgba(168,95,231,.55),
        0 0 32px rgba(96,105,213,.22);
    }

    .ribbon{
      position:absolute;
      top:-13px;
      left:50%;
      transform:translateX(-50%);
      background:linear-gradient(90deg,var(--violet2),#C888FF);
      color:#fff;
      font-weight:700;
      font-size:.78rem;
      padding:6px 18px;
      border-radius:999px;
    }

    .price-card h3{
      text-align:center;
      font-size:1.42rem;
      margin-bottom:6px;
    }

    .price-sub{
      text-align:center;
      color:var(--muted);
      font-size:.9rem;
      min-height:42px;
    }

    .price{
      text-align:center;
      font-size:2.35rem;
      font-weight:700;
      margin:14px 0 18px;
    }

    .price small{
      font-size:.9rem;
      color:var(--muted);
    }

    .checks{
      display:grid;
      gap:10px;
      margin:0 0 22px;
      padding:0;
      list-style:none;
    }

    .checks li{
      color:var(--muted);
      font-size:.9rem;
      padding-left:24px;
      position:relative;
    }

    .checks li::before{
      content:"✓";
      position:absolute;
      left:0;
      color:#B76BFF;
      font-weight:700;
    }

    .price-card .btn{width:100%}

    /* BLOCS ALTERNÉS */
    .feature-row{
      display:grid;
      grid-template-columns:1fr 1.15fr;
      gap:0;
      overflow:hidden;
    }

    .feature-row.reverse{
      grid-template-columns:1.15fr 1fr;
    }

    .feature-row.reverse .feature-media{order:2}
    .feature-row.reverse .feature-copy{order:1}

    .feature-media{min-height:300px}

    .feature-copy{padding:30px}

    .feature-copy h2{
      font-size:clamp(1.6rem,2vw + .6rem,2.5rem);
      line-height:1.1;
      margin-bottom:10px;
    }

    .feature-copy p{color:var(--muted)}

    .feature-points{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:12px;
      margin-top:18px;
    }

    .feature-point{
      padding:12px 14px;
      border:1px solid rgba(255,255,255,.07);
      border-radius:14px;
      background:rgba(255,255,255,.02);
    }

    .feature-point strong{
      display:block;
      color:var(--white);
      font-size:.93rem;
    }

    .feature-point span{
      color:var(--muted);
      font-size:.82rem;
    }

    /* PROCESS */
    .process{padding:26px}

    .process-grid{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:12px;
      margin-top:18px;
    }

    .process-card{
      text-align:center;
      padding:12px;
    }

    .num{
      width:48px;
      height:48px;
      border-radius:50%;
      margin:0 auto 9px;
      display:grid;
      place-items:center;
      border:2px solid rgba(183,107,255,.6);
      color:#fff;
      font-weight:700;
    }

    .process-card h3{
      font-size:1rem;
      margin:6px 0;
    }

    .process-card p{
      font-size:.82rem;
      color:var(--muted);
    }

    /* AVIS */
    .proof-grid{
      display:grid;
      grid-template-columns:260px repeat(3,1fr);
      gap:12px;
    }

    .review-summary,
    .quote{
      padding:22px;
    }

    .review-summary .rating{
      font-size:2rem;
      color:#FFC64D;
      letter-spacing:3px;
      margin:8px 0;
    }

    .review-summary strong{font-size:2rem}

    .quote p{
      font-size:.92rem;
      color:#fff;
      margin-bottom:16px;
    }

    .quote footer{
      color:var(--muted);
      font-size:.82rem;
    }

    /* FAQ */
    .faq-grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:10px;
      align-items:start;
    }

    details{
      align-self:start;
      border:1px solid var(--line);
      border-radius:10px;
      background:rgba(255,255,255,.025);
      overflow:hidden;
    }

    summary{
      cursor:pointer;
      list-style:none;
      padding:14px 16px;
      font-weight:700;
      font-size:.92rem;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
    }

    summary::-webkit-details-marker{display:none}
    summary::after{content:"+";color:var(--cyan);font-size:1.1rem}
    details[open] summary::after{content:"–"}

    details p{
      padding:0 16px 14px;
      color:var(--muted);
      font-size:.9rem;
      margin:0;
    }

    /* CTA */
    .final-cta{
      display:grid;
      grid-template-columns:1fr auto 150px;
      gap:20px;
      align-items:center;
      padding:22px 28px;
      background:
        radial-gradient(circle at 20% 50%,rgba(55,208,235,.13),transparent 25%),
        linear-gradient(90deg,rgba(22,28,78,.96),rgba(27,17,73,.96));
    }

    .final-cta h2{
      font-size:clamp(1.8rem,2vw + .8rem,2.8rem);
      margin-bottom:6px;
    }

    .final-cta p{
      color:var(--muted);
      margin:0;
    }

    /* FOOTER */
    footer{padding:20px 0 32px}

    .footer-grid{
      display:grid;
      grid-template-columns:1.35fr repeat(4,1fr);
      gap:22px;
      padding:10px 0 20px;
    }

    footer h3{
      font-size:.9rem;
      margin-bottom:10px;
    }

    footer ul{
      padding:0;
      margin:0;
      list-style:none;
      display:grid;
      gap:7px;
    }

    footer li,
    footer a,
    footer p{
      color:var(--muted);
      font-size:.8rem;
    }

    .copyright{
      border-top:1px solid rgba(255,255,255,.07);
      padding-top:14px;
      text-align:center;
      color:var(--muted);
      font-size:.75rem;
    }

    @media(max-width:980px){
      nav{display:none}
      .menu-toggle{display:inline-flex}

      .hero-grid,
      .evolution,
      .feature-row,
      .feature-row.reverse,
      .final-cta{
        grid-template-columns:1fr;
      }

      .cards-6{grid-template-columns:repeat(3,1fr)}
      .pricing{grid-template-columns:1fr}
      .orbit-steps{grid-template-columns:repeat(3,1fr)}
      .orbit-step:not(:last-child)::after{display:none}
      .process-grid{grid-template-columns:1fr 1fr}
      .proof-grid{grid-template-columns:1fr 1fr}

      .feature-row.reverse .feature-media,
      .feature-row.reverse .feature-copy{
        order:initial;
      }

      .footer-grid{grid-template-columns:1fr 1fr}
    }

    @media(max-width:640px){
      .container{
        width:min(var(--max),calc(100% - 20px));
      }

      .site-header > .container > .btn{display:none}
      .hero{padding-top:22px}

      .hero-actions{
        flex-direction:column;
      }

      .hero-actions .btn{width:100%}

      .cards-6,
      .orbit-steps,
      .process-grid,
      .proof-grid,
      .faq-grid,
      .footer-grid{
        grid-template-columns:1fr;
      }

      .feature-points{grid-template-columns:1fr}
      .ph-hero{min-height:300px}
    }
  
/* Integrated production assets and contact */
.ph{padding:0;border:0;background:none;min-height:0;display:flex;align-items:center;justify-content:center;border-radius:22px;letter-spacing:normal}
.ph img{display:block;width:100%;height:auto;object-fit:contain;border-radius:inherit}
.ph-hero{max-width:380px;margin:auto}.ph-icon{width:76px;min-height:0;padding:0;border-radius:16px}.feature-media{min-width:0}.feature-media img{max-height:370px;width:auto;max-width:100%}.ph-wide img{max-height:340px;width:auto;max-width:100%}
.final-cta .contact-form{grid-column:1/-1;width:100%;max-width:850px;margin:24px auto 0;text-align:left}.contact-form label{display:block;margin:16px 0 6px;font-size:1rem;font-weight:600}.contact-form input,.contact-form textarea{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.25);border-radius:12px;background:#13182e;color:#fafafc;font:inherit;padding:13px 15px}.contact-form input:focus,.contact-form textarea:focus{outline:2px solid #37d0eb;outline-offset:2px}.contact-form textarea{resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.hp{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.contact-form .form-privacy{font-size:.88rem;margin:16px 0 24px;line-height:1.6}.form-privacy a{text-decoration:underline}.contact-form .btn{cursor:pointer;font:inherit}.contact-form .btn:disabled{opacity:.55;cursor:wait}#form-status{min-height:1.5em;margin-top:18px;line-height:1.6;color:#37d0eb}.legal-page{max-width:820px;margin:auto;padding:60px 24px}.legal-page h1{font-size:2.4rem}.legal-page h2{margin-top:35px}.legal-page p{line-height:1.8}.legal-page a{text-decoration:underline}
@media(max-width:640px){.form-row{grid-template-columns:1fr;gap:0}.ph-hero{max-width:270px}.contact-form .btn{width:100%}.contact-form input,.contact-form textarea{font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Prevent animated layers from creating horizontal scrolling. */
html,body{overflow-x:clip}
.hero-grid>*,.feature-row>*,.final-cta>*,.footer-grid>*{min-width:0}
.feature-copy{overflow-wrap:break-word}
.contact-form .btn{color:var(--white);font-weight:700}
section[id],#contact-form,#humain-title{scroll-margin-top:100px}

/* Wide desktop layout, fluid down to mobile */
.brand-logo{display:block;width:48px;height:48px;object-fit:contain;flex-shrink:0}.brand-wordmark strong{display:block}.brand-wordmark{text-align:left}
.brand{flex-shrink:0}.preloader-core{width:64px;height:64px;border-radius:10px;background:transparent;box-shadow:none}.preloader-core img{display:block;width:100%;height:100%;object-fit:contain}
.ph-hero{width:100%;max-width:600px;margin-inline:auto}.ph-hero img{width:100%;height:auto;max-height:none}.feature-media{padding:24px}.feature-media img{width:100%;height:auto;max-height:none;object-fit:contain}.ph-wide{width:100%}.ph-wide img{width:100%;height:auto;max-height:none}.ph-icon{width:76px;height:auto;min-height:0;aspect-ratio:1}.ph-icon img{width:100%;height:100%;object-fit:contain}
@media(min-width:1200px){
 .container{width:min(var(--max),calc(100% - 80px))}
 .hero{padding-top:48px;padding-bottom:24px}.hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,3vw,64px)}
 .hero h1{font-size:clamp(3.2rem,4.2vw,5.25rem);max-width:850px}.hero p{max-width:700px}
 .objectifs{padding:32px}.cards-6{gap:18px}.goal{padding:24px 18px}.goal p{font-size:.9rem;line-height:1.6}.pricing{gap:26px}.price-card{padding:32px}
 .feature-copy{padding:clamp(32px,3.4vw,58px)}.feature-copy p{max-width:650px}.feature-row,.feature-row.reverse{grid-template-columns:repeat(2,minmax(0,1fr))}
 .process-grid{gap:24px}.process-card{padding:28px}.faq-grid{gap:20px 28px}.footer-grid{gap:32px}
 .final-cta{padding:36px 40px}.final-cta .contact-form{max-width:1040px}
}
@media(max-width:980px){.ph-hero{max-width:520px}.feature-media img,.ph-wide img{max-width:640px;margin-inline:auto}}
@media(max-width:640px){.brand-logo{width:40px;height:40px}.ph-hero{max-width:360px}.feature-media{padding:16px}.ph-icon{width:68px}}
/* Devis interactif */
.quote-shell{padding:clamp(20px,4vw,56px);background:radial-gradient(ellipse at top right,rgba(124,79,255,.16),transparent 50%),#111630}
.quote-intro{max-width:800px;margin-bottom:36px}.quote-intro h2{font-size:clamp(2rem,3.3vw,3.5rem);line-height:1.12;margin:14px 0 18px}.quote-intro p{color:var(--muted);line-height:1.7;max-width:720px}.quote-eyebrow{color:var(--cyan);font-size:.74rem;letter-spacing:.14em;font-weight:700}.quote-trust{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:.85rem;color:var(--muted);margin-top:20px}
.quote-form{max-width:none;width:100%;text-align:left}.quote-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(270px,.4fr);gap:36px;align-items:start}.quote-main{min-width:0}.quote-progress{display:flex;list-style:none;padding:0;margin:0 0 32px;gap:20px;color:var(--muted);font-size:.85rem}.quote-progress li{display:flex;align-items:center;gap:8px}.quote-progress li span{display:grid;place-items:center;width:28px;height:28px;border:1px solid #414564;border-radius:50%;flex-shrink:0}.quote-progress li[aria-current]{color:var(--white)}.quote-progress li[aria-current] span{background:var(--violet);border-color:var(--violet)}
.quote-step{border:0;padding:0;margin:0;min-width:0}.quote-step[hidden]{display:none}.quote-step legend{font-size:1.55rem;font-weight:700;margin-bottom:10px}.quote-form .quote-help{font-size:.9rem;color:var(--muted);line-height:1.6;margin:8px 0 22px}.quote-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.quote-form .quote-choice{display:flex;align-items:flex-start;gap:10px;padding:18px 14px;margin:0;border:1px solid #414564;border-radius:16px;cursor:pointer;background:rgba(255,255,255,.025);transition:border-color .2s,background .2s}.quote-choice:has(input:checked){border-color:var(--cyan);background:rgba(55,208,235,.09)}.quote-form .quote-choice input{width:18px;height:18px;padding:0;margin:3px 0 0;flex:0 0 18px;accent-color:var(--cyan)}.quote-choice span{display:grid;gap:10px;min-width:0}.quote-choice strong{font-size:1rem}.quote-choice b{color:var(--cyan);font-size:1.05rem}.quote-choice small{font-size:.82rem;line-height:1.6;color:var(--muted);font-weight:400}.quote-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.quote-option span{gap:3px}.quote-form select{width:100%;max-width:440px;background:#13182e;color:#fafafc;border:1px solid #414564;border-radius:12px;padding:13px;font:inherit}.quote-form select:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.quote-actions{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:28px}.quote-back{background:transparent;border:1px solid #414564;cursor:pointer}.quote-summary{position:sticky;top:110px;border:1px solid rgba(55,208,235,.3);border-radius:20px;background:#0c1126;padding:24px;min-width:0}.quote-summary h3{font-size:1.2rem;margin:12px 0 24px}.quote-summary p{line-height:1.6;color:var(--muted);font-size:.9rem}.quote-summary .quote-price{font-size:2.3rem;color:var(--white);font-weight:700;line-height:1.3;margin:12px 0}.quote-price small{font-size:1rem}.quote-summary ul{padding:0;list-style:none;margin:18px 0}.quote-summary li{font-size:.84rem;padding:9px 0;border-bottom:1px solid #252a44;line-height:1.5}.quote-summary li span{display:block;color:var(--cyan);font-size:.78rem}.quote-summary .quote-disclaimer{font-size:.77rem;border-top:1px solid #252a44;padding-top:18px;margin-top:20px}.quote-human{display:block;font-size:.8rem;color:var(--cyan);margin-top:20px}.quote-form #form-status{font-weight:600}.quote-form[data-sent] .quote-workspace{opacity:.6}.quote-form .quote-step + .quote-step:not([hidden]){margin-top:32px}
@media(max-width:1100px){.quote-plans{grid-template-columns:1fr}.quote-choice span{gap:5px}.quote-workspace{gap:24px;grid-template-columns:minmax(0,1fr) 290px}}
@media(max-width:760px){.quote-workspace{grid-template-columns:1fr}.quote-summary{position:static;order:2}.quote-progress{gap:12px;justify-content:space-between;font-size:.75rem}.quote-progress li{gap:5px}.quote-options{grid-template-columns:1fr}.quote-actions{flex-direction:column-reverse}.quote-actions .btn{width:100%;white-space:normal;text-align:center}.quote-trust{display:grid;gap:8px}.quote-form select{max-width:none;font-size:16px}.quote-step legend{font-size:1.3rem}}

/* Outfit, navigation et accents lumineux */
body{font-weight:400}h1,h2,h3,h4,h5,h6,.quote-step legend,.btn,strong,b{font-weight:700}p,.section-intro,.section-support{font-weight:400}nav a,.mobile-nav a{font-family:Outfit,system-ui,sans-serif;font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.025em}nav{gap:clamp(14px,1.5vw,24px)}.site-header>.container{gap:20px}
#offre .pricing{margin-top:48px}#offre .section-support{max-width:900px;margin-inline:auto}.violet{color:#C888FF}.quote-progress li[aria-current] span{background:#C888FF;color:#111630;border-color:#C888FF}
.quote-form .quote-rate{border-left:3px solid #C888FF;padding:10px 14px;background:rgba(200,136,255,.065);font-size:.85rem;line-height:1.6;color:var(--muted);margin:0 0 20px}.quote-option-card{border:1px solid #414564;border-radius:16px;overflow:hidden;background:rgba(255,255,255,.025)}.quote-option-card:has(input:checked){border-color:var(--cyan);background:rgba(55,208,235,.07)}.quote-form .quote-option-card .quote-choice{border:0;border-radius:0;background:transparent}.quote-option-details{border:0;border-top:1px solid rgba(255,255,255,.08);border-radius:0;background:transparent}.quote-option-details summary{font-size:.77rem;font-weight:400;padding:10px 14px;color:var(--muted)}.quote-option-details>div{padding:0 14px 14px}.quote-option-details p{padding:0;font-size:.8rem;line-height:1.6;margin:6px 0 10px}.quote-option-details ul{padding:0;list-style:none;margin:12px 0;font-size:.77rem;color:var(--muted)}.quote-option-details li{display:flex;justify-content:space-between;gap:10px;padding:4px 0}.quote-option-details li span{white-space:nowrap;color:var(--white)}.quote-summary .quote-total-label{color:#C888FF;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.quote-summary .quote-price{font-size:clamp(1.65rem,2.25vw,2.3rem)}.quote-subtotal{font-weight:700;color:var(--cyan)!important}.quote-auto-note{color:#C888FF!important;font-size:.85rem;margin-top:10px}.quote-step.is-entering{animation:quote-step-in .32s ease-out}@keyframes quote-step-in{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:981px) and (max-width:1190px){.site-header>.container>.btn{display:none}}
@media(max-width:640px){nav a,.mobile-nav a{font-size:1rem}#offre .pricing{margin-top:34px}.quote-option-details summary{min-height:44px}.quote-summary .quote-price{font-size:2rem}}
@media(prefers-reduced-motion:reduce){.quote-step.is-entering{animation:none}}

/* Lecture plus confortable : base 18 px et hiérarchie proportionnelle */
html{font-size:18px}body{font-size:1rem;line-height:1.65}
.hero p:not(.hero-kicker){font-size:1.1rem}.section-intro,.section-support,.goal p,.feature-copy>p,.feature-point p,.process-card p,#faq details p,.price-sub,.checks li{font-size:1rem;line-height:1.65}
.goal h3,.feature-point h3,.process-card h3{font-size:1.12rem}.goal{padding:26px 20px}.cards-6{gap:20px}.price-card{padding:32px}.feature-copy{line-height:1.65}
#faq summary{font-size:1.05rem;padding:18px 20px}#faq details p{padding:0 20px 20px}
.btn,button{text-transform:uppercase}.btn{font-size:.9rem;letter-spacing:.035em;line-height:1.45;white-space:normal;text-align:center;padding:14px 24px}
nav a,.mobile-nav a{font-size:1rem}.brand-wordmark small{font-size:.7rem}.quote-intro>p,.quote-form input,.quote-form textarea,.quote-form select{font-size:1rem}.quote-choice small{font-size:.9rem}.quote-form .quote-help{font-size:.95rem}.quote-summary p{font-size:.95rem}.quote-summary li{font-size:.9rem}.quote-summary li span{font-size:.85rem}.quote-form .form-privacy{font-size:.9rem}.quote-option-details summary{font-size:.85rem}.quote-option-details p,.quote-option-details ul{font-size:.85rem}.quote-summary .quote-disclaimer{font-size:.82rem}.quote-trust{font-size:.9rem}.quote-progress{gap:16px}.quote-progress li{font-size:.82rem}.quote-form label{font-size:1rem}.quote-choice strong{font-size:1rem}
@media(min-width:1181px) and (max-width:1460px){.site-header>.container>.btn{display:none}}
@media(max-width:1180px){.site-header nav{display:none}.menu-toggle{display:inline-flex}.site-header>.container>.btn{display:none}}
@media(max-width:760px){.quote-progress{gap:8px}.quote-progress li{font-size:.7rem;gap:5px}.quote-progress li span{width:26px;height:26px}.quote-actions .btn{padding:15px 16px}.quote-workspace{gap:28px}}
@media(max-width:640px){.hero h1{font-size:clamp(2.25rem,9vw,3rem)}.hero p:not(.hero-kicker){font-size:1rem}.section-title{font-size:clamp(1.7rem,7vw,2.4rem)}.quote-intro h2{font-size:1.9rem}.quote-shell{padding:22px 18px}.quote-summary{padding:22px 18px}.goal{padding:24px 20px}.contact-form input,.contact-form textarea,.quote-form select{font-size:18px}.brand-logo{width:40px;height:40px}}

.site-header nav a{white-space:nowrap}

/* Logo compact, navigation regroupée et résumé sticky */
.brand{align-items:center}.brand-wordmark{display:flex;flex-direction:column;justify-content:center;gap:3px}.brand-wordmark strong{line-height:1.05;margin:0}.brand-wordmark small{line-height:1.1;margin:0}
.site-header .nav-wrap{justify-content:flex-start;gap:20px}.site-header nav{margin-left:auto;gap:18px}.site-header>.container>.btn{display:inline-flex;flex-shrink:0;font-size:.82rem;padding:13px 18px}.site-header .menu-toggle{margin-left:0;flex-shrink:0}
@media(min-width:1400px){.site-header nav{display:flex}.site-header .menu-toggle{display:none}}
@media(max-width:1399px){.site-header nav{display:none}.site-header>.container>.btn{margin-left:auto}.site-header .menu-toggle{display:inline-flex}}
@media(max-width:640px){.site-header>.container>.btn{display:none}.site-header .menu-toggle{margin-left:auto}}
.quote-workspace{align-items:start}.quote-summary{align-self:start;position:sticky;top:var(--quote-sticky-top,96px);max-height:calc(100dvh - var(--quote-sticky-top,96px) - 20px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}.quote-main .quote-intro{margin-bottom:32px}.quote-form .quote-intro h2{margin-top:14px}.quote-compatibility{color:#C888FF;font-size:.9rem;line-height:1.6}.quote-upgrade{margin:0 0 22px;background:rgba(200,136,255,.09);border:1px solid rgba(200,136,255,.45)}.quote-upgrade[hidden]{display:none}.quote-option-card.is-unavailable{border-style:dashed;background:rgba(255,255,255,.01)}.quote-option-card.is-unavailable .quote-choice{cursor:not-allowed;opacity:.55}.quote-option-card.is-unavailable .quote-option-details{opacity:.7}
@media(max-width:760px){.quote-summary{position:static;max-height:none;overflow:visible}.quote-intro{max-width:none}}
/* Informations légales en modales accessibles */
body.legal-modal-open{overflow:hidden}.legal-dialog{padding:0;border:1px solid rgba(200,136,255,.3);border-radius:22px;background:#111630;color:var(--white);width:min(850px,calc(100vw - 32px));max-height:calc(100dvh - 48px);opacity:0;transition:opacity .25s ease;box-shadow:0 28px 100px rgba(0,0,0,.5);overflow:hidden}.legal-dialog[open]{display:flex;flex-direction:column}.legal-dialog.is-open{opacity:1}.legal-dialog::backdrop{background:rgba(5,8,24,.84);opacity:0;transition:opacity .25s ease}.legal-dialog.is-open::backdrop{opacity:1}.legal-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 28px;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.legal-dialog-header h2{font-size:1.4rem;margin:0;line-height:1.2}.legal-dialog-close{background:transparent;color:var(--white);border:1px solid #414564;border-radius:10px;padding:10px 12px;font:inherit;font-size:.8rem;cursor:pointer;flex-shrink:0}.legal-dialog-body{overflow:auto;overscroll-behavior:contain;padding:24px 28px;min-height:0}.legal-dialog-body h2{font-size:1.18rem;margin:24px 0 10px}.legal-dialog-body h2:first-child{margin-top:0}.legal-dialog-body p{font-size:1rem;line-height:1.75}.legal-dialog-body a{text-decoration:underline;color:var(--cyan)}
@media(max-width:640px){.legal-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}.legal-dialog-header{padding:18px;gap:12px}.legal-dialog-header h2{font-size:1.15rem}.legal-dialog-body{padding:20px 18px}}
@media(prefers-reduced-motion:reduce){.legal-dialog,.legal-dialog::backdrop{transition:none}}
