  :root{
    --blue:#2B5FE3; --blue-dark:#1E47B5; --navy:#0F1B3D; --brume:#F4F7FE; --coral:#FF7A59;
    --white:#FFFFFF; --ink:#0F1B3D; --ink-60:#4A5578; --ink-40:#8A93B0; --line:#E4E9F6; --line-navy:rgba(255,255,255,.12);
    --ok:#16A34A; --warn:#D97706; --alert:#E11D48;
    --shadow-sm:0 1px 2px rgba(15,27,61,.06), 0 1px 3px rgba(15,27,61,.04);
    --shadow-md:0 8px 24px rgba(15,27,61,.08), 0 2px 6px rgba(15,27,61,.05);
    --shadow-lg:0 24px 60px rgba(15,27,61,.14), 0 6px 16px rgba(15,27,61,.08);
    --r-sm:10px; --r-md:16px; --r-lg:22px; --maxw:1200px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{margin:0;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;line-height:1.55;}
  h1,h2,h3{font-family:"Space Grotesk",sans-serif;letter-spacing:-.02em;line-height:1.08;margin:0;}
  p{margin:0;}
  a{color:inherit;text-decoration:none;}
  .num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;}
  img,svg{display:block;max-width:100%;}
  :focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px;}
  ::selection{background:rgba(43,95,227,.18);}

  .wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
  .section{padding:96px 0;}
  .section--dark{background:var(--navy);color:var(--white);}
  .section--brume{background:var(--brume);}

  .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);}
  .section--dark .eyebrow{color:#8FB0FF;}
  .kicker-line{display:flex;align-items:center;gap:10px;margin-bottom:18px;}
  .kicker-line .tick{height:1px;width:34px;background:var(--line);}
  .section--dark .kicker-line .tick{background:var(--line-navy);}
  .h-sec{font-size:clamp(28px,4vw,44px);max-width:18ch;}
  .lead{font-size:clamp(16px,1.6vw,18.5px);color:var(--ink-60);max-width:54ch;margin-top:16px;}
  .section--dark .lead{color:rgba(255,255,255,.72);}

  .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:"Inter",sans-serif;font-weight:600;font-size:15px;padding:13px 22px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s;white-space:nowrap;}
  .btn--primary{background:var(--blue);color:#fff;box-shadow:0 6px 18px rgba(43,95,227,.28);}
  .btn--primary:hover{background:var(--blue-dark);transform:translateY(-1px);box-shadow:0 10px 24px rgba(43,95,227,.34);}
  .btn--ghost{background:transparent;color:var(--ink);border-color:var(--line);}
  .btn--ghost:hover{border-color:var(--blue);color:var(--blue);}
  .section--dark .btn--ghost{color:#fff;border-color:rgba(255,255,255,.28);}
  .section--dark .btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.06);}
  .btn--sm{padding:10px 16px;font-size:14px;}

  /* nav */
  .nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.82);backdrop-filter:saturate(160%) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s, box-shadow .2s;}
  .nav.scrolled{border-color:var(--line);box-shadow:var(--shadow-sm);}
  .nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px;}
  .nav-links{display:flex;align-items:center;gap:28px;}
  .nav-links a{font-size:14.5px;font-weight:500;color:var(--ink-60);transition:color .15s;}
  .nav-links a:hover{color:var(--ink);}
  .nav-cta{display:flex;align-items:center;gap:12px;}

  /* logo */
  .logo{display:inline-flex;align-items:flex-end;font-family:"Space Grotesk",sans-serif;font-weight:700;font-size:23px;letter-spacing:-.02em;color:var(--navy);}
  .logo img{height:32px;width:auto;display:block;}
  @media(max-width:600px){ .logo img{height:26px;} }
  .section--dark .logo,.footer .logo{color:#fff;}
  .logo .word{display:inline-flex;position:relative;line-height:1;}
  .logo .dotless{position:relative;}
  .logo .pin-i{position:absolute;left:50%;transform:translateX(-50%);top:-9px;width:9px;height:12px;}
  .pin{width:100%;height:100%;}

  /* hero */
  .hero{position:relative;overflow:hidden;background:radial-gradient(1200px 500px at 82% -8%, rgba(43,95,227,.10), transparent 60%),linear-gradient(180deg,#fff 0%, var(--brume) 100%);}
  .hero-grid{display:grid;grid-template-columns:1.04fr .96fr;gap:56px;align-items:center;padding:72px 0 92px;}
  .hero h1{font-size:clamp(36px,5.4vw,60px);}
  .hero h1 .accent{color:var(--blue);}
  .hero .lead{margin-top:22px;font-size:clamp(16.5px,1.7vw,19px);}
  .hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
  .hero-trust{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:13.5px;color:var(--ink-60);}
  .hero-trust .dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(22,163,74,.14);}

  /* ===== capture générique (app frames) ===== */
  .cap{background:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);border:1px solid var(--line);overflow:hidden;position:relative;}
  .cap-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);}
  .cap-title{display:flex;align-items:center;gap:9px;font-family:"Space Grotesk";font-weight:600;font-size:14.5px;}
  .cap-note{font-size:11.5px;color:var(--ink-40);text-align:center;margin-top:12px;}

  /* presence board (capture 1) */
  .live{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink-60);}
  .live .pulse{width:8px;height:8px;border-radius:50%;background:var(--ok);position:relative;}
  .live .pulse::after{content:"";position:absolute;inset:-4px;border-radius:50%;background:rgba(22,163,74,.25);animation:pulse 1.9s ease-out infinite;}
  @keyframes pulse{0%{transform:scale(.6);opacity:.8}100%{transform:scale(2.1);opacity:0}}
  .board-clock{font-weight:600;color:var(--ink);}
  .board-body{padding:6px 0;}
  .prow{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:11px 18px;opacity:0;transform:translateY(8px);transition:opacity .5s, transform .5s, background .3s;}
  .prow.in{opacity:1;transform:none;}
  .prow:hover{background:var(--brume);}
  .avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;font-family:"Space Grotesk";}
  .p-name{font-size:14px;font-weight:600;line-height:1.2;}
  .p-role{font-size:12px;color:var(--ink-40);display:flex;align-items:center;gap:6px;}
  .via{font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:5px;background:var(--brume);color:var(--ink-60);border:1px solid var(--line);}
  .p-status{display:flex;align-items:center;gap:9px;justify-self:end;}
  .p-time{font-size:14.5px;font-weight:600;color:var(--ink);min-width:50px;text-align:right;}
  .chip{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap;}
  .chip--ok{background:rgba(22,163,74,.12);color:#127a37;}
  .chip--late{background:rgba(255,122,89,.16);color:#c1441f;}
  .chip--off{background:var(--brume);color:var(--ink-40);border:1px solid var(--line);}
  .prow.flip .p-time,.prow.flip .chip{animation:flipin .45s ease;}
  @keyframes flipin{0%{opacity:0;transform:translateY(-4px)}100%{opacity:1;transform:none}}
  .board-foot{display:flex;align-items:center;justify-content:space-between;padding:13px 18px;border-top:1px solid var(--line);background:var(--brume);}
  .foot-stats{display:flex;gap:14px;font-size:12px;color:var(--ink-60);font-weight:500;flex-wrap:wrap;}
  .foot-stats b{color:var(--ink);font-weight:700;}
  .foot-stats .s-late b{color:var(--coral);}
  .bell{position:relative;width:32px;height:32px;border-radius:50%;background:#fff;border:1px solid var(--line);display:grid;place-items:center;}
  .bell .nd{position:absolute;top:5px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--coral);border:2px solid #fff;transform:scale(0);transition:transform .3s;}
  .bell.on .nd{transform:scale(1);}

  /* sectors strip removed — full section below */

  /* irritants */
  .irritants-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:38px;}
  .irr{display:flex;align-items:flex-start;gap:14px;padding:20px 22px;border-radius:var(--r-md);background:rgba(255,255,255,.04);border:1px solid var(--line-navy);}
  .irr .x{flex:0 0 auto;width:26px;height:26px;border-radius:7px;background:rgba(255,122,89,.16);display:grid;place-items:center;margin-top:1px;}
  .irr p{font-size:15.5px;color:rgba(255,255,255,.86);}
  .irr .strike{text-decoration:line-through;text-decoration-color:rgba(255,122,89,.7);text-decoration-thickness:2px;color:rgba(255,255,255,.5);}
  .irr-close{margin-top:34px;font-family:"Space Grotesk";font-size:clamp(19px,2.4vw,26px);font-weight:600;max-width:26ch;}
  .irr-close .hi{color:#8FB0FF;}

  /* ===== SECTEURS ===== */
  .sectabs{display:flex;gap:8px;margin-top:36px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
  .sectab{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;color:var(--ink-60);font-family:"Inter";font-weight:600;font-size:14px;padding:11px 16px;border-radius:999px;cursor:pointer;transition:all .16s;}
  .sectab .ic{width:18px;height:18px;color:var(--ink-40);transition:color .16s;}
  .sectab:hover{border-color:#cfd9f4;color:var(--ink);}
  .sectab[aria-selected="true"]{background:var(--blue);color:#fff;border-color:var(--blue);box-shadow:0 6px 16px rgba(43,95,227,.26);}
  .sectab[aria-selected="true"] .ic{color:#fff;}
  .secpanel{display:none;margin-top:30px;}
  .secpanel.active{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center;animation:fade .35s ease;}
  @keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .sec-lead{font-family:"Space Grotesk";font-size:22px;font-weight:600;margin-bottom:16px;}
  .sec-block{margin-bottom:18px;}
  .sec-block h4{font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-40);margin-bottom:10px;}
  .sec-li{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;margin-bottom:8px;color:var(--ink-60);}
  .sec-li .b{flex:0 0 auto;width:20px;height:20px;border-radius:6px;display:grid;place-items:center;margin-top:1px;}
  .sec-li.pain .b{background:rgba(255,122,89,.15);}
  .sec-li.fix .b{background:rgba(43,95,227,.12);}
  .sec-li.fix{color:var(--ink);}
  .sec-quote{margin-top:6px;padding:16px 18px;background:var(--brume);border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:0 var(--r-md) var(--r-md) 0;}
  .sec-quote p{font-size:14px;color:var(--ink);font-style:italic;}
  .sec-quote .who{display:flex;align-items:center;gap:10px;margin-top:12px;}
  .sec-quote .tav{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:700;font-size:12px;font-family:"Space Grotesk";}
  .sec-quote .wn{font-size:13px;font-weight:600;font-style:normal;}
  .sec-quote .wr{font-size:12px;color:var(--ink-40);font-style:normal;}

  /* mini captures inside sectors / modules */
  .planning{width:100%;overflow-x:auto;}
  .pgrid{min-width:420px;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
  .pgrid .prow-h,.pgrid .prow-b{display:grid;grid-template-columns:118px repeat(6,1fr);}
  .pgrid .prow-h{background:var(--brume);border-bottom:1px solid var(--line);}
  .pgrid .prow-h span{padding:9px 4px;font-size:10.5px;font-weight:700;text-align:center;color:var(--ink-40);text-transform:uppercase;letter-spacing:.03em;}
  .pgrid .prow-h span:first-child{text-align:left;padding-left:12px;}
  .pgrid .prow-b{border-bottom:1px solid var(--line);}
  .pgrid .prow-b:last-child{border-bottom:0;}
  .pgrid .emp{padding:8px 10px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:7px;border-right:1px solid var(--line);}
  .pgrid .emp .av{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:700;color:#fff;font-family:"Space Grotesk";}
  .pgrid .cell{margin:3px;border-radius:6px;font-size:10px;font-weight:600;display:grid;place-items:center;min-height:30px;color:#fff;}
  .b1{background:#2B5FE3;} .b2{background:#4C79EA;} .b3{background:#6D91F0;} .b4{background:#8FA9F5;} .b5{background:#B0C2FA;color:#274a99;}
  .cell.empty{background:transparent;}
  .cell.todo{background:rgba(255,122,89,.14);color:#c1441f;border:1px dashed var(--coral);margin:3px;}

  /* phone frame */
  .phone{width:230px;margin:0 auto;background:#0F1B3D;border-radius:34px;padding:11px;box-shadow:var(--shadow-lg);}
  .phone-screen{background:var(--brume);border-radius:24px;overflow:hidden;position:relative;}
  .phone-notch{height:22px;display:flex;align-items:center;justify-content:center;}
  .phone-notch::after{content:"";width:60px;height:5px;border-radius:3px;background:rgba(15,27,61,.25);}
  .phone-body{padding:16px 16px 22px;}
  .ph-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
  .ph-hi{font-size:13px;font-weight:600;}
  .ph-date{font-size:11px;color:var(--ink-40);}
  .ph-clock{text-align:center;font-family:"Space Grotesk";font-size:40px;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1;}
  .ph-sub{text-align:center;font-size:12px;color:var(--ink-40);margin-top:4px;margin-bottom:20px;}
  .ph-btn{background:var(--blue);color:#fff;text-align:center;padding:15px;border-radius:16px;font-weight:700;font-size:15px;box-shadow:0 8px 18px rgba(43,95,227,.34);display:flex;align-items:center;justify-content:center;gap:8px;}
  .ph-status{margin-top:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 13px;display:flex;align-items:center;gap:9px;font-size:12.5px;}
  .ph-status .ok{color:var(--ok);font-weight:700;}

  /* congé validation */
  .cardpad{padding:18px;}
  .cg-req{background:var(--brume);border:1px solid var(--line);border-radius:12px;padding:14px;}
  .cg-h{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
  .cg-h .av{width:32px;height:32px;border-radius:50%;background:#2B5FE3;color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;font-family:"Space Grotesk";}
  .cg-name{font-size:13.5px;font-weight:600;}
  .cg-type{font-size:12px;color:var(--ink-40);}
  .cg-dates{font-size:14px;font-weight:600;margin:8px 0;}
  .cg-actions{display:flex;gap:8px;margin-top:10px;}
  .cg-btn{flex:1;text-align:center;padding:9px;border-radius:9px;font-size:12.5px;font-weight:600;}
  .cg-btn.ref{background:#fff;border:1px solid var(--line);color:var(--ink-60);}
  .cg-btn.acc{background:var(--ok);color:#fff;}
  .cg-done{margin-top:14px;display:flex;align-items:center;justify-content:space-between;padding:11px 13px;border-radius:10px;background:rgba(22,163,74,.08);border:1px solid rgba(22,163,74,.2);}
  .cg-pill{font-size:11.5px;font-weight:700;color:#127a37;background:rgba(22,163,74,.14);padding:3px 10px;border-radius:999px;}
  .cg-solde{font-size:12px;color:var(--ink-60);}
  .cg-solde b{color:var(--ink);}

  /* paie steps */
  .steps{display:flex;align-items:center;padding:6px 4px;}
  .step{flex:1;text-align:center;position:relative;}
  .step .dot{width:30px;height:30px;border-radius:50%;margin:0 auto 7px;display:grid;place-items:center;font-size:12px;font-weight:700;border:2px solid var(--line);background:#fff;color:var(--ink-40);}
  .step.done .dot{background:var(--ok);border-color:var(--ok);color:#fff;}
  .step.now .dot{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 5px rgba(43,95,227,.14);}
  .step .lbl{font-size:11px;font-weight:600;color:var(--ink-60);}
  .step.now .lbl{color:var(--blue);}
  .step .bar{position:absolute;top:15px;left:-50%;width:100%;height:2px;background:var(--line);z-index:-1;}
  .step.done .bar,.step.now .bar{background:var(--ok);}
  .step:first-child .bar{display:none;}
  .paie-alert{margin:16px 18px 0;display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:10px;background:rgba(255,122,89,.1);border:1px solid rgba(255,122,89,.28);}
  .paie-alert .ai{flex:0 0 auto;width:26px;height:26px;border-radius:7px;background:rgba(255,122,89,.2);display:grid;place-items:center;}
  .paie-alert p{font-size:12.5px;color:var(--ink);}
  .paie-alert b{color:#c1441f;}

  /* exceptions */
  .exc{padding:6px 0;}
  .exc-item{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);}
  .exc-item:last-child{border-bottom:0;}
  .exc-ic{flex:0 0 auto;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;}
  .exc-ic.late{background:rgba(255,122,89,.15);} .exc-ic.abs{background:rgba(225,29,72,.12);} .exc-ic.zone{background:rgba(217,119,6,.14);}
  .exc-main{flex:1;min-width:0;}
  .exc-t{font-size:13.5px;font-weight:600;}
  .exc-s{font-size:12px;color:var(--ink-40);}
  .exc-act{font-size:11.5px;font-weight:600;color:var(--blue);border:1px solid var(--line);padding:5px 11px;border-radius:8px;white-space:nowrap;}

  /* fiche employé */
  .fiche-ban{display:flex;align-items:center;gap:14px;padding:18px;background:linear-gradient(120deg,#eaf0ff,#f4f7fe);border-bottom:1px solid var(--line);}
  .fiche-av{width:52px;height:52px;border-radius:50%;background:#2B5FE3;color:#fff;display:grid;place-items:center;font-size:18px;font-weight:700;font-family:"Space Grotesk";}
  .fiche-n{font-family:"Space Grotesk";font-size:17px;font-weight:600;}
  .fiche-r{font-size:12.5px;color:var(--ink-60);}
  .fiche-mat{font-size:11px;color:var(--ink-40);margin-top:2px;}
  .fiche-tabs{display:flex;gap:4px;padding:10px 14px;border-bottom:1px solid var(--line);overflow-x:auto;}
  .fiche-tab{font-size:12px;font-weight:600;padding:6px 11px;border-radius:8px;color:var(--ink-40);white-space:nowrap;}
  .fiche-tab.on{background:var(--brume);color:var(--blue);}
  .fiche-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:16px 18px;}
  .kpi{background:var(--brume);border:1px solid var(--line);border-radius:10px;padding:12px;}
  .kpi .v{font-family:"Space Grotesk";font-size:20px;font-weight:700;color:var(--ink);}
  .kpi .k{font-size:10.5px;color:var(--ink-40);margin-top:2px;}

  /* notif dropdown */
  .notifdrop{padding:6px 0;}
  .nd-h{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid var(--line);}
  .nd-h .t{font-family:"Space Grotesk";font-weight:600;font-size:14px;}
  .nd-h .c{font-size:11px;font-weight:700;color:#fff;background:var(--coral);padding:1px 8px;border-radius:999px;}
  .nd-item{display:flex;gap:11px;padding:12px 18px;border-bottom:1px solid var(--line);}
  .nd-item:last-child{border-bottom:0;}
  .nd-dot{flex:0 0 auto;width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--coral);}
  .nd-dot.read{background:var(--line);}
  .nd-txt{font-size:13px;color:var(--ink);}
  .nd-txt b{font-weight:600;}
  .nd-time{font-size:11px;color:var(--ink-40);margin-top:2px;}

  /* ===== module feature rows ===== */
  .frow{display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:center;margin-top:64px;}
  .frow:first-of-type{margin-top:44px;}
  .frow--rev .frow-cap{order:-1;}
  .frow .tag{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);}
  .frow h3{font-size:clamp(22px,2.6vw,28px);margin:12px 0 12px;max-width:16ch;}
  .frow .fdesc{font-size:15.5px;color:var(--ink-60);max-width:46ch;}
  .frow .plan-inline{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:12px;font-weight:700;padding:4px 11px;border-radius:999px;}
  .plan-inline.pro{background:rgba(43,95,227,.12);color:var(--blue-dark);}
  .plan-inline.biz{background:var(--navy);color:#fff;}

  .mini-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:44px;}
  .mcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:24px;display:flex;gap:16px;align-items:flex-start;}
  .mcard .ico{flex:0 0 auto;width:42px;height:42px;border-radius:12px;background:rgba(43,95,227,.1);display:grid;place-items:center;}
  .mcard h4{font-family:"Space Grotesk";font-size:17px;font-weight:600;display:flex;align-items:center;gap:8px;}
  .mcard p{font-size:13.8px;color:var(--ink-60);margin-top:6px;}
  .mtag{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:999px;}
  .mtag.pro{background:rgba(43,95,227,.12);color:var(--blue-dark);}
  .mtag.biz{background:var(--navy);color:#fff;}

  /* personas */
  .cards-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px;}
  .pcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:26px;box-shadow:var(--shadow-sm);transition:transform .18s, box-shadow .18s;}
  .pcard:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
  .pcard .ptag{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--blue);}
  .pcard h3{font-size:21px;margin:12px 0 8px;}
  .pcard .desc{font-size:14.5px;color:var(--ink-60);}
  .plist{margin-top:16px;display:grid;gap:9px;}
  .plist .pl{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:var(--ink-60);}

  /* security */
  .sec-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
  .sec-list{display:grid;gap:14px;margin-top:34px;}
  .sec-item{display:flex;gap:14px;align-items:flex-start;}
  .sec-item .ck{flex:0 0 auto;width:30px;height:30px;border-radius:9px;background:rgba(43,95,227,.16);display:grid;place-items:center;margin-top:2px;}
  .sec-item h4{font-family:"Space Grotesk";font-size:16px;font-weight:600;margin-bottom:3px;}
  .sec-item p{font-size:14px;color:rgba(255,255,255,.7);}
  .shield{background:#fff;border-radius:var(--r-lg);padding:30px;box-shadow:var(--shadow-lg);}
  .shield .map{position:relative;height:190px;border-radius:var(--r-md);background:linear-gradient(160deg,#eaf0ff,#dbe6ff);overflow:hidden;border:1px solid var(--line);}
  .shield .node{position:absolute;display:flex;flex-direction:column;align-items:center;gap:5px;}
  .shield .node .box{padding:6px 11px;background:#fff;border:1px solid var(--line);border-radius:8px;font-size:11.5px;font-weight:600;box-shadow:var(--shadow-sm);}
  .shield .node small{font-size:10px;color:var(--ink-40);}
  .shield .caption{margin-top:18px;font-size:13px;color:var(--ink-60);}
  .shield .caption b{color:var(--ink);}

  /* pricing */
  .price-controls{display:flex;flex-wrap:wrap;gap:22px;align-items:center;justify-content:space-between;margin-top:38px;}
  .tranches{display:inline-flex;flex-wrap:wrap;gap:6px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:5px;}
  .tranche-btn{border:0;background:transparent;font-family:"Inter";font-weight:600;font-size:13.5px;color:var(--ink-60);padding:9px 14px;border-radius:10px;cursor:pointer;transition:all .15s;}
  .tranche-btn .num{display:block;}
  .tranche-btn small{font-size:10px;font-weight:600;color:var(--ink-40);letter-spacing:.03em;}
  .tranche-btn.active{background:var(--blue);color:#fff;box-shadow:0 4px 12px rgba(43,95,227,.28);}
  .tranche-btn.active small{color:rgba(255,255,255,.8);}
  .period{display:inline-flex;align-items:center;gap:12px;font-size:14px;font-weight:600;color:var(--ink-60);}
  .toggle{width:52px;height:30px;border-radius:999px;background:var(--line);border:0;cursor:pointer;position:relative;transition:background .2s;padding:0;}
  .toggle.on{background:var(--blue);}
  .toggle .knob{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(15,27,61,.25);transition:transform .2s;}
  .toggle.on .knob{transform:translateX(22px);}
  .period .save{font-size:11.5px;font-weight:700;color:var(--ok);background:rgba(22,163,74,.12);padding:3px 9px;border-radius:999px;}
  .period .active-lbl{color:var(--ink);}
  .plans{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px;}
  .plan{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;display:flex;flex-direction:column;position:relative;transition:transform .18s, box-shadow .18s;}
  .plan:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
  .plan.pop{border-color:var(--blue);box-shadow:var(--shadow-md);}
  .plan .pop-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--blue);color:#fff;font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:5px 14px;border-radius:999px;box-shadow:0 6px 14px rgba(43,95,227,.3);}
  .plan .pname{font-family:"Space Grotesk";font-size:20px;font-weight:600;}
  .plan .ptagline{font-size:13px;color:var(--ink-60);margin-top:4px;min-height:34px;}
  .plan .pprice{margin:18px 0 4px;display:flex;align-items:baseline;gap:6px;}
  .plan .pprice .amt{font-family:"Space Grotesk";font-size:40px;font-weight:700;color:var(--ink);letter-spacing:-.02em;}
  .plan .pprice .cur{font-size:15px;font-weight:600;color:var(--ink-60);}
  .plan .pper{font-size:12.5px;color:var(--ink-40);}
  .plan .pnote{font-size:12px;color:var(--ok);font-weight:600;min-height:18px;margin-top:6px;}
  .plan .btn{margin-top:20px;width:100%;}
  .plan .feats{margin-top:22px;display:grid;gap:10px;padding-top:20px;border-top:1px solid var(--line);}
  .feat{display:flex;gap:9px;align-items:flex-start;font-size:13.5px;color:var(--ink-60);}
  .feat svg{flex:0 0 auto;margin-top:2px;}
  .feat.head{font-weight:600;color:var(--ink);font-size:12px;text-transform:uppercase;letter-spacing:.04em;gap:0;}
  .trial-band{margin-top:30px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;text-align:center;background:var(--brume);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 22px;font-size:14.5px;font-weight:500;color:var(--ink-60);}
  .trial-band b{color:var(--ink);font-weight:700;}
  .trial-band .g{display:inline-flex;align-items:center;gap:7px;}

  /* faq */
  .faq{max-width:820px;margin:40px auto 0;}
  .qa{border-bottom:1px solid var(--line);}
  .qa button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 4px;background:none;border:0;cursor:pointer;text-align:left;font-family:"Space Grotesk";font-size:17px;font-weight:600;color:var(--ink);}
  .qa .plus{flex:0 0 auto;width:26px;height:26px;position:relative;transition:transform .25s;}
  .qa .plus::before,.qa .plus::after{content:"";position:absolute;background:var(--blue);border-radius:2px;top:50%;left:50%;transition:transform .25s;}
  .qa .plus::before{width:14px;height:2px;transform:translate(-50%,-50%);}
  .qa .plus::after{width:2px;height:14px;transform:translate(-50%,-50%);}
  .qa.open .plus::after{transform:translate(-50%,-50%) scaleY(0);}
  .qa .ans{overflow:hidden;max-height:0;transition:max-height .3s ease;}
  .qa .ans p{padding:0 4px 22px;font-size:15px;color:var(--ink-60);max-width:64ch;}

  /* final */
  .final{background:radial-gradient(900px 400px at 15% 0%, rgba(43,95,227,.35), transparent 60%),var(--navy);color:#fff;text-align:center;}
  .final h2{font-size:clamp(30px,4.4vw,48px);max-width:18ch;margin:0 auto;}
  .final .lead{margin:20px auto 0;}
  .final .fctas{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:34px;}
  .final .trial-band{background:rgba(255,255,255,.06);border-color:var(--line-navy);color:rgba(255,255,255,.78);margin-top:30px;}
  .final .trial-band b{color:#fff;}

  /* footer */
  .footer{background:#0A1330;color:rgba(255,255,255,.7);padding:60px 0 34px;}
  .foot-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;}
  .footer .tag{margin-top:14px;font-size:14px;max-width:30ch;}
  .fcol h5{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.5);margin:0 0 14px;}
  .fcol a{display:block;font-size:14px;padding:5px 0;color:rgba(255,255,255,.7);transition:color .15s;}
  .fcol a:hover{color:#fff;}
  .foot-bar{margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:12.5px;color:rgba(255,255,255,.45);}
  .foot-bar .eu{display:inline-flex;align-items:center;gap:7px;}

  /* modal */
  .modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px;background:rgba(15,27,61,.55);backdrop-filter:blur(4px);}
  .modal.show{display:flex;}
  .modal-card{background:#fff;border-radius:var(--r-lg);max-width:460px;width:100%;padding:30px;box-shadow:var(--shadow-lg);position:relative;max-height:92vh;overflow:auto;}
  .modal-card h3{font-size:23px;}
  .modal-card .msub{font-size:14px;color:var(--ink-60);margin-top:8px;}
  .modal-close{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;cursor:pointer;display:grid;place-items:center;font-size:18px;color:var(--ink-60);}
  .modal-close:hover{background:var(--brume);}
  .field{margin-top:16px;}
  .field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--ink);}
  .field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;font-family:"Inter";font-size:14.5px;color:var(--ink);background:#fff;transition:border-color .15s;}
  .field textarea{resize:vertical;min-height:70px;}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--blue);}
  .modal-err{display:none;margin-top:12px;padding:10px 12px;border-radius:10px;background:rgba(255,122,89,.12);color:#B23A1B;font-size:13.5px;}
  .field .err{font-size:12px;color:var(--alert);margin-top:5px;display:none;}
  .field.invalid input,.field.invalid select{border-color:var(--alert);}
  .field.invalid .err{display:block;}
  .modal .btn{width:100%;margin-top:22px;}
  .modal-ok{text-align:center;padding:14px 0;}
  .modal-ok .ok-ic{width:56px;height:56px;border-radius:50%;background:rgba(22,163,74,.12);display:grid;place-items:center;margin:0 auto 16px;}
  .modal-ok h3{font-size:22px;}
  .modal-ok p{font-size:14.5px;color:var(--ink-60);margin-top:10px;}

  .reveal{opacity:0;transform:translateY(20px);transition:opacity .6s, transform .6s;}
  .reveal.in{opacity:1;transform:none;}

  .burger{display:none;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;cursor:pointer;padding:0;place-items:center;}
  .burger span{display:block;width:18px;height:2px;background:var(--ink);border-radius:2px;position:relative;}
  .burger span::before,.burger span::after{content:"";position:absolute;left:0;width:18px;height:2px;background:var(--ink);border-radius:2px;}
  .burger span::before{top:-6px;} .burger span::after{top:6px;}

  @media(max-width:1024px){
    .hero-grid{grid-template-columns:1fr;gap:44px;}
    .hero-grid .cap{max-width:520px;}
    .sec-grid{grid-template-columns:1fr;gap:40px;}
    .cards-3{grid-template-columns:1fr;}
    .frow,.frow--rev{grid-template-columns:1fr;gap:30px;}
    .frow .frow-cap,.frow--rev .frow-cap{order:0;}
    .mini-cards{grid-template-columns:1fr 1fr;}
    .foot-top{grid-template-columns:1fr 1fr;}
  }
  @media(max-width:760px){
    .section{padding:68px 0;}
    .nav-links{display:none;}
    .nav-links.open{display:flex;position:absolute;top:68px;left:0;right:0;flex-direction:column;background:#fff;border-bottom:1px solid var(--line);padding:8px 24px 18px;box-shadow:var(--shadow-md);}
    .nav-links.open a{padding:13px 0;border-bottom:1px solid var(--line);width:100%;}
    .burger{display:grid;}
    .nav-cta .btn--ghost{display:none;}
    .irritants-grid{grid-template-columns:1fr;}
    .secpanel.active{grid-template-columns:1fr;gap:28px;}
    .plans{grid-template-columns:1fr;}
    .mini-cards{grid-template-columns:1fr;}
    .price-controls{flex-direction:column;align-items:stretch;}
    .plan.pop{order:-1;}
    .foot-top{grid-template-columns:1fr 1fr;gap:26px;}
    .hero h1{font-size:38px;}
  }
  @media(max-width:420px){
    .wrap{padding:0 18px;}
    .foot-top{grid-template-columns:1fr;}
    .tranche-btn{padding:8px 11px;}
    .fiche-kpis{grid-template-columns:1fr 1fr;}
  }
  @media (prefers-reduced-motion: reduce){
    *{animation:none !important;scroll-behavior:auto;}
    .reveal,.prow{opacity:1 !important;transform:none !important;transition:none !important;}
    .live .pulse::after{display:none;}
  }

/* ============================================================================
   HERO B — navy + carrousel d'écrans. 100% ISOLÉ : toutes les classes propres
   au hero sont préfixées hb- (aucune collision avec .cap/.prow/.chip/.steps/…
   des sections). Seuls .btn*, .wrap, .num (globaux) sont réutilisés.
   ============================================================================ */
  .hb-hero{position:relative;overflow:hidden;color:#fff;
    background:
      radial-gradient(900px 520px at 82% -6%, rgba(43,95,227,.55), transparent 58%),
      radial-gradient(760px 520px at 6% 112%, rgba(255,122,89,.28), transparent 58%),
      var(--navy);}
  .hb-hero::before{content:"";position:absolute;inset:0;pointer-events:none;
    background-image:linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
    background-size:52px 52px;-webkit-mask-image:radial-gradient(800px 520px at 70% 20%, #000, transparent 70%);mask-image:radial-gradient(800px 520px at 70% 20%, #000, transparent 70%);z-index:1;}
  .hb-halo{position:absolute;width:520px;height:520px;top:-140px;right:-60px;border-radius:50%;pointer-events:none;background:radial-gradient(circle, rgba(91,134,245,.45), transparent 62%);filter:blur(20px);z-index:0;animation:hb-breathe 7s ease-in-out infinite;}
  @keyframes hb-breathe{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.12);opacity:1}}
  .hb-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:52px;align-items:center;padding:82px 0 94px;position:relative;z-index:2;}
  .hb-grid > *{min-width:0;}
  .hb-hero h1{font-family:"Space Grotesk",sans-serif;letter-spacing:-.022em;line-height:1.04;font-size:clamp(42px,5.6vw,66px);color:#fff;margin:20px 0 0;}
  /* §site-2 — variante C. L'ancien dégradé (#8FB0FF -> #5B86F5 55% -> corail) faisait
     transiter du bleu vers le rouge : l'interpolation traversait un mauve, mesuré sur
     pixels réellement peints à #A281B2 (75%) et #CD7D87 (88%), 2 échantillons sur 9.
     Deux stops, blanc -> bleu : plus aucune transition rouge/bleu, donc aucun mauve
     possible par construction. Le point final sort du dégradé (.hb-pt, corail plein).
     FALLBACK : `color` OPAQUE déclaré d'abord ; la bascule en transparent est enfermée
     dans @supports background-clip:text. Si le clip n'est pas supporté, le texte reste
     blanc lisible au lieu de devenir invisible. */
  .hb-grad{color:#FFFFFF;}
  @supports ((-webkit-background-clip:text) or (background-clip:text)){
    .hb-grad{background:linear-gradient(120deg,#FFFFFF,#5B86F5);-webkit-background-clip:text;background-clip:text;color:transparent;}
  }
  .hb-pt{color:var(--coral);}
  .hb-lead{font-size:19px;max-width:50ch;margin-top:24px;color:rgba(255,255,255,.76);line-height:1.55;}
  .hb-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
  .hb-hero .btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.3);}
  .hb-hero .btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);}
  .hb-foot{margin-top:24px;}
  .hb-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:7px 14px;border-radius:999px;color:#bcd0ff;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);}
  .hb-eb-dot{width:7px;height:7px;border-radius:50%;background:var(--coral);}
  .hb-trust{display:inline-flex;align-items:center;gap:10px;font-size:13.5px;font-weight:500;color:rgba(255,255,255,.8);}
  .hb-trust .hb-dot{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(22,163,74,.18);}

  .hb-mock{position:relative;width:100%;max-width:560px;margin:0 auto;}
  .hb-cap{width:100%;background:#fff;border-radius:var(--r-lg);box-shadow:0 40px 90px rgba(0,0,0,.5), 0 10px 24px rgba(0,0,0,.35);border:1px solid rgba(228,233,246,.9);overflow:hidden;transform:rotate(-1.4deg);}
  .hb-cap-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--line);}
  .hb-cap-title{display:flex;align-items:center;gap:9px;font-family:"Space Grotesk";font-weight:600;font-size:14.5px;color:var(--ink);min-width:0;}
  .hb-ti{width:17px;height:17px;flex:0 0 auto;}
  .hb-live{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--ink-60);flex:0 0 auto;}
  .hb-pulse{width:8px;height:8px;border-radius:50%;background:var(--ok);position:relative;}
  .hb-pulse::after{content:"";position:absolute;inset:-4px;border-radius:50%;background:rgba(22,163,74,.28);animation:hb-pulse 1.9s ease-out infinite;}
  @keyframes hb-pulse{0%{transform:scale(.6);opacity:.8}100%{transform:scale(2.2);opacity:0}}

  .hb-view{position:relative;height:300px;overflow:hidden;}
  .hb-screen{position:absolute;inset:0;padding:8px 0;opacity:0;transform:translateY(6px);transition:opacity .55s ease, transform .55s ease;pointer-events:none;}
  .hb-screen.hb-on{opacity:1;transform:none;}

  .hb-dots{display:flex;align-items:center;justify-content:center;gap:7px;padding:12px 0 14px;border-top:1px solid var(--line);background:var(--brume);}
  .hb-dots span{width:7px;height:7px;border-radius:999px;background:#cdd6ee;transition:all .3s;}
  .hb-dots span.hb-on{width:22px;background:var(--blue);}

  .hb-prow{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:9px 18px;}
  .hb-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:11.5px;font-weight:700;color:#fff;font-family:"Space Grotesk";flex:0 0 auto;}
  .hb-p-name{font-size:13.5px;font-weight:600;line-height:1.2;color:var(--ink);}
  .hb-p-role{font-size:11.5px;color:var(--ink-40);}
  .hb-p-status{display:flex;align-items:center;gap:9px;justify-self:end;}
  .hb-p-time{font-size:13.5px;font-weight:600;color:var(--ink);min-width:46px;text-align:right;}
  .hb-chip{font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap;}
  .hb-chip--ok{background:rgba(22,163,74,.12);color:#127a37;}
  .hb-chip--late{background:rgba(255,122,89,.18);color:#c1441f;}
  .hb-chip--off{background:var(--brume);color:var(--ink-40);border:1px solid var(--line);}

  .hb-padx{padding:12px 18px;}
  .hb-pgrid{width:100%;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
  .hb-prow-h,.hb-prow-b{display:grid;grid-template-columns:84px repeat(6,1fr);}
  .hb-prow-h{background:var(--brume);border-bottom:1px solid var(--line);}
  .hb-prow-h span{padding:8px 2px;font-size:9.5px;font-weight:700;text-align:center;color:var(--ink-40);text-transform:uppercase;}
  .hb-prow-h span:first-child{text-align:left;padding-left:10px;}
  .hb-prow-b{border-bottom:1px solid var(--line);}
  .hb-prow-b:last-child{border-bottom:0;}
  .hb-emp{padding:7px 8px;font-size:11px;font-weight:600;display:flex;align-items:center;gap:6px;border-right:1px solid var(--line);min-width:0;}
  .hb-emp .hb-av{width:19px;height:19px;border-radius:50%;display:grid;place-items:center;font-size:8px;font-weight:700;color:#fff;font-family:"Space Grotesk";flex:0 0 auto;}
  .hb-cell{margin:3px;border-radius:6px;font-size:9px;font-weight:600;display:grid;place-items:center;min-height:26px;color:#fff;}
  .hb-b1{background:#2B5FE3;} .hb-b2{background:#4C79EA;} .hb-b5{background:#B0C2FA;color:#274a99;}
  .hb-cell.hb-empty{background:transparent;}
  .hb-cell.hb-todo{background:rgba(255,122,89,.14);color:#c1441f;border:1px dashed var(--coral);margin:3px;}

  .hb-cg{background:var(--brume);border:1px solid var(--line);border-radius:12px;padding:14px;}
  .hb-cg-h{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
  .hb-cg-h .hb-av{width:30px;height:30px;border-radius:50%;background:#2B5FE3;color:#fff;display:grid;place-items:center;font-size:11px;font-weight:700;font-family:"Space Grotesk";flex:0 0 auto;}
  .hb-cg-name{font-size:13px;font-weight:600;}
  .hb-cg-type{font-size:11.5px;color:var(--ink-40);}
  .hb-cg-dates{font-size:13.5px;font-weight:600;margin:8px 0;color:var(--ink);}
  .hb-cg-actions{display:flex;gap:8px;margin-top:8px;}
  .hb-cg-btn{flex:1;text-align:center;padding:9px;border-radius:9px;font-size:12px;font-weight:600;}
  .hb-cg-btn.hb-ref{background:#fff;border:1px solid var(--line);color:var(--ink-60);}
  .hb-cg-btn.hb-acc{background:var(--ok);color:#fff;}
  .hb-cg-done{margin-top:12px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 13px;border-radius:10px;background:rgba(22,163,74,.08);border:1px solid rgba(22,163,74,.2);}
  .hb-cg-pill{font-size:11px;font-weight:700;color:#127a37;background:rgba(22,163,74,.14);padding:3px 10px;border-radius:999px;white-space:nowrap;}
  .hb-cg-solde{font-size:11.5px;color:var(--ink-60);} .hb-cg-solde b{color:var(--ink);}

  .hb-steps{display:flex;align-items:flex-start;padding:14px 6px 4px;}
  .hb-step{flex:1;text-align:center;position:relative;}
  .hb-step .hb-d{width:28px;height:28px;border-radius:50%;margin:0 auto 7px;display:grid;place-items:center;font-size:11px;font-weight:700;border:2px solid var(--line);background:#fff;color:var(--ink-40);}
  .hb-step.hb-done .hb-d{background:var(--ok);border-color:var(--ok);color:#fff;}
  .hb-step.hb-now .hb-d{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 0 0 5px rgba(43,95,227,.14);}
  .hb-step .hb-l{font-size:10.5px;font-weight:600;color:var(--ink-60);}
  .hb-step.hb-now .hb-l{color:var(--blue);}
  .hb-step .hb-bar{position:absolute;top:14px;left:-50%;width:100%;height:2px;background:var(--line);z-index:-1;}
  .hb-step.hb-done .hb-bar,.hb-step.hb-now .hb-bar{background:var(--ok);}
  .hb-step:first-child .hb-bar{display:none;}
  .hb-paie-alert{margin:14px 18px 0;display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:10px;background:rgba(255,122,89,.1);border:1px solid rgba(255,122,89,.28);}
  .hb-paie-alert .hb-ai{flex:0 0 auto;width:24px;height:24px;border-radius:7px;background:rgba(255,122,89,.2);display:grid;place-items:center;}
  .hb-paie-alert p{font-size:12px;color:var(--ink);} .hb-paie-alert b{color:#c1441f;}

  .hb-exc-item{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px solid var(--line);}
  .hb-exc-item:last-child{border-bottom:0;}
  .hb-exc-ic{flex:0 0 auto;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;}
  .hb-exc-ic.hb-late{background:rgba(255,122,89,.15);} .hb-exc-ic.hb-abs{background:rgba(225,29,72,.12);} .hb-exc-ic.hb-zone{background:rgba(217,119,6,.14);}
  .hb-exc-main{flex:1;min-width:0;}
  .hb-exc-t{font-size:13px;font-weight:600;} .hb-exc-s{font-size:11.5px;color:var(--ink-40);}
  .hb-exc-act{font-size:11px;font-weight:600;color:var(--blue);border:1px solid var(--line);padding:5px 11px;border-radius:8px;white-space:nowrap;flex:0 0 auto;}

  .hb-float{position:absolute;background:#fff;border-radius:16px;box-shadow:0 30px 70px rgba(0,0,0,.4);border:1px solid rgba(228,233,246,.9);padding:12px 15px;display:flex;align-items:center;gap:11px;z-index:5;}
  .hb-float .hb-fi{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;}
  .hb-float .hb-ft{font-size:11.5px;color:var(--ink-40);line-height:1.2;}
  .hb-float .hb-fv{font-family:"Space Grotesk";font-size:15.5px;font-weight:700;color:var(--ink);}
  .hb-f-stat{top:-22px;right:-10px;animation:hb-floaty 5s ease-in-out infinite;}
  .hb-f-ping{bottom:44px;left:-24px;animation:hb-floaty 5.6s ease-in-out .4s infinite;}
  @keyframes hb-floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

  @media(max-width:940px){
    .hb-grid{grid-template-columns:1fr;gap:60px;padding:56px 0 72px;}
    .hb-mock{max-width:470px;}
    .hb-f-stat{right:0;} .hb-f-ping{left:0;}
  }
  @media(max-width:520px){
    .hb-float{display:none;}
  }
  @media(prefers-reduced-motion: reduce){
    .hb-halo,.hb-f-stat,.hb-f-ping{animation:none;}
    .hb-pulse::after{display:none;}
    .hb-screen{transition:none;}
  }

/* ============================================================================
   LOT S-A — CORRECTIONS RESPONSIVE (§site-1). CSS 100% APPEND-ONLY : aucune
   règle au-dessus n'est modifiée ni supprimée. Aucune classe partagée
   (.cap/.prow/.chip/.steps/.cg/.exc/.pgrid) redéfinie hors media query.
   ============================================================================ */

  /* (a) NAV — burger relevé de 760 à 820px. Le burger EXISTE déjà (@760). On
     REMONTE UNIQUEMENT les 5 règles de navigation pour couvrir la bande 761–820
     où la nav pleine déborde (~789px). Les autres règles du bloc @760 (.section,
     .irritants-grid, .secpanel.active, .plans, .mini-cards, .price-controls,
     .plan.pop, .foot-top, .hero h1) restent à 760 — NON remontées. */
  @media(max-width:820px){
    .nav-links{display:none;}
    .nav-links.open{display:flex;position:absolute;top:68px;left:0;right:0;flex-direction:column;background:#fff;border-bottom:1px solid var(--line);padding:8px 24px 18px;box-shadow:var(--shadow-md);}
    .nav-links.open a{padding:13px 0;border-bottom:1px solid var(--line);width:100%;}
    .burger{display:grid;}
    .nav-cta .btn--ghost{display:none;}
  }

  /* (b) TARIFS — les 3 cartes .plans (repeat(3,1fr)) débordent dans 761–~980px.
     Passage 1 colonne jusqu'à 1000px + .plan.pop{order:-1} remonté au MÊME
     breakpoint pour garder le forfait « Populaire » en tête. >1000px : 3 colonnes. */
  @media(max-width:1000px){
    .plans{grid-template-columns:1fr;}
    .plan.pop{order:-1;}
  }

  /* (c) MOCKUPS « planning » (.pgrid, min-width:420px) — présents à DEUX endroits :
     le panneau Secteurs resto (.secpanel) ET la feature-row « Planning d'équipe »
     (#modules .frow). En mono-colonne mobile, la piste `1fr` (lignes 392 & 405) se
     dimensionne sur le min-content du pgrid (458px) → débordement de PAGE. Correctif :
     piste en `minmax(0,1fr)` (elle peut passer sous 458px) ; le pgrid scrolle alors
     HORIZONTALEMENT dans son conteneur `.planning`, qui porte DÉJÀ overflow-x:auto
     (ligne 144) — jamais un scroll de page. Un dégradé de bord droit signale le
     débordement, scopé aux SEULES cartes contenant un `.planning` (:has). */
  @media(max-width:760px){
    .frow,.frow--rev{grid-template-columns:minmax(0,1fr);}
    .secpanel.active{grid-template-columns:minmax(0,1fr);}
    .cap:has(.planning) .cardpad{position:relative;}
    .cap:has(.planning) .cardpad::after{content:"";position:absolute;top:0;right:0;bottom:0;width:32px;pointer-events:none;background:linear-gradient(to left,#fff 8%,rgba(255,255,255,0));}
  }

/* ============================================================================
   LOT MOBILE 390 — corrections MESURÉES (D1, D2, D3, D5, D7). Append-only :
   aucune règle au-dessus n'est modifiée ni supprimée.
   ============================================================================ */

  /* D1 — CTA finale. La section navy porte la classe `.final`, PAS `.section--dark`,
     donc l'override `.section--dark .btn--ghost{color:#fff}` (l.40) ne s'y applique
     pas : `.btn--ghost` gardait `color:var(--ink)` = navy sur fond navy. Le libellé
     « Demander une démo » EXISTE dans le HTML, il était juste invisible.
     Même traitement que .section--dark — aucun libellé inventé. */
  .final .btn--ghost{color:#fff;border-color:rgba(255,255,255,.28);}
  .final .btn--ghost:hover{border-color:#fff;background:rgba(255,255,255,.06);}

  /* D2 — hero collé au bord gauche. Le conteneur porte À LA FOIS `.wrap` et
     `.hb-grid` (<div class="wrap hb-grid">) : la shorthand `padding:82px 0 94px`
     de .hb-grid (l.442/545, plus tardive et de même spécificité) ÉCRASAIT le
     `padding:0 24px` de .wrap (l.21) → padding horizontal 0 à TOUTES les largeurs.
     Mesuré à 390px : h1, .hb-lead, .hb-eyebrow et .hb-trust tous à left=0, la puce
     .hb-dot occupant x∈[0;5.9]. On rétablit le padding latéral standard du site. */
     BORNE (régression desktop) : ce padding n'est utile QUE tant que .wrap ne
     fournit pas déjà la marge par son centrage. .wrap fait max-width:1200px ;
     à partir de 1200+2×24 = 1248px, la marge naturelle (W−1200)/2 vaut ≥24px et
     le padding devient redondant — il rétrécissait le hero et faisait passer le
     h1 de 2 à 3 lignes. On le borne donc à ≤1247px : au-delà, état d'avant EXACT. */
  @media(max-width:1247px){
    .hb-grid{padding-left:24px;padding-right:24px;}
  }
  @media(max-width:420px){ .hb-grid{padding-left:18px;padding-right:18px;} }

  /* D3(iii) — l'icône était centrée sur le bloc titre+sous-titre (2 lignes), donc
     12.4px sous le centre du titre. On l'aligne sur la 1re ligne. */
  .hb-exc-item{align-items:flex-start;}
  .hb-exc-ic{margin-top:-2px;}

  /* D3(iv) — contraste. --ink-40 (#8A93B0) sur blanc = 3.05:1 → échec WCAG AA
     (4.5:1) à 11.5px. --ink-60 (#4A5578), déjà utilisé partout sur le site,
     donne 7.38:1. Correction d'accessibilité, donc appliquée aussi en desktop. */
  .hb-exc-s,.hb-p-role{color:var(--ink-60);}

  /* D5 — ancres sous le header sticky. Le header mesure 69px et AUCUNE section
     cible n'avait de scroll-margin-top (toutes à 0px) : au clic d'ancre le haut
     de la section passait sous le header. */
  section[id]{scroll-margin-top:78px;}

  @media(max-width:600px){
    /* D3(i) — .hb-cap fait 100% de large PLUS rotate(-1.4deg) : bbox 399.4px pour
       390px de viewport → dépasse de 4.7px de chaque côté (clippé par
       .hb-hero{overflow:hidden}, donc coupé sans scroll possible). La rotation est
       purement décorative : on la retire sous 600px, la carte tient entière. */
    .hb-cap{transform:none;}

    /* D3(ii) — .hb-view a une hauteur FIGÉE héritée du desktop (309px mesurés)
       alors que les slides n'utilisent que 179 à 267px → jusqu'à 42% de vide en
       bas (35.6% sur la slide « Exceptions du jour »). Hauteur ramenée au contenu
       le plus haut + centrage vertical : plus de bloc vide en bas, et pas de saut
       de mise en page entre slides (hauteur constante). */
    .hb-view{height:276px;}
    .hb-screen{display:flex;flex-direction:column;justify-content:center;}

    /* D5 — le CTA du header occupait 259px de large sur 390px de viewport. */
    .nav-cta .btn--sm{padding:9px 13px;font-size:13.5px;}

    /* D7 — ZOOM RÉSIDUEL iOS. Safari zoome automatiquement au focus d'un champ
       dont le font-size calculé est < 16px, et ne redescend jamais à l'échelle 1
       à la fermeture. Mesuré : les 9 champs de la modale à 14.5px (honeypot
       13.3px) sur les 11 pages. 16px sous 600px ; le desktop garde 14.5px.
       On ne neutralise PAS le zoom (pas de user-scalable=no / maximum-scale) :
       interdit, inefficace sur Safari, et destructeur pour l'accessibilité. */
    .field input,.field select,.field textarea{font-size:16px;}
  }

  /* D2bis — halo décoratif du hero : 520px de large pour un viewport de 390px
     (positionné right:-60px → bord gauche à -77px, animation scale(1.02) incluse).
     Purement décoratif (pointer-events:none, clippé par .hb-hero{overflow:hidden}),
     mais c'était le dernier élément à left<0. Redimensionné sous 600px : la lueur
     reste en haut à droite, sans sortir du viewport. */
  @media(max-width:600px){
    .hb-halo{width:340px;height:340px;right:-30px;top:-120px;}
  }

  /* C — LOGO COLLÉ AU PREMIER LIEN. .nav-inner est en `justify-content:space-between`
     SANS gap : l'espacement n'existe que tant qu'il reste de la place libre. Mesuré
     par pas de 10px : l'écart logo→« Secteurs » tombe à 11.1px à 860, 6.1px à 850,
     1.1px à 840 et 0px à 830 (logoRight = lien1Left = 105.5 → « pointiSecteurs »).
     Défaut réel sur 821–869px ; ≥870px l'écart repasse au-dessus de 16px.
     1) gap = plancher d'espacement garanti, quelle que soit la place libre ;
     2) le bouton fantôme « Voir les tarifs » (déjà masqué ≤820px) est masqué
        jusqu'à 900px : c'est lui qui saturait la barre dans cette bande, et sans
        ça le gap ne ferait que déplacer la contrainte (débordement/passage à la ligne). */
  .nav-inner{gap:24px;}
  @media(max-width:900px){ .nav-cta .btn--ghost{display:none;} }

  /* ── TARIFS v2 (packs D22–D24) ────────────────────────────────────────────
     4 packs au lieu de 3 forfaits, et plus aucun sélecteur de tranche : le bloc
     .price-controls ne porte plus que la bascule, donc on l'aligne à droite au
     lieu du space-between (qui la collait à gauche une fois les tranches ôtées).
     La cascade responsive de .plans est RÉÉCRITE ICI EN ENTIER : ce bloc étant
     le dernier du fichier, une règle @media posée plus haut (1000px, 760px) ne
     pourrait plus reprendre la main sur une valeur définie après elle. */
  .price-controls{justify-content:flex-end;}
  .plans{grid-template-columns:repeat(4,1fr);gap:16px;}
  @media(max-width:1200px){ .plans{grid-template-columns:repeat(2,1fr);} }
  @media(max-width:760px){ .plans{grid-template-columns:1fr;} }
  .plan{padding:24px;}
  /* en-tête d'héritage des modules (« Tout Essentiel, plus : ») */
  .plan .pherit{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:2px;}
  /* effectif inclus, sur chaque carte */
  .plan .pemp{font-size:12px;color:var(--ink-40);margin-top:6px;min-height:18px;}
  /* bloc supplément d'effectif, sous les cartes */
  .psupp{margin-top:18px;text-align:center;font-size:13.5px;color:var(--ink-60);
    background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:13px 18px;}
