*, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; font-family: var(--font-secondary); color: var(--text-body); background: var(--white); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
  h1, h2, h3, h4 { font-family: var(--font-primary); color: var(--text-strong); margin: 0; }
  p { margin: 0; } a { color: inherit; text-decoration: none; } img { display: block; max-width: 100%; }
  .wrap { max-width: 1180px; margin: 0 auto; padding: 0 32px; }
  .ital { font-style: italic; }
  .c-formation { color: #3b7eff; } .c-media { color: #ff7a01; } .c-acquisition { color: #e30a17; }

  /* accent utility per division */
  [data-acc="formation"] { --a4:#6fa0ff; --a5:#3b7eff; --a6:#1f5fe0; --a1:#e0ebff; --a05:#f2f7ff; }
  [data-acc="media"]     { --a4:#ff9c40; --a5:#ff7a01; --a6:#e06601; --a1:#ffe9d5; --a05:#fff7f0; }
  [data-acc="acquisition"]{ --a4:#f2565f; --a5:#e30a17; --a6:#bd0713; --a1:#fbdada; --a05:#fef4f4; }

  /* ---------- Buttons ---------- */
  .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--font-secondary); font-weight: 600; font-size: 15px; padding: 15px 26px; border-radius: var(--radius-pill); border: 1px solid transparent; cursor: pointer; transition: transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-base), background var(--dur-base); line-height: 1; white-space: nowrap; }
  .btn-dark { background: var(--ink-900); color: #fff; } .btn-dark:hover { background: var(--ink-700); transform: translateY(-2px); }
  .btn-lg { padding: 17px 32px; font-size: 16px; }
  .btn svg { width: 17px; height: 17px; }

  /* ---------- Nav ---------- */
  .nav-outer { position: sticky; top: 0; z-index: 100; padding: 16px 0; }
  .nav { max-width: 1180px; margin: 0 auto; display: flex; align-items: center; gap: 20px; background: rgba(255,255,255,0.82); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid var(--border-card); border-radius: var(--radius-pill); padding: 10px 12px 10px 22px; box-shadow: var(--shadow-sm); }
  .brand { display: flex; align-items: center; flex: none; } .brand-img { height: 20px; width: auto; display: block; }
  .nav-links { display: flex; align-items: center; gap: 2px; margin: 0 auto; }
  .nav-links a { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; font-size: 14.5px; font-weight: 500; color: var(--ink-800); padding: 9px 14px; border-radius: var(--radius-pill); transition: background var(--dur-fast), color var(--dur-fast); }
  .nav-links a svg { width: 15px; height: 15px; }
  .nav-links a:hover { background: var(--accent-050); color: var(--accent-500); }
  .nav-cta { flex: none; padding: 13px 22px; }
  .nav-burger { display: none; flex: none; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--border-card); background: #fff; color: var(--ink-900); align-items: center; justify-content: center; cursor: pointer; }
  .nav-burger svg { width: 22px; height: 22px; }
  @media (max-width: 1040px) { .nav-links, .nav .nav-cta { display: none; } .nav-burger { display: inline-flex; } }

  /* mobile drawer */
  .mnav-overlay { position: fixed; inset: 0; background: rgba(15,20,30,0.5); backdrop-filter: blur(2px); opacity: 0; pointer-events: none; transition: opacity .3s; z-index: 200; }
  .mnav-overlay.open { opacity: 1; pointer-events: auto; }
  .mnav { position: fixed; top: 0; right: 0; height: 100%; width: 82%; max-width: 340px; background: #fff; box-shadow: -20px 0 60px rgba(15,20,30,0.18); transform: translateX(100%); transition: transform .34s var(--ease-out); z-index: 201; padding: 22px; display: flex; flex-direction: column; gap: 6px; }
  .mnav.open { transform: none; } .mnav-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
  .mnav-top img { height: 20px; } .mnav-close { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--border-card); background: #fff; display: grid; place-items: center; cursor: pointer; }
  .mnav a { font-size: 16px; font-weight: 500; color: var(--ink-900); padding: 13px 12px; border-radius: 12px; }
  .mnav a:hover { background: var(--accent-050); color: var(--accent-500); }
  .mnav .btn { margin-top: 12px; }

  /* ---------- Sections ---------- */
  section { padding: 80px 0; }
  .section-head { text-align: center; max-width: 720px; margin: 0 auto 48px; }
  .section-head h2 { font-size: clamp(26px,3vw,38px); font-weight: 900; line-height: 1.14; letter-spacing: var(--ls-tight); }
  .section-head h2 i { color: var(--accent-500); font-style: italic; display: block; }
  .section-head p { margin-top: 14px; font-size: var(--fs-body-lg); color: var(--text-muted); line-height: var(--lh-body); }

  /* ---------- Hero ---------- */
  .hero { position: relative; overflow: hidden; text-align: center; padding: 40px 0 60px; background: radial-gradient(140% 90% at 50% -10%, #eef1f5 0%, #f7f8fa 44%, #ffffff 78%); }
  .hero::before, .hero::after { content: ""; position: absolute; top: -10%; width: 60%; height: 130%; background: linear-gradient(120deg, rgba(0,0,0,0.05), transparent 60%); pointer-events: none; }
  .hero::before { left: -12%; transform: skewX(-12deg); } .hero::after { right: -12%; transform: skewX(12deg); background: linear-gradient(240deg, rgba(0,0,0,0.05), transparent 60%); }
  .hero .wrap { position: relative; z-index: 2; }
  .g-badge { display: inline-flex; align-items: center; gap: 9px; background: #fff; border: 1px solid var(--border-card); border-radius: var(--radius-pill); padding: 7px 15px; box-shadow: var(--shadow-sm); font-size: 12.5px; color: var(--ink-700); }
  .g-badge .g { font-family: var(--font-primary); font-weight: 800; }
  .g-badge .g b1{color:#4285F4}.g-badge .g b2{color:#EA4335}.g-badge .g b3{color:#FBBC05}.g-badge .g b4{color:#34A853}
  .g-badge .stars { color: #f5a623; display: inline-flex; gap: 1px; } .g-badge .stars svg { width: 13px; height: 13px; fill: currentColor; }
  .g-badge b { color: var(--ink-900); }
  .hero h1 { margin: 22px auto 0; max-width: 760px; font-size: clamp(30px,4.2vw,50px); font-weight: 900; font-style: italic; line-height: 1.08; letter-spacing: var(--ls-tight); }
  .hero h1 .plain { font-style: normal; font-weight: 500; }
  .hero-dots { margin: 26px 0 0; display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; }
  .hero-dot { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--ink-700); background: #fff; border: 1px solid var(--border-card); border-radius: var(--radius-pill); padding: 8px 15px; }
  .hero-dot i { width: 9px; height: 9px; border-radius: 50%; }
  .hero-actions { margin-top: 26px; display: flex; justify-content: center; }

  /* ---------- Testimonial photo cards ---------- */
  .testi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 6px; }
  .tphoto { position: relative; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 3/3.5; box-shadow: var(--shadow-card); border: 1px solid var(--border-card); }
  .tphoto img { width: 100%; height: 100%; object-fit: cover; }
  .tphoto.zoom img { transform: scale(1.22); transform-origin: center 22%; }
  .tphoto .ov { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,12,18,0) 34%, rgba(10,12,18,0.82) 100%); }
  .tphoto .cap { position: absolute; left: 16px; right: 16px; bottom: 54px; color: #fff; font-size: 13.5px; font-weight: 600; line-height: 1.4; z-index: 2; }
  .tphoto .cap mark { background: #ffc93c; color: var(--ink-900); padding: 1px 5px; border-radius: 4px; }
  .tphoto .foot { position: absolute; left: 16px; right: 16px; bottom: 16px; z-index: 2; display: flex; align-items: center; gap: 8px; }
  .tphoto .foot b { color: #fff; font-family: var(--font-primary); font-size: 13.5px; font-weight: 700; }
  .tphoto .foot .net { font-size: 9.5px; font-weight: 700; letter-spacing: 0.02em; color: #fff; background: rgba(255,255,255,0.22); padding: 3px 8px; border-radius: 999px; backdrop-filter: blur(4px); }
  .tphoto .foot .stars { margin-left: auto; color: #ffc93c; display: flex; gap: 1px; } .tphoto .foot .stars svg { width: 12px; height: 12px; fill: currentColor; }
  .testi-marquee { margin-top: 6px; position: relative; overflow: hidden; -webkit-mask: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); mask: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); }
  .testi-track { display: flex; gap: 20px; width: max-content; animation: testiScroll 60s linear infinite; }
  .testi-marquee:hover .testi-track { animation-play-state: paused; }
  @keyframes testiScroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 10px)); } }
  .testi-track .tphoto { flex: none; width: 300px; }

  /* ---------- Press ---------- */
  .press { text-align: center; padding: 64px 0 40px; }
  .press .lbl { font-size: 12px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); }
  .press-row { margin-top: 26px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 26px 46px; }
  .press-row span { font-family: var(--font-primary); font-weight: 800; font-size: clamp(18px,2.4vw,26px); color: #b8bcc4; letter-spacing: -0.01em; transition: color var(--dur-base); }
  .press-row span:hover { color: var(--ink-700); }

  /* ---------- Expertise cards ---------- */
  .exp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .exp-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--border-card); border-radius: var(--radius-xl); box-shadow: var(--shadow-card); overflow: hidden; transition: transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base); }
  .exp-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
  .exp-media { position: relative; aspect-ratio: 16/10; overflow: hidden; background: #eef1f5; }
  .exp-media img { width: 100%; height: 100%; object-fit: cover; }
  .exp-body { padding: 26px 28px 28px; display: flex; flex-direction: column; flex: 1; }
  .exp-body .eyebrow { font-family: var(--font-secondary); font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-500); }
  .exp-body h3 { font-family: var(--font-primary); font-size: 27px; font-weight: 900; line-height: 1; margin: 5px 0 14px; }
  .exp-body .sub { font-family: var(--font-primary); font-weight: 800; font-size: 15px; color: var(--ink-900); margin-bottom: 8px; }
  .exp-body p { font-size: 14px; line-height: 1.55; color: var(--text-muted); }
  .exp-btn { margin-top: auto; display: block; text-align: center; color: #fff; font-family: var(--font-secondary); font-weight: 600; font-size: 14.5px; padding: 14px; border-radius: var(--radius-pill); background: var(--a5); box-shadow: 0 10px 24px color-mix(in srgb, var(--a5) 30%, transparent); transition: background var(--dur-base), transform var(--dur-fast); }
  .exp-btn:hover { background: var(--a6); transform: translateY(-2px); }

  /* ---------- Networks ring ---------- */
  .net-ring { position: relative; max-width: 900px; height: 720px; margin: 0 auto; }
  .net-ring .halo { position: absolute; inset: 8% 12%; border-radius: 50%; background: radial-gradient(closest-side, rgba(59,126,255,0.08), transparent 72%); }
  .net-ring .center { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 360px; max-width: 60%; text-align: center; }
  .net-ring .center h2 { font-size: clamp(22px,2.7vw,30px); font-weight: 900; line-height: 1.18; letter-spacing: var(--ls-tight); }
  .net-ring .center h2 i { color: var(--accent-500); font-style: italic; }
  .ring-logo { position: absolute; transform: translate(-50%,-50%); width: 92px; height: 92px; background: #fff; border: 1px solid var(--border-card); border-radius: 15px; box-shadow: 0 6px 18px rgba(20,20,20,0.08); display: grid; place-items: center; padding: 12px 14px; transition: transform var(--dur-base), box-shadow var(--dur-base); }
  .ring-logo:hover { transform: translate(-50%,-50%) scale(1.06); box-shadow: 0 12px 26px rgba(20,20,20,0.14); z-index: 3; }
  .ring-logo img { max-width: 100%; max-height: 46px; width: auto; height: auto; object-fit: contain; }
  .ring-orbit { position: absolute; inset: 0; animation: ringSpin 90s linear infinite; }
  .ring-orbit .ring-logo-inner { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; animation: ringSpin 90s linear infinite reverse; }
  @keyframes ringSpin { to { transform: rotate(360deg); } }
  @media (prefers-reduced-motion: reduce) { .ring-orbit, .ring-orbit .ring-logo-inner { animation: none; } }
  @media (max-width: 820px) {
    .net-ring { height: auto; display: flex; flex-direction: column; align-items: center; gap: 26px; }
    .net-ring .halo { display: none; }
    .net-ring .center { position: static; transform: none; width: 100%; max-width: 100%; }
    .ring-logo { position: static; transform: none; }
    .ring-wrap-m { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
  }

  /* ---------- Founders ---------- */
  .founders { display: grid; grid-template-columns: 0.95fr 1.05fr; gap: 48px; align-items: center; }
  .founders-media { position: relative; border-radius: var(--radius-xl); overflow: hidden; box-shadow: var(--shadow-float); border: 1px solid var(--border-card); aspect-ratio: 4/4.4; }
  .founders-media image-slot { width: 100%; height: 100%; }
  .founders h2 { font-size: clamp(26px,3vw,36px); font-weight: 900; line-height: 1.08; letter-spacing: var(--ls-tight); }
  .founders .lead { margin-top: 18px; font-size: 16px; line-height: 1.6; color: var(--text-body); }
  .founders .small { margin-top: 14px; font-size: 14px; line-height: 1.6; color: var(--text-muted); }
  .founders .fbullets { list-style: none; margin: 20px 0 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
  .founders .fbullets li { display: flex; gap: 11px; align-items: center; font-size: 14.5px; color: var(--ink-800); }
  .founders .fbullets li i { width: 26px; height: 26px; flex: none; border-radius: 50%; background: var(--accent-100); color: var(--accent-500); display: grid; place-items: center; }
  .founders .fbullets li svg { width: 15px; height: 15px; }

  /* ---------- Manifesto ---------- */
  .manifesto { text-align: center; }
  .manifesto h2 { max-width: 900px; margin: 0 auto; font-size: clamp(28px,4vw,48px); font-weight: 500; line-height: 1.12; letter-spacing: var(--ls-tight); }
  .manifesto h2 u { text-decoration-color: var(--accent-500); text-underline-offset: 5px; }
  .manifesto p { max-width: 640px; margin: 22px auto 0; font-size: 15.5px; line-height: 1.65; color: var(--text-muted); }

  /* ---------- Values band ---------- */
  .values { position: relative; overflow: hidden; padding: 70px 0; text-align: center; }
  .values .track { display: flex; width: max-content; gap: 46px; font-family: var(--font-primary); font-weight: 900; font-size: clamp(40px,8vw,104px); line-height: 1; letter-spacing: -0.02em; white-space: nowrap; animation: valScroll 26s linear infinite; }
  .values .track span { color: var(--ink-900); }
  .values .track span.dim { color: #e4e7ec; }
  @keyframes valScroll { from { transform: translateX(-50%); } to { transform: translateX(0); } }
  @media (prefers-reduced-motion: reduce) { .values .track { animation: none; } }
  .values .big-unused { display: flex; justify-content: center; gap: 46px; font-family: var(--font-primary); font-weight: 900; font-size: clamp(40px,8vw,104px); line-height: 1; letter-spacing: -0.02em; white-space: nowrap; }
  .values .big span:nth-child(1){ color: #e4e7ec; transition: color .5s ease; }
  .values .big span:nth-child(2){ color: var(--ink-900); transition: color .5s ease; }
  .values .big span:nth-child(3){ color: #e4e7ec; transition: color .5s ease; }
  .values .cap { margin-top: 26px; font-size: 15px; color: var(--text-muted); }

  /* ---------- Final CTA (dark) ---------- */
  .final { position: relative; overflow: hidden; border-radius: var(--radius-xl); background: linear-gradient(120deg, #14161f 0%, #20242f 60%, #14161f 100%); color: #fff; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 30px; padding: 54px 52px; align-items: center; }
  .final::before { content: ""; position: absolute; top: -30%; right: -10%; width: 60%; height: 160%; background: radial-gradient(closest-side, rgba(59,126,255,0.22), transparent 70%); pointer-events: none; }
  .final-l { position: relative; z-index: 2; }
  .final-l h2 { color: #fff; font-size: clamp(28px,3.4vw,42px); font-weight: 900; line-height: 1.05; letter-spacing: var(--ls-tight); }
  .final-l p { margin-top: 18px; font-size: 15.5px; line-height: 1.6; color: rgba(255,255,255,0.75); max-width: 420px; }
  .final-l .btn { margin-top: 26px; background: #fff; color: var(--ink-900); }
  .final-l .btn:hover { background: var(--ink-50); transform: translateY(-2px); }
  .final-stats { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 16px; }
  .fstat { display: flex; align-items: center; gap: 18px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.12); border-radius: 18px; padding: 18px 22px; backdrop-filter: blur(6px); }
  .fstat .n { font-family: var(--font-primary); font-weight: 900; font-size: 34px; color: #fff; line-height: 1; flex: none; }
  .fstat .t { font-size: 13px; color: rgba(255,255,255,0.72); line-height: 1.4; }
  .fstat .n.acc { color: var(--accent-400); }

  /* ---------- Partner marquee (mobile fallback also) ---------- */
  .logo-cell { flex: none; width: 150px; height: 84px; background: #fff; border: 1px solid var(--border-card); border-radius: 14px; box-shadow: 0 2px 10px rgba(20,20,20,0.05); display: grid; place-items: center; padding: 12px 18px; }
  .logo-cell img { max-width: 116px; max-height: 52px; width: auto; height: auto; object-fit: contain; }

  /* ---------- Footer ---------- */
  footer { position: relative; background: #fff; color: var(--text-muted); padding: 64px 0 36px; overflow: hidden; text-align: center; }
  .footer-watermark { position: absolute; left: 50%; transform: translateX(-50%); bottom: 0; width: 80%; height: 200px; background: #141414; -webkit-mask: url("/assets/img/forme-masque.webp") bottom center/contain no-repeat; mask: url("/assets/img/forme-masque.webp") bottom center/contain no-repeat; opacity: .35; pointer-events: none; }
  .footer-inner { position: relative; z-index: 2; }
  .footer-logo .fl-img { height: 30px; width: auto; display: inline-block; }
  .footer-nav { margin-top: 28px; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 28px; }
  .footer-nav a { font-size: 14.5px; color: var(--ink-800); } .footer-nav a:hover { color: var(--accent-500); }
  .footer-social { margin-top: 28px; display: flex; align-items: center; justify-content: center; gap: 14px; }
  .footer-social .lbl { font-family: var(--font-primary); font-weight: 700; font-size: 15px; color: var(--ink-900); }
  .social-row { display: flex; gap: 10px; }
  .social-row a { width: 38px; height: 38px; border-radius: 50%; background: var(--ink-900); display: grid; place-items: center; color: #fff; transition: background var(--dur-fast); }
  .social-row a:hover { background: var(--accent-500); } .social-row svg { width: 18px; height: 18px; }
  .footer-bottom { position: relative; z-index: 2; margin-top: 38px; padding-top: 22px; border-top: 1px solid var(--border-subtle); display: flex; justify-content: center; gap: 8px 22px; font-size: 13px; flex-wrap: wrap; }
  .footer-bottom a:hover { color: var(--accent-500); }

  @media (max-width: 980px) {
    .testi-row { grid-template-columns: repeat(2, 1fr); }
    .exp-grid { grid-template-columns: 1fr; max-width: 460px; margin: 0 auto; }
    .founders { grid-template-columns: 1fr; gap: 30px; }
    .final { grid-template-columns: 1fr; padding: 40px 28px; }
    .values .big { flex-direction: column; gap: 6px; }
  }
  @media (max-width: 560px) { .wrap { padding: 0 20px; } .testi-row { grid-template-columns: 1fr; } }
