/* DIGIPRESSE — feuille de style partagée */
  :root{
    --ink:#0A1B33;
    --ink-2:#0F2A4D;
    --ink-3:#15335C;
    --blue:#2F6FED;
    --blue-deep:#1E52C4;
    --blue-soft:#EAF1FE;
    --paper:#F7F7F4;
    --white:#FFFFFF;
    --amber:#FF8A34;
    --amber-deep:#E36A12;
    --slate:#5B6B82;
    --slate-2:#8896A8;
    --line:#E3E6EA;
    --line-dark:#223C64;
    --radius:18px;
    --radius-sm:12px;
    --maxw:1180px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Manrope',sans-serif;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  h1,h2,h3,.display{
    font-family:'Fraunces',serif;
    font-weight:600;
    letter-spacing:-0.01em;
    margin:0;
  }
  .kicker{
    font-family:'JetBrains Mono',monospace;
    font-size:12.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    font-weight:600;
  }
  p{line-height:1.65; color:var(--slate); margin:0;}
  a{color:inherit; text-decoration:none;}
  img,svg{display:block; max-width:100%;}
  .wrap{max-width:var(--maxw); margin:0 auto; padding:0 32px;}
  @media(max-width:640px){.wrap{padding:0 20px;}}

  /* ---------- reveal ---------- */
  .reveal{opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}
  @media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none;} }

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(247,247,244,0.86);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav{display:flex; align-items:center; justify-content:space-between; padding:16px 0;}
  .logo{display:flex; align-items:center; gap:9px; font-family:'Fraunces',serif; font-weight:700; font-size:20px; color:var(--ink);}
  .logo .dot{width:9px; height:9px; border-radius:50%; background:var(--amber);}
  .nav-links{display:flex; align-items:center; gap:30px;}
  .nav-links a{font-size:14.5px; font-weight:600; color:var(--ink-2); padding:6px 0; border-bottom:2px solid transparent; transition:border-color .2s, color .2s;}
  .nav-links a:hover{border-color:var(--amber); color:var(--ink);}
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:12px 22px; border-radius:999px; font-weight:700; font-size:14.5px;
    cursor:pointer; border:none; transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
    white-space:nowrap;
  }
  .btn-amber{background:var(--amber); color:var(--ink);}
  .btn-amber:hover{background:var(--amber-deep); transform:translateY(-2px); box-shadow:0 10px 24px rgba(255,138,52,.35);}
  .btn-ghost{background:transparent; color:var(--ink); border:1.5px solid var(--line-dark);}
  .btn-ghost{border-color:#D7DCE3;}
  .btn-ghost:hover{border-color:var(--ink); transform:translateY(-2px);}
  .btn-outline-light{background:transparent; color:var(--white); border:1.5px solid rgba(255,255,255,.35);}
  .btn-outline-light:hover{border-color:#fff; transform:translateY(-2px);}
  .btn-white{background:var(--white); color:var(--ink);}
  .btn-white:hover{transform:translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.18);}
  .burger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
  .burger span{width:22px; height:2px; background:var(--ink); border-radius:2px;}
  .mobile-menu{display:none; flex-direction:column; gap:2px; padding:8px 0 20px;}
  .mobile-menu a{padding:12px 0; font-weight:600; border-bottom:1px solid var(--line);}
  @media(max-width:900px){
    .nav-links, .nav .btn-amber.desktop-only{display:none;}
    .burger{display:flex;}
  }

  /* ---------- hero ---------- */
  .hero{position:relative; background:var(--ink); overflow:hidden; padding:88px 0 100px;}
  .hero::before{
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(700px 500px at 82% 8%, rgba(47,111,237,.35), transparent 60%),
      radial-gradient(500px 400px at 10% 100%, rgba(255,138,52,.14), transparent 60%);
    pointer-events:none;
  }
  .hero-grid{position:relative; display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center;}
  @media(max-width:960px){.hero-grid{grid-template-columns:1fr; gap:56px;}}
  .eyebrow-row{display:flex; align-items:center; gap:10px; margin-bottom:22px;}
  .eyebrow-row .kicker{color:var(--amber);}
  .eyebrow-line{width:34px; height:1.5px; background:var(--amber);}
  .hero h1{color:var(--white); font-size:clamp(34px,5vw,58px); line-height:1.05;}
  .hero h1 em{font-style:italic; color:#9FC0FF;}
  .hero p.lead{color:#B9C6DC; font-size:18px; max-width:490px; margin-top:20px;}
  .hero-cta{display:flex; gap:14px; margin-top:34px; flex-wrap:wrap;}
  .flow-mini{
    margin-top:46px; display:flex; align-items:center; gap:14px; flex-wrap:wrap;
    font-family:'JetBrains Mono',monospace; font-size:13px; color:#8FA3C4;
  }
  .flow-mini .pill{
    padding:8px 14px; border:1px solid var(--line-dark); border-radius:999px; color:#D8E1F0; background:rgba(255,255,255,.03);
  }
  .flow-mini .arrow{color:var(--amber); font-size:16px;}

  /* hero visual: paper -> phone */
  .hero-visual{position:relative; height:440px; display:flex; align-items:center; justify-content:center;}
  .stage{position:relative; width:100%; max-width:400px; height:100%;}
  .paper-stack{
    position:absolute; left:8%; top:14%; width:210px; height:280px;
    background:linear-gradient(180deg,#F4F1EA,#E9E4D8);
    border-radius:6px; box-shadow:0 30px 60px rgba(0,0,0,.45);
    transform:rotate(-9deg);
    animation:paperFloat 6s ease-in-out infinite;
  }
  .paper-stack::before, .paper-stack::after{
    content:""; position:absolute; inset:0; background:inherit; border-radius:6px;
  }
  .paper-stack::before{transform:translate(6px,8px) rotate(3deg); z-index:-1; filter:brightness(.94);}
  .paper-stack::after{transform:translate(12px,16px) rotate(6deg); z-index:-2; filter:brightness(.88);}
  .paper-lines{position:absolute; inset:22px 18px; display:flex; flex-direction:column; gap:8px;}
  .paper-lines .headline-bar{height:14px; width:70%; background:#0A1B33; border-radius:2px; opacity:.85;}
  .paper-lines .body-bar{height:4px; background:#B9B2A0; border-radius:2px;}
  .paper-lines .body-bar:nth-child(2){width:100%;}
  .paper-lines .body-bar:nth-child(3){width:92%;}
  .paper-lines .body-bar:nth-child(4){width:96%;}
  .paper-lines .body-bar:nth-child(5){width:60%;}
  .paper-lines .img-block{margin-top:8px; height:70px; background:#D9D2C0; border-radius:3px;}

  @keyframes paperFloat{0%,100%{transform:rotate(-9deg) translateY(0);} 50%{transform:rotate(-11deg) translateY(-8px);}}

  .phone{
    position:absolute; right:2%; bottom:4%; width:180px; height:366px;
    background:#0D1B30; border-radius:32px; padding:9px;
    box-shadow:0 30px 70px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.06);
    animation:phoneFloat 6s ease-in-out infinite; animation-delay:.2s;
  }
  @keyframes phoneFloat{0%,100%{transform:translateY(0);} 50%{transform:translateY(-10px);}}
  .phone-screen{
    width:100%; height:100%; border-radius:24px; overflow:hidden; position:relative;
    background:linear-gradient(160deg,#122750,#0A1B33);
  }
  .phone-cover{
    position:absolute; inset:10px 10px auto 10px; height:150px; border-radius:12px;
    background:linear-gradient(135deg,#2F6FED,#1a3f8f);
    display:flex; align-items:flex-end; padding:10px;
  }
  .phone-cover span{font-family:'JetBrains Mono',monospace; font-size:9px; color:#DCE7FF; letter-spacing:.05em;}
  .phone-lines{position:absolute; top:172px; left:10px; right:10px; display:flex; flex-direction:column; gap:6px;}
  .phone-lines div{height:5px; background:rgba(255,255,255,.14); border-radius:2px;}
  .phone-lines div:nth-child(1){width:80%;}
  .phone-lines div:nth-child(2){width:60%;}
  .phone-btn{
    position:absolute; left:10px; right:10px; bottom:34px; height:30px; border-radius:8px;
    background:var(--amber); display:flex; align-items:center; justify-content:center;
    font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700; color:#0A1B33;
  }
  .phone-sub{
    position:absolute; left:10px; bottom:10px; font-family:'JetBrains Mono',monospace; font-size:8.5px; color:#7A93BE;
  }
  .connector{
    position:absolute; left:38%; top:48%; width:70px; height:2px;
    background:repeating-linear-gradient(90deg,var(--amber) 0 6px, transparent 6px 12px);
    z-index:2;
  }
  @media(max-width:960px){.hero-visual{height:380px; margin-top:8px;} .paper-stack{left:2%;} .phone{right:0;}}
  @media(max-width:480px){
    .hero-visual{height:300px; margin-top:26px;}
    .stage{max-width:300px;}
    .paper-stack{width:148px; height:198px; left:0; top:6%;}
    .paper-lines{inset:15px 12px; gap:6px;}
    .paper-lines .headline-bar{height:10px;}
    .paper-lines .body-bar{height:3px;}
    .paper-lines .img-block{margin-top:6px; height:48px;}
    .phone{width:130px; height:264px; right:0; bottom:0; padding:7px;}
    .phone-cover{inset:8px 8px auto 8px; height:108px; padding:8px;}
    .phone-cover span{font-size:8px;}
    .phone-lines{top:124px; left:8px; right:8px; gap:5px;}
    .phone-lines div{height:4px;}
    .phone-btn{left:8px; right:8px; bottom:24px; height:23px; font-size:8.5px;}
    .phone-sub{left:8px; bottom:8px; font-size:7.5px;}
    .connector{width:26px; left:41%; top:44%;}
  }
  @media(max-width:360px){
    .paper-stack{width:130px; height:174px;}
    .paper-lines{inset:13px 10px; gap:5px;}
    .paper-lines .img-block{height:40px;}
    .phone{width:114px; height:232px;}
    .phone-cover{height:92px;}
    .phone-lines{top:108px;}
    .phone-btn{bottom:20px; height:21px; font-size:8px;}
    .connector{width:34px; left:38%;}
  }

  /* ---------- section shell ---------- */
  section{padding:104px 0;}
  @media(max-width:768px){section{padding:72px 0;}}
  .section-head{max-width:640px; margin-bottom:56px;}
  .section-head .kicker{color:var(--blue-deep);}
  .section-head h2{font-size:clamp(28px,3.6vw,42px); margin-top:14px; line-height:1.15;}
  .section-head p{margin-top:16px; font-size:16.5px;}
  .on-dark .section-head .kicker{color:#7FA5FF;}
  .on-dark .section-head h2{color:var(--white);}
  .on-dark .section-head p{color:#AAB9D1;}

  /* mission block */
  .mission{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
    padding:36px 40px; margin-bottom:52px; display:grid; grid-template-columns:auto 1fr; gap:28px; align-items:flex-start;
  }
  .mission .mark{font-family:'Fraunces',serif; font-size:52px; color:var(--blue); line-height:1;}
  .mission p{font-size:16.5px; color:var(--ink-2);}
  @media(max-width:640px){.mission{grid-template-columns:1fr; padding:28px 24px;}}

  /* cards grid */
  .grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  .grid-2{display:grid; grid-template-columns:repeat(2,1fr); gap:22px;}
  @media(max-width:900px){.grid-3{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:640px){.grid-3,.grid-2{grid-template-columns:1fr;}}

  .card{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
    padding:30px 26px; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  }
  .card:hover{transform:translateY(-5px); box-shadow:0 20px 40px rgba(10,27,51,.08); border-color:#D7DEE9;}
  .card .icon{
    width:48px; height:48px; border-radius:12px; background:var(--blue-soft);
    display:flex; align-items:center; justify-content:center; font-size:22px; margin-bottom:18px;
  }
  .card h3{font-size:18.5px; font-weight:600; margin-bottom:9px;}
  .card p{font-size:14.5px;}

  /* why section bg */
  .why{background:var(--paper);}

  /* journey */
  .journey{background:var(--white);}
  .journey-row{display:flex; gap:0; position:relative;}
  .journey-row::before{
    content:""; position:absolute; top:26px; left:26px; right:26px; height:1.5px;
    background:repeating-linear-gradient(90deg, var(--line) 0 10px, transparent 10px 18px);
    z-index:0;
  }
  .step{flex:1; position:relative; z-index:1; padding:0 14px; text-align:left;}
  .step .num{
    width:52px; height:52px; border-radius:50%; background:var(--ink);
    color:var(--white); display:flex; align-items:center; justify-content:center;
    font-family:'JetBrains Mono',monospace; font-weight:600; font-size:15px; margin-bottom:18px;
  }
  .step:nth-child(odd) .num{background:var(--blue);}
  .step:nth-child(even) .num{background:var(--ink);}
  .step h3{font-size:16px; margin-bottom:7px;}
  .step p{font-size:13.5px;}
  @media(max-width:900px){
    .journey-row{flex-direction:column; gap:32px;}
    .journey-row::before{display:none;}
    .step{padding:0;}
  }

  /* features on blue tint */
  .features{background:var(--blue-soft);}
  .features .card{background:var(--white); border-color:#DCE6FC;}

  /* B2B dark section */
  .b2b{background:var(--ink); color:var(--white); position:relative; overflow:hidden;}
  .b2b::before{content:""; position:absolute; inset:0; background:radial-gradient(600px 400px at 90% 0%, rgba(47,111,237,.25), transparent 60%); pointer-events:none;}
  .b2b-grid{position:relative; display:grid; grid-template-columns:0.95fr 1.05fr; gap:60px; align-items:center;}
  @media(max-width:960px){.b2b-grid{grid-template-columns:1fr;}}

  .dash{
    background:var(--ink-2); border:1px solid var(--line-dark); border-radius:var(--radius);
    padding:22px; box-shadow:0 30px 70px rgba(0,0,0,.35);
  }
  .dash-top{display:flex; align-items:center; gap:8px; margin-bottom:18px;}
  .dash-dot{width:9px; height:9px; border-radius:50%; background:#334F7A;}
  .dash-top span{font-family:'JetBrains Mono',monospace; font-size:11px; color:#7A93BE; margin-left:6px;}
  .dash-body{display:grid; grid-template-columns:1fr 1.4fr; gap:16px;}
  .dash-nav{display:flex; flex-direction:column; gap:9px;}
  .dash-nav div{
    font-family:'JetBrains Mono',monospace; font-size:11.5px; padding:9px 10px; border-radius:8px; color:#9FB2CE;
  }
  .dash-nav div.active{background:var(--blue); color:#fff; font-weight:600;}
  .dash-panel{background:var(--ink-3); border-radius:12px; padding:16px; display:flex; flex-direction:column; gap:12px;}
  .dash-stat-row{display:flex; gap:10px;}
  .dash-stat{flex:1; background:rgba(255,255,255,.04); border-radius:9px; padding:10px 12px;}
  .dash-stat .n{font-family:'JetBrains Mono',monospace; font-weight:700; color:#fff; font-size:17px;}
  .dash-stat .l{font-family:'JetBrains Mono',monospace; font-size:9.5px; color:#7A93BE; margin-top:2px;}
  .dash-bars{display:flex; align-items:flex-end; gap:6px; height:64px; padding-top:8px;}
  .dash-bars i{flex:1; background:linear-gradient(180deg,var(--amber),#B85A16); border-radius:3px 3px 0 0; display:block;}

  .b2b-list{display:flex; flex-direction:column; gap:26px;}
  .b2b-item{display:flex; gap:18px;}
  .b2b-item .icon{
    width:42px; height:42px; border-radius:10px; background:rgba(47,111,237,.18); border:1px solid rgba(47,111,237,.4);
    display:flex; align-items:center; justify-content:center; font-size:19px; flex-shrink:0;
  }
  .b2b-item h3{font-size:16.5px; color:#fff; margin-bottom:5px;}
  .b2b-item p{font-size:14px; color:#A9B8CF;}

  /* revenue section */
  .revenue{background:var(--paper);}
  .revenue-inner{
    background:var(--ink); border-radius:var(--radius); padding:56px 44px; position:relative; overflow:hidden;
  }
  .revenue-inner::before{content:""; position:absolute; inset:0; background:radial-gradient(500px 300px at 15% 100%, rgba(255,138,52,.18), transparent 60%); pointer-events:none;}
  .revenue-inner .section-head{max-width:560px;}
  .rev-flow{position:relative; display:flex; align-items:center; justify-content:space-between; margin-top:48px; gap:8px; flex-wrap:wrap;}
  .rev-node{
    flex:1; min-width:140px; background:rgba(255,255,255,.04); border:1px solid var(--line-dark); border-radius:14px;
    padding:20px 16px; text-align:center;
  }
  .rev-node .icon{font-size:24px; margin-bottom:10px;}
  .rev-node span{display:block; font-family:'JetBrains Mono',monospace; font-size:11.5px; color:#D8E1F0; font-weight:600;}
  .rev-node.highlight{background:rgba(255,138,52,.12); border-color:rgba(255,138,52,.5);}
  .rev-arrow{color:var(--amber); font-size:22px; font-family:'JetBrains Mono',monospace;}
  @media(max-width:768px){.rev-flow{flex-direction:column;} .rev-arrow{transform:rotate(90deg);}}

  /* onboarding timeline */
  .onboard{background:var(--white);}
  .ob-row{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
  @media(max-width:900px){.ob-row{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:560px){.ob-row{grid-template-columns:1fr;}}
  .ob-card{border-left:2.5px solid var(--blue); padding-left:20px;}
  .ob-card .idx{font-family:'JetBrains Mono',monospace; color:var(--blue-deep); font-weight:700; font-size:14px; margin-bottom:10px;}
  .ob-card h3{font-size:17px; margin-bottom:8px;}
  .ob-card p{font-size:14px;}

  /* editors */
  .editors{background:var(--blue-soft);}

  /* demo */
  .demo{background:var(--paper);}
  .demo-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:56px; align-items:center;}
  @media(max-width:960px){.demo-grid{grid-template-columns:1fr;}}
  .kiosk{
    background:var(--white); border:1px solid var(--line); border-radius:20px; overflow:hidden;
    box-shadow:0 30px 60px rgba(10,27,51,.12);
  }
  .kiosk-top{background:var(--ink); padding:16px 20px; display:flex; align-items:center; justify-content:space-between;}
  .kiosk-top .k-logo{display:flex; align-items:center; gap:8px; color:#fff; font-family:'Fraunces',serif; font-weight:700; font-size:15px;}
  .kiosk-top .k-logo .dot{width:7px; height:7px; border-radius:50%; background:var(--amber);}
  .kiosk-top span.date{font-family:'JetBrains Mono',monospace; font-size:10.5px; color:#7A93BE;}
  .kiosk-body{padding:24px; display:grid; grid-template-columns:1fr 1.3fr; gap:22px;}
  .kiosk-cover{background:linear-gradient(145deg,#2F6FED,#12275a); border-radius:12px; aspect-ratio:3/4; padding:16px; display:flex; flex-direction:column; justify-content:flex-end;}
  .kiosk-cover span{font-family:'JetBrains Mono',monospace; font-size:10px; color:#DCE7FF; letter-spacing:.05em;}
  .kiosk-side h4{font-family:'Fraunces',serif; font-size:19px; margin-bottom:6px;}
  .kiosk-side p.desc{font-size:13.5px; margin-bottom:16px;}
  .kiosk-actions{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px;}
  .kchip{font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; padding:9px 15px; border-radius:8px;}
  .kchip.read{background:var(--amber); color:var(--ink);}
  .kchip.sub{background:var(--blue-soft); color:var(--blue-deep);}
  .karchive{display:flex; gap:8px; margin-top:6px;}
  .karchive div{width:30px; height:40px; background:#EDEFF3; border-radius:4px; border:1px solid var(--line);}
  .kprice{margin-top:14px; font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--slate);}
  .kwa{
    position:absolute; width:42px; height:42px; border-radius:50%; background:#25D366; display:flex; align-items:center; justify-content:center;
    font-size:20px; margin-top:-42px; margin-left:calc(100% - 66px); box-shadow:0 8px 18px rgba(37,211,102,.4);
  }
  @media(max-width:640px){.kiosk-body{grid-template-columns:1fr;} .kiosk-cover{aspect-ratio:16/9;}}

  /* pricing */
  .pricing{background:var(--white);}
  .price-card{
    border:1px solid var(--line); border-radius:var(--radius); padding:34px 28px; background:var(--paper);
    display:flex; flex-direction:column; gap:14px;
  }
  .price-card.mid{background:var(--ink); color:#fff; border-color:var(--ink); transform:translateY(-10px); box-shadow:0 30px 60px rgba(10,27,51,.2);}
  .price-card.mid p{color:#AAB9D1;}
  .price-card .tag{font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--blue-deep); font-weight:700; text-transform:uppercase; letter-spacing:.08em;}
  .price-card.mid .tag{color:#7FA5FF;}
  .price-card h3{font-size:22px; margin-top:4px;}
  .price-card ul{list-style:none; margin:10px 0 0; padding:0; display:flex; flex-direction:column; gap:10px;}
  .price-card li{font-size:13.5px; color:var(--slate); display:flex; gap:8px;}
  .price-card.mid li{color:#C7D3E6;}
  .price-card li::before{content:"—"; color:var(--amber);}
  .price-cta{margin-top:60px; text-align:center; background:var(--blue-soft); border-radius:var(--radius); padding:44px 30px;}
  .price-cta h3{font-size:22px; margin-bottom:10px;}
  .price-cta p{max-width:480px; margin:0 auto 22px;}

  /* faq */
  .faq{background:var(--paper);}
  .faq-item{border-bottom:1px solid var(--line); padding:22px 0;}
  .faq-q{display:flex; align-items:center; justify-content:space-between; cursor:pointer; gap:20px;}
  .faq-q h3{font-size:16.5px; font-weight:600;}
  .faq-q .plus{font-family:'JetBrains Mono',monospace; font-size:20px; color:var(--blue); transition:transform .25s ease; flex-shrink:0;}
  .faq-item.open .plus{transform:rotate(45deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
  .faq-item.open .faq-a{max-height:200px;}
  .faq-a p{padding-top:12px; font-size:14.5px; max-width:640px;}

  /* final cta */
  .final-cta{background:var(--ink); position:relative; overflow:hidden; text-align:center;}
  .final-cta::before{content:""; position:absolute; inset:0; background:radial-gradient(700px 400px at 50% 0%, rgba(255,138,52,.16), transparent 65%);}
  .final-cta .inner{position:relative; max-width:640px; margin:0 auto;}
  .final-cta h2{color:#fff; font-size:clamp(28px,4vw,42px);}
  .final-cta p{color:#AAB9D1; margin-top:16px; font-size:16.5px;}
  .final-cta .hero-cta{justify-content:center; margin-top:32px;}

  /* footer */
  footer{background:var(--ink-2); padding:56px 0 30px; color:#8FA3C4;}
  .foot-top{display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-bottom:36px; border-bottom:1px solid var(--line-dark);}
  .foot-logo{display:flex; align-items:center; gap:9px; font-family:'Fraunces',serif; font-weight:700; font-size:19px; color:#fff; margin-bottom:12px;}
  .foot-logo .dot{width:8px; height:8px; border-radius:50%; background:var(--amber);}
  .foot-col{min-width:150px;}
  .foot-col h4{font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#6C82A3; margin-bottom:14px;}
  .foot-col a{display:block; font-size:13.5px; margin-bottom:10px; color:#B0BFD4;}
  .foot-col a:hover{color:#fff;}
  .foot-bottom{display:flex; justify-content:space-between; padding-top:24px; font-size:12.5px; flex-wrap:wrap; gap:10px;}

  /* whatsapp float */
  .wa-float{
    position:fixed; bottom:26px; right:26px; z-index:200;
    width:58px; height:58px; border-radius:50%; background:#25D366;
    display:flex; align-items:center; justify-content:center; font-size:28px;
    box-shadow:0 12px 26px rgba(37,211,102,.45); animation:waPulse 2.4s ease-in-out infinite;
  }
  @keyframes waPulse{0%,100%{box-shadow:0 12px 26px rgba(37,211,102,.45);} 50%{box-shadow:0 12px 32px rgba(37,211,102,.7);}}

  ::selection{background:var(--amber); color:var(--ink);}
  a:focus-visible, button:focus-visible{outline:2.5px solid var(--blue); outline-offset:3px; border-radius:6px;}

  /* ===================== PAGE HERO (contact / devis / demo) ===================== */
  .page-hero{background:var(--ink); padding:64px 0 56px; position:relative; overflow:hidden;}
  .page-hero::before{
    content:""; position:absolute; inset:0;
    background:radial-gradient(600px 420px at 85% 0%, rgba(47,111,237,.32), transparent 60%),
               radial-gradient(400px 300px at 5% 100%, rgba(255,138,52,.12), transparent 60%);
    pointer-events:none;
  }
  .page-hero .wrap{position:relative;}
  .breadcrumb{font-family:'JetBrains Mono',monospace; font-size:12px; color:#7A93BE; margin-bottom:18px;}
  .breadcrumb a{color:#9FC0FF;}
  .breadcrumb a:hover{color:#fff;}
  .page-hero h1{color:#fff; font-size:clamp(30px,4.2vw,46px); line-height:1.1;}
  .page-hero p{color:#AAB9D1; margin-top:14px; max-width:540px; font-size:16px;}

  /* ===================== FORM LAYOUT ===================== */
  .form-page{background:var(--paper); padding:80px 0;}
  @media(max-width:768px){.form-page{padding:56px 0;}}
  .form-layout{display:grid; grid-template-columns:1fr 1.5fr; gap:40px; align-items:flex-start;}
  .form-layout.reverse{grid-template-columns:1.5fr 1fr;}
  @media(max-width:900px){.form-layout,.form-layout.reverse{grid-template-columns:1fr;}}

  .side-panel{display:flex; flex-direction:column; gap:22px;}
  .info-card{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius-sm);
    padding:22px 24px; display:flex; gap:16px; align-items:flex-start;
  }
  .info-card .icon{
    width:44px; height:44px; border-radius:11px; background:var(--blue-soft);
    display:flex; align-items:center; justify-content:center; font-size:20px; flex-shrink:0;
  }
  .info-card h4{font-size:15.5px; font-weight:700; margin-bottom:4px;}
  .info-card p{font-size:13.5px;}
  .info-card a{color:var(--blue-deep); font-weight:600;}

  .perk-card{
    background:var(--ink); color:#fff; border-radius:var(--radius-sm); padding:26px 24px;
  }
  .perk-card h4{font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:#7FA5FF; margin-bottom:16px;}
  .perk-card ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px;}
  .perk-card li{font-size:13.5px; color:#C7D3E6; display:flex; gap:10px; align-items:flex-start;}
  .perk-card li::before{content:"✓"; color:var(--amber); font-weight:700; flex-shrink:0;}
  .perk-meta{margin-top:18px; padding-top:16px; border-top:1px solid var(--line-dark); font-family:'JetBrains Mono',monospace; font-size:11.5px; color:#7A93BE;}

  .form-shell{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius);
    padding:40px;
  }
  @media(max-width:560px){.form-shell{padding:26px 22px;}}
  .form-shell .form-kicker{color:var(--blue-deep); margin-bottom:8px; display:block;}
  .form-shell h2{font-size:24px; margin-bottom:8px;}
  .form-shell > p.form-intro{margin-bottom:28px; font-size:14.5px;}

  .fieldset{margin-bottom:30px;}
  .fieldset:last-of-type{margin-bottom:0;}
  .fieldset-title{
    font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase;
    color:var(--slate-2); margin-bottom:16px; padding-bottom:10px; border-bottom:1px solid var(--line);
  }
  .field{margin-bottom:18px;}
  .field label{
    display:block; font-size:13px; font-weight:700; margin-bottom:7px; color:var(--ink-2);
  }
  .field .hint{font-weight:500; color:var(--slate-2); font-size:11.5px; margin-left:4px;}
  .field-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  @media(max-width:480px){.field-row{grid-template-columns:1fr;}}

  input[type=text], input[type=email], input[type=tel], input[type=date], input[type=time], select, textarea{
    width:100%; padding:13px 15px; border:1.5px solid var(--line); border-radius:10px;
    font-family:'Manrope',sans-serif; font-size:14.5px; color:var(--ink); background:var(--paper);
    transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
  }
  input:focus, select:focus, textarea:focus{
    outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(47,111,237,.15); background:var(--white);
  }
  textarea{resize:vertical; min-height:110px; font-family:'Manrope',sans-serif;}
  select{appearance:none; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8'><path d='M1 1l5 5 5-5' stroke='%235B6B82' stroke-width='1.6' fill='none' fill-rule='evenodd'/></svg>"); background-repeat:no-repeat; background-position:right 15px center; padding-right:36px;}

  .checkbox-group{display:flex; flex-wrap:wrap; gap:10px;}
  .check-pill{
    display:flex; align-items:center; gap:8px; padding:10px 15px; border:1.5px solid var(--line);
    border-radius:999px; font-size:13px; font-weight:600; color:var(--ink-2); cursor:pointer;
    transition:border-color .2s, background .2s, color .2s;
  }
  .check-pill input{width:auto; margin:0; accent-color:var(--blue);}
  .check-pill:has(input:checked){border-color:var(--blue); background:var(--blue-soft); color:var(--blue-deep);}

  .radio-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px;}
  .radio-card{
    border:1.5px solid var(--line); border-radius:12px; padding:15px 12px; cursor:pointer;
    text-align:center; font-size:13px; font-weight:700; color:var(--ink-2); transition:border-color .2s, background .2s, color .2s;
  }
  .radio-card input{display:none;}
  .radio-card:has(input:checked){border-color:var(--amber); background:#FFF4EA; color:var(--amber-deep);}

  .form-submit{margin-top:8px; display:flex; align-items:center; gap:16px; flex-wrap:wrap;}
  .form-note{font-size:12.5px; color:var(--slate-2);}

  .form-success{display:none; text-align:center; padding:50px 20px;}
  .form-success.show{display:block;}
  .form-success .check{
    width:60px; height:60px; border-radius:50%; background:var(--blue-soft); color:var(--blue-deep);
    display:flex; align-items:center; justify-content:center; font-size:28px; margin:0 auto 20px; font-weight:700;
  }
  .form-success h3{font-size:21px; margin-bottom:10px;}
  .form-success p{max-width:380px; margin:0 auto;}
  .form-success .btn{margin-top:22px;}

  /* ===================== MARQUEE SLIDERS ===================== */
  .marquee-wrap{
    overflow:hidden; position:relative;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);
  }
  .marquee-track{display:flex; gap:14px; width:max-content; animation:marqueeScroll 34s linear infinite;}
  .marquee-track.reverse{animation-direction:reverse; animation-duration:28s;}
  .marquee-wrap:hover .marquee-track{animation-play-state:paused;}
  @keyframes marqueeScroll{from{transform:translateX(0);} to{transform:translateX(-50%);}}
  .chip{
    display:flex; align-items:center; gap:10px; background:var(--white); border:1px solid var(--line); border-radius:999px;
    padding:13px 20px; white-space:nowrap; font-size:14px; font-weight:600; color:var(--ink-2); box-shadow:0 6px 16px rgba(10,27,51,.04);
  }
  .chip .em{font-size:17px;}
  .type-chip{
    display:flex; align-items:center; gap:12px; background:var(--ink-2); border:1px solid var(--line-dark); border-radius:16px;
    padding:18px 26px; white-space:nowrap; color:#fff;
  }
  .type-chip .em{font-size:24px;}
  .type-chip span{font-family:'JetBrains Mono',monospace; font-size:12.5px; letter-spacing:.04em; text-transform:uppercase; font-weight:600; color:#C7D3E6;}
  .slider-band{padding:44px 0;}
  .slider-band.on-ink{background:var(--ink);}
  .slider-band .slider-label{
    display:flex; align-items:center; gap:10px; margin-bottom:26px;
  }
  .slider-band .slider-label .kicker{color:var(--blue-deep);}
  .slider-band.on-ink .slider-label .kicker{color:#7FA5FF;}
  .slider-band .slider-label h3{font-size:15px; font-family:'Manrope',sans-serif; font-weight:700; color:var(--ink-2);}
  .slider-band.on-ink .slider-label h3{color:#fff;}

  /* ===================== TESTIMONIAL CAROUSEL ===================== */
  .tcarousel{position:relative; max-width:760px; margin:0 auto;}
  .tcarousel-track{position:relative; min-height:230px;}
  .tslide{position:absolute; inset:0; opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s ease; pointer-events:none; text-align:center;}
  .tslide.active{opacity:1; transform:translateY(0); pointer-events:auto; position:relative;}
  .tslide .quote-mark{font-family:'Fraunces',serif; font-size:48px; color:var(--blue); line-height:1;}
  .tslide p.quote{font-family:'Fraunces',serif; font-size:21px; font-style:italic; color:var(--ink); line-height:1.5; margin-top:6px;}
  .tslide .author{display:flex; align-items:center; justify-content:center; gap:12px; margin-top:24px;}
  .tslide .avatar{width:46px; height:46px; border-radius:50%; background:var(--blue-soft); display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-weight:700; color:var(--blue-deep);}
  .tslide .author-text{text-align:left;}
  .tslide .author h4{font-size:14.5px; font-weight:700;}
  .tslide .author span{font-size:12.5px; color:var(--slate-2); font-family:'JetBrains Mono',monospace;}
  .tcarousel-controls{display:flex; align-items:center; justify-content:center; gap:20px; margin-top:30px;}
  .tdots{display:flex; gap:8px;}
  .tdot{width:8px; height:8px; border-radius:50%; background:var(--line); border:none; cursor:pointer; transition:.2s; padding:0;}
  .tdot.active{background:var(--blue); width:22px; border-radius:5px;}
  .tarrow{width:38px; height:38px; border-radius:50%; border:1.5px solid var(--line); background:var(--white); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:16px; transition:.2s; color:var(--ink);}
  .tarrow:hover{border-color:var(--blue); color:var(--blue);}

  /* ===================== DETAIL CARDS (fonctionnalités) ===================== */
  .detail-card{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:30px; display:flex; gap:20px;
  }
  .detail-card .icon{
    width:52px; height:52px; border-radius:14px; background:var(--blue-soft); display:flex; align-items:center; justify-content:center;
    font-size:23px; flex-shrink:0;
  }
  .detail-card h3{font-size:18.5px; margin-bottom:8px;}
  .detail-card p.desc{font-size:14.5px; margin-bottom:13px;}
  .detail-card ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px;}
  .detail-card li{font-size:13.5px; color:var(--slate); display:flex; gap:8px; align-items:flex-start;}
  .detail-card li::before{content:"—"; color:var(--blue-deep); flex-shrink:0;}
  @media(max-width:560px){.detail-card{flex-direction:column;}}
  .cat-tab-label{
    display:inline-flex; align-items:center; gap:8px; padding:9px 18px; border-radius:999px; background:var(--blue-soft);
    color:var(--blue-deep); font-family:'JetBrains Mono',monospace; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; margin-bottom:20px;
  }
  .cat-tab-label.amber{background:#FFF1E4; color:var(--amber-deep);}

  /* ===================== EDITOR TYPE CARDS ===================== */
  .editor-card{background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:30px; display:flex; flex-direction:column; gap:12px; transition:transform .25s ease, box-shadow .25s ease;}
  .editor-card:hover{transform:translateY(-5px); box-shadow:0 20px 40px rgba(10,27,51,.08);}
  .editor-card .icon{width:52px; height:52px; border-radius:13px; background:var(--blue-soft); display:flex; align-items:center; justify-content:center; font-size:24px;}
  .editor-card h3{font-size:18.5px;}
  .editor-card p{font-size:14px;}
  .editor-card .tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:2px;}
  .editor-card .tags span{font-family:'JetBrains Mono',monospace; font-size:10.5px; padding:5px 10px; border-radius:999px; background:var(--paper); border:1px solid var(--line); color:var(--slate);}

  /* ===================== PRICING COMPARISON TABLE ===================== */
  .price-compare{margin-top:64px; overflow-x:auto; background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:8px 24px;}
  table.compare{width:100%; border-collapse:collapse; min-width:640px;}
  table.compare th, table.compare td{padding:15px 14px; text-align:left; border-bottom:1px solid var(--line); font-size:13.5px;}
  table.compare tr:last-child td{border-bottom:none;}
  table.compare th{font-family:'JetBrains Mono',monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--slate-2); font-weight:700;}
  table.compare th.center, table.compare td.center{text-align:center;}
  table.compare .yes{color:var(--blue-deep); font-weight:700; font-size:15px;}
  table.compare .no{color:var(--slate-2); font-size:15px;}

  /* ===================== FAQ CATEGORY ===================== */
  .faq-cat{font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--blue-deep); margin:38px 0 14px;}
  .faq-cat:first-child{margin-top:0;}

  /* ===================== MINI TEASER CARDS (home) ===================== */
  .teaser-card{
    background:var(--white); border:1px solid var(--line); border-radius:var(--radius); padding:32px;
    display:flex; flex-direction:column; gap:12px; transition:transform .25s ease, box-shadow .25s ease;
  }
  .teaser-card:hover{transform:translateY(-5px); box-shadow:0 20px 40px rgba(10,27,51,.08);}
  .teaser-card .arrow-link{font-family:'JetBrains Mono',monospace; font-size:12.5px; font-weight:700; color:var(--blue-deep); margin-top:6px;}
  .nav-links a.active-link, .mobile-menu a.active-link{color:var(--ink); border-color:var(--amber);}

  /* ===================== HERO BANNER CAROUSEL (3 bannières défilantes) ===================== */
  .banner-carousel{
    background:var(--ink); position:relative; overflow:hidden; padding:54px 0 66px;
    border-top:1px solid var(--line-dark);
  }
  .banner-carousel::before{
    content:""; position:absolute; inset:0;
    background:radial-gradient(600px 380px at 12% 100%, rgba(47,111,237,.22), transparent 60%),
               radial-gradient(500px 320px at 95% 0%, rgba(255,138,52,.14), transparent 60%);
    pointer-events:none;
  }
  .banner-carousel .wrap{position:relative;}
  .banner-progress{display:flex; gap:8px; margin-bottom:38px; max-width:640px;}
  .banner-progress .bar{flex:1; height:3px; background:rgba(255,255,255,.14); border-radius:3px; overflow:hidden; cursor:pointer;}
  .banner-progress .bar .fill{height:100%; width:0%; background:var(--amber); border-radius:3px;}
  .banner-progress .bar.active .fill{animation:fillBar 6s linear forwards;}
  .banner-progress .bar.done .fill{width:100%; background:var(--blue);}
  @keyframes fillBar{from{width:0%;} to{width:100%;}}

  .banner-track{position:relative; min-height:230px;}
  .banner-slide{
    position:absolute; inset:0; opacity:0; transform:translateX(20px); transition:opacity .5s ease, transform .5s ease;
    pointer-events:none; display:grid; grid-template-columns:1fr auto; align-items:center; gap:40px;
  }
  .banner-slide.active{opacity:1; transform:translateX(0); pointer-events:auto; position:relative;}
  .banner-slide .b-eyebrow{display:flex; align-items:center; gap:10px;}
  .banner-slide .b-eyebrow .em{font-size:20px;}
  .banner-slide h2{color:#fff; font-size:clamp(25px,3.3vw,40px); line-height:1.16; margin-top:14px; max-width:600px;}
  .banner-slide h2 em{font-style:italic; color:var(--amber);}
  .banner-slide p{color:#AAB9D1; font-size:15.5px; margin-top:14px; max-width:520px;}
  .banner-slide .btn{margin-top:24px;}
  .banner-deco{font-size:150px; opacity:.07; line-height:1; user-select:none; color:#fff;}
  @media(max-width:820px){
    .banner-slide{grid-template-columns:1fr;}
    .banner-deco{display:none;}
  }

  .banner-nav{display:flex; align-items:center; gap:14px; margin-top:32px;}
  .banner-nav .tarrow{background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.18); color:#fff;}
  .banner-nav .tarrow:hover{border-color:var(--amber); color:var(--amber);}
  .banner-nav .b-count{font-family:'JetBrains Mono',monospace; font-size:12px; color:#7A93BE;}

  /* ===================== LOGO (image) ===================== */
  .logo{display:flex; align-items:center;}
  .logo-img{height:29px; width:auto; display:block;}
  .foot-logo-card{
    display:inline-flex; align-items:center; background:var(--white); border-radius:12px;
    padding:11px 16px; margin-bottom:16px; box-shadow:0 10px 24px rgba(0,0,0,.18);
  }
  .foot-logo-img{height:32px; width:auto; display:block;}

  /* ===================== WHATSAPP CHAT WIDGET (bas droite) ===================== */
  .wa-widget{position:fixed; bottom:26px; right:26px; z-index:200; display:flex; flex-direction:column; align-items:flex-end; gap:14px;}

  .wa-launcher{
    width:58px; height:58px; border-radius:50%; background:#25D366; border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center; font-size:27px;
    box-shadow:0 12px 26px rgba(37,211,102,.45); animation:waPulse 2.4s ease-in-out infinite;
    transition:transform .2s ease;
  }
  .wa-launcher:hover{transform:scale(1.06);}
  .wa-widget.open .wa-launcher{animation:none;}
  .wa-launcher .wa-open-ic, .wa-launcher .wa-close-ic{display:none;}
  .wa-launcher .wa-open-ic{display:block;}
  .wa-widget.open .wa-launcher .wa-open-ic{display:none;}
  .wa-widget.open .wa-launcher .wa-close-ic{display:block; color:#fff; font-size:24px;}

  .wa-panel{
    width:320px; max-width:calc(100vw - 48px); background:var(--white); border-radius:18px; overflow:hidden;
    box-shadow:0 24px 60px rgba(10,27,51,.28); transform:translateY(16px) scale(.96); opacity:0; pointer-events:none;
    transition:opacity .22s ease, transform .22s ease;
  }
  .wa-widget.open .wa-panel{opacity:1; transform:translateY(0) scale(1); pointer-events:auto;}

  .wa-panel-header{background:#1FAA53; padding:16px 18px; display:flex; align-items:center; gap:12px;}
  .wa-avatar{
    width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.22);
    display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0;
  }
  .wa-panel-title{flex:1;}
  .wa-panel-title h4{color:#fff; font-size:14.5px; font-family:'Manrope',sans-serif; font-weight:700;}
  .wa-panel-title span{display:flex; align-items:center; gap:5px; color:#DFF6E8; font-size:11.5px; margin-top:2px;}
  .wa-panel-title span::before{content:""; width:6px; height:6px; border-radius:50%; background:#B9F5CC; display:inline-block;}
  .wa-close{background:none; border:none; color:#fff; font-size:16px; cursor:pointer; opacity:.85; padding:4px;}
  .wa-close:hover{opacity:1;}

  .wa-panel-body{background:#E9F2EC; padding:18px; min-height:90px; display:flex; flex-direction:column; justify-content:flex-end;}
  .wa-bubble{
    background:var(--white); border-radius:4px 14px 14px 14px; padding:12px 14px; font-size:13.5px;
    color:var(--ink-2); line-height:1.5; box-shadow:0 2px 6px rgba(0,0,0,.06); max-width:90%;
  }
  .wa-time{font-size:10.5px; color:#7C9A85; margin-top:8px; margin-left:2px;}

  .wa-panel-footer{padding:14px 16px 18px; background:var(--white);}
  .wa-cta{
    display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
    background:#25D366; color:#fff; text-decoration:none; font-weight:700; font-size:13.5px;
    padding:12px; border-radius:10px; transition:background .2s ease;
  }
  .wa-cta:hover{background:#1FAA53;}
  .wa-note{display:block; text-align:center; font-size:10.5px; color:var(--slate-2); margin-top:9px;}

  @media(max-width:480px){
    .wa-widget{bottom:18px; right:18px;}
    .wa-panel{width:calc(100vw - 36px);}
  }


  /* ===================== PHOTO SLOTS (vraies photos importables) ===================== */
  .photo-banner{
    width:100%; aspect-ratio:21/9; object-fit:cover; border-radius:var(--radius);
    background:var(--blue-soft); display:block; margin:36px 0;
  }
  .photo-banner.photo-slot-empty{ object-fit:contain; padding:60px; box-sizing:border-box; }
  @media(max-width:640px){ .photo-banner{aspect-ratio:4/3;} }

  .photo-card{
    width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius-sm);
    background:var(--blue-soft); display:block;
  }
  .photo-card.photo-slot-empty{ object-fit:contain; padding:40px; box-sizing:border-box; }

  .avatar-photo{
    width:46px; height:46px; border-radius:50%; object-fit:cover; background:var(--blue-soft); display:block;
  }
  .avatar-photo.photo-slot-empty{ object-fit:contain; padding:10px; box-sizing:border-box; }
