:root {
      --teal-dark: #005B52;
      --teal: #006C60;
      --teal-light: #0F8F82;
      --teal-soft: #E8F5F2;
      --gold: #F4B500;
      --gold-dark: #B98200;
      --gold-soft: #FFF5CF;
      --cream: #F7F5EF;
      --cream-light: #FBFAF6;
      --white: #FFFFFF;
      --text: #123B36;
      --muted: #617570;
      --border: #E7E2D8;
      --shadow-lg: 0 24px 60px rgba(0, 91, 82, 0.10);
      --shadow-md: 0 12px 34px rgba(0, 91, 82, 0.07);
      --radius-xl: 30px;
      --radius-lg: 22px;
      --radius-md: 16px;
      --max: 1180px;
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      font-family: Arial, Helvetica, sans-serif;
      background: var(--cream);
      color: var(--text);
      line-height: 1.6;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    img {
      display: block;
      max-width: 100%;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

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

    .topbar {
      position: sticky;
      top: 0;
      z-index: 100;
      background: rgba(247, 245, 239, 0.9);
      border-bottom: 1px solid rgba(231, 226, 216, 0.85);
      backdrop-filter: blur(16px);
    }

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

    .brand {
      display: flex;
      align-items: center;
      min-width: 220px;
    }

    .brand img {
      width: 278px;
      height: auto;
      background: transparent;
    }

    .nav-links {
      display: flex;
      align-items: center;
      gap: 28px;
      font-size: 13px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .06em;
    }

    .nav-links a {
      color: rgba(18, 59, 54, .82);
      position: relative;
      transition: color .2s ease;
    }

    .nav-links a:hover {
      color: var(--teal);
    }

    .nav-links a.active::after {
      content: "";
      position: absolute;
      left: 0;
      right: 0;
      bottom: -12px;
      height: 3px;
      background: var(--gold);
      border-radius: 999px;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 48px;
      padding: 0 22px;
      border-radius: 999px;
      border: 1px solid transparent;
      font-size: 14px;
      font-weight: 800;
      letter-spacing: .02em;
      transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
      cursor: pointer;
    }

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

    .btn-primary {
      background: var(--teal);
      color: var(--white) !important;
      box-shadow: 0 12px 28px rgba(0, 108, 96, .22);
    }

    .btn-primary:hover {
      background: var(--teal-dark);
    }

    .btn-outline {
      background: rgba(255,255,255,.75);
      border-color: rgba(244,181,0,.5);
      color: var(--teal) !important;
    }

    .btn-gold {
      background: var(--gold);
      color: #3b2a00 !important;
      box-shadow: 0 14px 30px rgba(244,181,0,.22);
    }

    .mobile-menu-btn {
      display: none;
      width: 46px;
      height: 46px;
      border-radius: 14px;
      border: 0;
      background: var(--teal);
      color: white;
      font-size: 22px;
      cursor: pointer;
    }

    .mobile-panel {
      display: none;
      border-top: 1px solid rgba(231, 226, 216, 0.9);
      background: rgba(251,250,246,.98);
    }

    .mobile-panel.open {
      display: block;
    }

    .mobile-panel .container {
      padding: 18px 0 22px;
      display: grid;
      gap: 12px;
    }

    .mobile-panel a {
      padding: 12px 0;
      font-weight: 700;
      color: var(--text);
    }

    .hero {
      position: relative;
      overflow: hidden;
      padding: 84px 0 92px;
      background:
        radial-gradient(circle at 83% 18%, rgba(244,181,0,.17), transparent 27%),
        radial-gradient(circle at 76% 62%, rgba(15,143,130,.12), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, var(--cream) 100%);
    }

    .hero::before {
      content: "";
      position: absolute;
      width: 560px;
      height: 560px;
      right: -200px;
      top: 110px;
      border-radius: 50%;
      border: 1px dashed rgba(0,108,96,.18);
    }

    .hero-grid {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: 1.02fr .98fr;
      gap: 54px;
      align-items: center;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 10px 15px;
      border-radius: 999px;
      background: rgba(255,255,255,.88);
      border: 1px solid var(--border);
      box-shadow: var(--shadow-md);
      color: var(--teal);
      font-size: 13px;
      font-weight: 800;
      margin-bottom: 26px;
    }

    .eyebrow::before {
      content: "";
      width: 9px;
      height: 9px;
      border-radius: 50%;
      background: var(--gold);
      box-shadow: 0 0 0 6px rgba(244,181,0,.16);
    }

    h1, h2, h3 {
      font-family: Georgia, "Times New Roman", serif;
      letter-spacing: -.02em;
      color: var(--text);
    }

    h1 {
      font-size: clamp(42px, 5vw, 72px);
      line-height: .98;
      margin-bottom: 22px;
      max-width: 770px;
    }

    h2 {
      font-size: clamp(34px, 4vw, 54px);
      line-height: 1.08;
      margin-bottom: 18px;
    }

    .gold {
      color: var(--gold-dark);
    }

    .hero-line {
      width: 94px;
      height: 4px;
      border-radius: 999px;
      background: var(--gold);
      margin-bottom: 26px;
    }

    .hero-text {
      color: var(--muted);
      font-size: 18px;
      max-width: 640px;
      margin-bottom: 30px;
    }

    .hero-actions {
      display: flex;
      gap: 14px;
      flex-wrap: wrap;
      margin-bottom: 34px;
    }

    .hero-proof {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 14px;
      max-width: 680px;
    }

    .proof {
      background: rgba(255,255,255,.84);
      border: 1px solid var(--border);
      border-radius: 18px;
      padding: 18px;
      box-shadow: var(--shadow-md);
    }

    .proof strong {
      display: block;
      color: var(--teal);
      font-size: 24px;
      font-family: Georgia, "Times New Roman", serif;
      line-height: 1;
      margin-bottom: 6px;
    }

    .proof span {
      color: var(--muted);
      font-size: 13px;
      font-weight: 700;
    }

    .hero-visual {
      position: relative;
      min-height: 560px;
      border-radius: var(--radius-xl);
      background:
        linear-gradient(145deg, rgba(255,255,255,.97), rgba(232,245,242,.88)),
        radial-gradient(circle at 84% 18%, rgba(244,181,0,.25), transparent 25%);
      border: 1px solid rgba(255,255,255,.92);
      box-shadow: var(--shadow-lg);
      overflow: hidden;
      padding: 30px;
      isolation: isolate;
    }

    .hero-visual .orbital,
    .hero-visual .core-ring,
    .hero-visual .core-center {
      position: absolute;
      inset: auto;
      z-index: 1;
      pointer-events: none;
    }

    .hero-visual .orbital {
      width: 720px;
      height: 720px;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      border: 1px dashed rgba(0,108,96,.18);
      border-radius: 50%;
    }

    .hero-visual .core-ring {
      width: 320px;
      height: 320px;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      border-radius: 50%;
      background: radial-gradient(circle, rgba(255,255,255,0) 0 38%, rgba(15,143,130,.11) 39% 65%, rgba(255,255,255,0) 66% 100%);
      border: 1px solid rgba(0,108,96,.10);
    }

    .hero-visual .core-center {
      width: 206px;
      height: 206px;
      left: 50%;
      top: 50%;
      transform: translate(-50%, -50%);
      border-radius: 50%;
      background: rgba(255,255,255,.98);
      box-shadow: 0 22px 52px rgba(0,91,82,.10);
      display: grid;
      place-items: center;
    }

    .capsule {
      width: 134px;
      height: 58px;
      border-radius: 999px;
      background: linear-gradient(90deg, var(--gold) 0 50%, var(--teal) 50% 100%);
      position: relative;
      transform: rotate(-24deg);
      box-shadow: 0 18px 34px rgba(0,91,82,.16);
    }

    .capsule::after {
      content: "";
      position: absolute;
      left: 50%;
      top: 8px;
      bottom: 8px;
      width: 2px;
      background: rgba(255,255,255,.9);
    }

    .visual-card {
      position: absolute;
      z-index: 3;
      background: rgba(255,255,255,.96);
      border: 1px solid var(--border);
      border-radius: 22px;
      padding: 20px;
      box-shadow: 0 18px 42px rgba(0,91,82,.11);
      max-width: 290px;
    }

    .visual-card small {
      display: block;
      text-transform: uppercase;
      letter-spacing: .10em;
      color: #6c7b77;
      font-size: 11px;
      font-weight: 900;
      margin-bottom: 10px;
    }

    .visual-card strong {
      display: block;
      color: var(--teal);
      font-family: Georgia, "Times New Roman", serif;
      font-size: 26px;
      line-height: 1.05;
      margin-bottom: 8px;
    }

    .visual-card p {
      color: var(--muted);
      font-size: 14px;
      line-height: 1.45;
    }

    .card-market { left: 30px; top: 48px; max-width: 310px; }
    .card-deploy { right: 24px; top: 118px; max-width: 330px; }
    .card-sales { left: 34px; bottom: 56px; max-width: 340px; }
    .card-crm { right: 42px; bottom: 66px; max-width: 255px; }

    .mini-bars {
      display: flex;
      align-items: end;
      gap: 8px;
      height: 58px;
      margin-top: 12px;
    }

    .mini-bars span {
      width: 18px;
      border-radius: 999px;
      background: var(--teal);
    }

    .mini-bars span:nth-child(1) { height: 20px; }
    .mini-bars span:nth-child(2) { height: 42px; background: var(--gold); }
    .mini-bars span:nth-child(3) { height: 52px; }
    .mini-bars span:nth-child(4) { height: 58px; background: var(--gold); }

    section {
      padding: 92px 0;
    }

    .section-head {
      text-align: center;
      max-width: 820px;
      margin: 0 auto 50px;
    }

    .section-kicker {
      color: var(--teal);
      font-size: 13px;
      font-weight: 800;
      letter-spacing: .14em;
      text-transform: uppercase;
      margin-bottom: 12px;
    }

    .section-head p {
      color: var(--muted);
      font-size: 17px;
    }

    .services {
      background: linear-gradient(180deg, var(--cream) 0%, #ffffff 100%);
    }

    .services-grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 20px;
    }

    .service-card {
      display: flex;
      flex-direction: column;
      min-height: 260px;
      background: var(--white);
      border: 1px solid var(--border);
      border-radius: var(--radius-lg);
      padding: 30px;
      box-shadow: var(--shadow-md);
      transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    }

    .service-card:hover {
      transform: translateY(-4px);
      box-shadow: var(--shadow-lg);
      border-color: rgba(244,181,0,.55);
    }

    .icon {
      width: 58px;
      height: 58px;
      border-radius: 18px;
      background: var(--teal-soft);
      color: var(--teal);
      display: grid;
      place-items: center;
      font-size: 26px;
      position: relative;
      margin-bottom: 18px;
    }

    .icon::after {
      content: "";
      position: absolute;
      right: -5px;
      top: -5px;
      width: 16px;
      height: 16px;
      border-radius: 50%;
      background: var(--gold);
    }

    .service-card h3 {
      font-size: 23px;
      line-height: 1.15;
      margin-bottom: 12px;
    }

    .service-card p {
      color: var(--muted);
      font-size: 15px;
      margin-bottom: 20px;
    }

    .service-card a {
      margin-top: auto;
      color: var(--teal);
      font-weight: 800;
      font-size: 14px;
    }

    .dark-band {
      background: var(--teal-dark);
      color: white;
      padding: 62px 0;
      position: relative;
      overflow: hidden;
    }

    .dark-band::before {
      content: "";
      position: absolute;
      right: -160px;
      top: -160px;
      width: 420px;
      height: 420px;
      border-radius: 50%;
      border: 1px dashed rgba(255,255,255,.18);
    }

    .metrics {
      position: relative;
      z-index: 1;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 20px;
    }

    .metric {
      text-align: center;
      padding: 16px 12px;
    }

    .metric strong {
      display: block;
      color: var(--gold);
      font-size: 44px;
      font-family: Georgia, "Times New Roman", serif;
      line-height: 1;
      margin-bottom: 10px;
    }

    .metric span {
      color: rgba(255,255,255,.84);
      font-weight: 700;
      font-size: 14px;
    }

    .expertise {
      background: #fff;
    }

    .expertise-grid {
      display: grid;
      grid-template-columns: .92fr 1.08fr;
      gap: 30px;
      align-items: stretch;
    }

    .panel {
      background: var(--white);
      border: 1px solid var(--border);
      border-radius: var(--radius-xl);
      box-shadow: var(--shadow-md);
      padding: 36px;
    }

    .panel-dark {
      background:
        radial-gradient(circle at 92% 8%, rgba(244,181,0,.22), transparent 30%),
        linear-gradient(145deg, var(--teal-dark), var(--teal));
      color: white;
      border: 0;
      box-shadow: var(--shadow-lg);
    }

    .panel-dark h2,
    .panel-dark h3 {
      color: white;
    }

    .panel-dark p {
      color: rgba(255,255,255,.80);
    }

    .tags {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 22px;
    }

    .tag {
      padding: 9px 13px;
      border-radius: 999px;
      background: rgba(255,255,255,.14);
      border: 1px solid rgba(255,255,255,.18);
      color: white;
      font-size: 13px;
      font-weight: 800;
    }

    .expertise-list {
      display: grid;
      gap: 18px;
    }

    .expertise-item {
      display: grid;
      grid-template-columns: 52px 1fr;
      gap: 16px;
      padding-bottom: 18px;
      border-bottom: 1px solid var(--border);
    }

    .expertise-item:last-child {
      border-bottom: 0;
      padding-bottom: 0;
    }

    .expertise-item h3 {
      font-size: 22px;
      margin-bottom: 5px;
    }

    .expertise-item p {
      color: var(--muted);
      font-size: 15px;
    }

    .approach {
      background: linear-gradient(180deg, #fff 0%, var(--cream) 100%);
    }

    .steps {
      display: grid;
      grid-template-columns: repeat(5, 1fr);
      background: var(--white);
      border-radius: var(--radius-xl);
      overflow: hidden;
      border: 1px solid var(--border);
      box-shadow: var(--shadow-md);
    }

    .step {
      padding: 30px 22px;
      border-right: 1px solid var(--border);
    }

    .step:last-child {
      border-right: 0;
    }

    .step-num {
      width: 42px;
      height: 42px;
      border-radius: 50%;
      background: var(--teal);
      color: white;
      display: grid;
      place-items: center;
      font-weight: 800;
      margin-bottom: 16px;
    }

    .step h3 {
      font-size: 22px;
      margin-bottom: 8px;
    }

    .step p {
      color: var(--muted);
      font-size: 14px;
    }

    .contact {
      background:
        radial-gradient(circle at 12% 15%, rgba(244,181,0,.15), transparent 28%),
        var(--cream);
    }

    .contact-grid {
      display: grid;
      grid-template-columns: .94fr 1.06fr;
      gap: 30px;
      align-items: start;
    }

    .contact-card {
      background: var(--white);
      border: 1px solid var(--border);
      border-radius: var(--radius-xl);
      box-shadow: var(--shadow-lg);
      padding: 36px;
    }

    .contact-copy p {
      color: var(--muted);
      font-size: 17px;
      margin-top: 14px;
    }

    .contact-note {
      margin-top: 22px;
      padding: 18px;
      border-radius: 18px;
      background: var(--teal-soft);
      border-left: 4px solid var(--gold);
      color: var(--teal-dark);
      font-weight: 700;
    }

    .form-grid {
      display: grid;
      gap: 18px;
    }

    .form-group label {
      display: block;
      margin-bottom: 8px;
      font-size: 12px;
      font-weight: 800;
      text-transform: uppercase;
      letter-spacing: .10em;
    }

    input, select, textarea {
      width: 100%;
      min-height: 48px;
      background: var(--cream-light);
      border: 1px solid var(--border);
      border-radius: 14px;
      padding: 13px 14px;
      font: inherit;
      color: var(--text);
      outline: none;
      transition: border-color .2s ease, box-shadow .2s ease;
    }

    textarea {
      min-height: 120px;
      resize: vertical;
    }

    input:focus, select:focus, textarea:focus {
      border-color: var(--teal);
      box-shadow: 0 0 0 4px rgba(0,108,96,.10);
    }

    footer {
      background: #073B36;
      color: rgba(255,255,255,.78);
      padding: 56px 0 28px;
    }

    .footer-grid {
      display: grid;
      grid-template-columns: 1.3fr .75fr .85fr .95fr;
      gap: 34px;
      padding-bottom: 38px;
      border-bottom: 1px solid rgba(255,255,255,.12);
    }

    .footer-logo {
      width: 290px;
      margin-bottom: 18px;
      filter: drop-shadow(0 10px 18px rgba(0,0,0,.12));
    }

    footer h4 {
      color: var(--gold);
      font-size: 13px;
      font-weight: 800;
      letter-spacing: .12em;
      text-transform: uppercase;
      margin-bottom: 16px;
    }

    .footer-links {
      display: grid;
      gap: 10px;
      font-size: 14px;
    }

    .footer-links a:hover {
      color: white;
    }

    .footer-bottom {
      display: flex;
      justify-content: space-between;
      gap: 20px;
      padding-top: 24px;
      font-size: 13px;
    }

    @media (max-width: 1120px) {
      .hero-grid,
      .expertise-grid,
      .contact-grid,
      .footer-grid {
        grid-template-columns: 1fr;
      }

      .services-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .metrics {
        grid-template-columns: repeat(2, 1fr);
      }

      .steps {
        grid-template-columns: repeat(2, 1fr);
      }

      .step {
        border-right: 0;
        border-bottom: 1px solid var(--border);
      }

      .step:last-child,
      .step:nth-last-child(2) {
        border-bottom: 0;
      }
    }

    @media (max-width: 860px) {
      .nav-links {
        display: none;
      }

      .mobile-menu-btn {
        display: grid;
        place-items: center;
      }

      .brand img {
        width: 235px;
      }

      .hero {
        padding-top: 58px;
      }

      .hero-grid,
      .hero-proof,
      .services-grid,
      .metrics,
      .steps {
        grid-template-columns: 1fr;
      }

      .hero-visual {
        min-height: auto;
        padding: 24px;
      }

      .hero-visual .orbital,
      .hero-visual .core-ring,
      .hero-visual .core-center {
        position: relative;
        left: auto;
        top: auto;
        transform: none;
        margin: 0 auto;
      }

      .hero-visual .orbital {
        width: min(100%, 420px);
        height: 420px;
        margin-top: 18px;
      }

      .hero-visual .core-ring {
        width: 240px;
        height: 240px;
        margin-top: -330px;
      }

      .hero-visual .core-center {
        width: 170px;
        height: 170px;
        margin-top: -205px;
        margin-bottom: 24px;
      }

      .visual-card {
        position: relative;
        left: auto;
        right: auto;
        top: auto;
        bottom: auto;
        max-width: none;
        width: 100%;
        margin-bottom: 14px;
      }

      .card-market, .card-deploy, .card-sales, .card-crm {
        max-width: none;
      }

      .footer-bottom {
        flex-direction: column;
      }
    }

    @media (max-width: 520px) {
      .container {
        width: min(100% - 28px, var(--max));
      }

      .brand img {
        width: 205px;
      }

      h1 {
        font-size: 38px;
      }

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

      .btn {
        width: 100%;
      }

      .panel,
      .contact-card {
        padding: 26px;
      }

      .footer-logo {
        width: 230px;
      }
    }
  
    /* --- CORRECTION CIBLÉE : on garde le design V2, on corrige seulement le visuel du hero --- */

    .brand img {
      background: transparent !important;
    }

    .footer-logo {
      background: transparent !important;
      border-radius: 0 !important;
      padding: 0 !important;
    }

    .transparent-footer-logo {
      filter: none !important;
    }

    .hero-visual {
      isolation: isolate;
    }

    .hero-visual::before {
      z-index: 0;
      opacity: .55;
      pointer-events: none;
    }

    .core-circle {
      z-index: 1;
      opacity: .42;
      width: 280px;
      height: 280px;
      pointer-events: none;
      box-shadow: none;
      background:
        radial-gradient(circle, rgba(255,255,255,.72) 0 35%, rgba(15,143,130,.10) 36% 64%, rgba(255,255,255,0) 65% 100%);
    }

    .capsule {
      opacity: .78;
      width: 118px;
      height: 48px;
      pointer-events: none;
    }

    .visual-card {
      z-index: 3;
      padding: 18px 20px;
      box-shadow: 0 16px 34px rgba(0, 91, 82, .10);
    }

    .visual-card strong {
      font-size: 24px;
      line-height: 1.08;
    }

    .visual-card p {
      font-size: 13.5px;
      line-height: 1.45;
    }

    .v1 {
      left: 34px;
      top: 52px;
      width: 260px;
    }

    .v2 {
      right: 34px;
      top: 120px;
      width: 282px;
    }

    .v3 {
      left: 44px;
      bottom: 58px;
      width: 300px;
    }

    .v4 {
      right: 42px;
      bottom: 66px;
      width: 235px;
    }

    /* iPad/tablette : on garde le même look, mais on évite que les cartes se chevauchent. */
    @media (max-width: 1240px) {
      .hero-grid {
        grid-template-columns: 1fr;
        gap: 44px;
      }

      .hero-visual {
        max-width: 850px;
        width: 100%;
        margin: 0 auto;
      }
    }

    @media (max-width: 860px) {
      .hero-visual {
        min-height: auto;
        padding: 24px;
        display: grid;
        gap: 14px;
      }

      .hero-visual::before,
      .core-circle {
        display: none;
      }

      .visual-card {
        position: relative;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: 100% !important;
        margin: 0 !important;
      }

      .visual-core,
      .core-circle {
        display: none;
      }

      .visual-card strong {
        font-size: 24px;
      }
    }

    @media (max-width: 520px) {
      .hero h1 {
        font-size: 38px;
      }

      .hero p,
      .hero-text {
        font-size: 16px;
      }
    }

  
    /* Correction ciblée du logo en bas de page */
    .footer-logo,
    .transparent-footer-logo {
      background: rgba(255, 255, 255, 0.96) !important;
      padding: 10px 14px !important;
      border-radius: 16px !important;
      width: 290px !important;
      box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12) !important;
      display: inline-block !important;
    }

    @media (max-width: 520px) {
      .footer-logo,
      .transparent-footer-logo {
        width: 235px !important;
      }
    }

  
    /* Correction ciblée de la section visuelle du hero.
       On garde le design du site et on règle seulement l'organisation
       des cartes pour éviter les chevauchements sur iPad et écrans intermédiaires. */
    @media (max-width: 1366px) {
      .hero-grid {
        grid-template-columns: 1fr;
        gap: 44px;
      }

      .hero-visual {
        max-width: 860px;
        width: 100%;
        margin: 0 auto;
        min-height: auto;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 16px;
        padding: 32px;
        align-content: center;
        isolation: isolate;
      }

      .hero-visual::before {
        z-index: 0;
        opacity: 0.42;
        inset: 42px;
        pointer-events: none;
      }

      .core-circle {
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%);
        width: 280px;
        height: 280px;
        z-index: 1;
        opacity: 0.34;
        box-shadow: none;
        pointer-events: none;
      }

      .capsule {
        width: 118px;
        height: 48px;
        opacity: 0.82;
      }

      .visual-card {
        position: relative;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: auto !important;
        min-height: 188px;
        z-index: 3;
        padding: 20px;
      }

      .v1,
      .v2,
      .v3,
      .v4 {
        margin: 0;
      }

      .visual-card strong {
        font-size: 25px;
        line-height: 1.08;
      }

      .visual-card p {
        font-size: 14px;
        line-height: 1.45;
      }
    }

    @media (max-width: 860px) {
      .hero-visual {
        grid-template-columns: 1fr;
        padding: 24px;
      }

      .hero-visual::before {
        opacity: 0.22;
      }

      .core-circle {
        display: none;
      }

      .visual-card {
        min-height: auto;
      }

      .visual-card strong {
        font-size: 24px;
      }
    }

  
    /* Ajustements demandés : header plus compact et paragraphe accueil centré */
    .nav {
      min-height: 68px !important;
    }

    .topbar .container.nav {
      padding-top: 4px;
      padding-bottom: 4px;
    }

    .nav-links .btn {
      min-height: 42px;
    }

    .hero-text {
      max-width: 620px;
      margin-left: auto;
      margin-right: auto;
      text-align: center;
    }

    @media (max-width: 860px) {
      .nav {
        min-height: 64px !important;
      }

      .topbar .container.nav {
        padding-top: 2px;
        padding-bottom: 2px;
      }

      .hero-text {
        max-width: 100%;
      }
    }

  
    /* Modification unique demandée : fond clair derrière le logo du bas de page */
    footer .footer-logo,
    footer .transparent-footer-logo {
      background: rgba(255, 255, 255, 0.96) !important;
      padding: 10px 14px !important;
      border-radius: 16px !important;
      display: inline-block !important;
      box-shadow: 0 10px 24px rgba(0, 0, 0, 0.10) !important;
    }

  
    /* Modification unique demandée : réduire la hauteur du header */
    .nav {
      min-height: 64px !important;
    }

    .topbar .container.nav {
      padding-top: 2px !important;
      padding-bottom: 2px !important;
    }

    .nav-links .btn {
      min-height: 42px !important;
    }

    @media (max-width: 860px) {
      .nav {
        min-height: 60px !important;
      }

      .topbar .container.nav {
        padding-top: 1px !important;
        padding-bottom: 1px !important;
      }
    }

  
    /* Modification unique : réduire la hauteur réelle du header */
    .topbar {
      min-height: 58px !important;
    }

    .nav,
    .topbar .nav,
    .topbar .container.nav {
      height: 58px !important;
      min-height: 58px !important;
      padding-top: 0 !important;
      padding-bottom: 0 !important;
      align-items: center !important;
    }

    .brand img {
      width: 210px !important;
      max-height: 46px !important;
      object-fit: contain !important;
    }

    .nav-links {
      align-items: center !important;
    }

    .nav-links .btn {
      min-height: 38px !important;
      height: 38px !important;
      padding: 0 20px !important;
    }

    .nav-links a.active::after {
      bottom: -8px !important;
    }

    @media (max-width: 860px) {
      .topbar {
        min-height: 54px !important;
      }

      .nav,
      .topbar .nav,
      .topbar .container.nav {
        height: 54px !important;
        min-height: 54px !important;
      }

      .brand img {
        width: 185px !important;
        max-height: 42px !important;
      }
    }

  
    /* Correction unique : garder le header réduit, mais rendre le logo visible */
    .topbar {
      min-height: 64px !important;
    }

    .nav,
    .topbar .nav,
    .topbar .container.nav {
      height: 64px !important;
      min-height: 64px !important;
      padding-top: 0 !important;
      padding-bottom: 0 !important;
      align-items: center !important;
      overflow: visible !important;
    }

    .brand {
      display: flex !important;
      align-items: center !important;
      overflow: visible !important;
    }

    .brand img {
      width: 255px !important;
      max-height: 58px !important;
      height: auto !important;
      object-fit: contain !important;
      display: block !important;
    }

    .nav-links .btn {
      min-height: 40px !important;
      height: 40px !important;
    }

    @media (max-width: 860px) {
      .topbar {
        min-height: 60px !important;
      }

      .nav,
      .topbar .nav,
      .topbar .container.nav {
        height: 60px !important;
        min-height: 60px !important;
      }

      .brand img {
        width: 220px !important;
        max-height: 54px !important;
      }
    }

  
    /* Correction unique : visibilité du logo en haut de page */
    header.topbar .brand img {
      width: 300px !important;
      min-width: 300px !important;
      max-width: 300px !important;
      height: auto !important;
      max-height: none !important;
      object-fit: contain !important;
      opacity: 1 !important;
      visibility: visible !important;
      display: block !important;
      transform: none !important;
    }

    header.topbar .brand {
      overflow: visible !important;
      flex-shrink: 0 !important;
    }

    header.topbar .container.nav {
      overflow: visible !important;
    }

    @media (max-width: 860px) {
      header.topbar .brand img {
        width: 230px !important;
        min-width: 230px !important;
        max-width: 230px !important;
      }
    }

  
    /* Correction unique : éviter le chevauchement des cartes du visuel d'accueil sur laptop */
    @media (max-width: 1550px) and (min-width: 861px) {
      .hero-visual {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 16px !important;
        align-content: center !important;
        padding: 28px !important;
        min-height: 500px !important;
        isolation: isolate !important;
      }

      .hero-visual::before {
        z-index: 0 !important;
        opacity: 0.35 !important;
        pointer-events: none !important;
      }

      .core-circle {
        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) !important;
        width: 250px !important;
        height: 250px !important;
        z-index: 1 !important;
        opacity: 0.28 !important;
        pointer-events: none !important;
        box-shadow: none !important;
      }

      .visual-card {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: auto !important;
        max-width: none !important;
        min-height: 165px !important;
        padding: 16px 18px !important;
        z-index: 3 !important;
      }

      .v1,
      .v2,
      .v3,
      .v4 {
        margin: 0 !important;
      }

      .visual-card strong {
        font-size: 22px !important;
        line-height: 1.06 !important;
      }

      .visual-card p {
        font-size: 13px !important;
        line-height: 1.4 !important;
      }

      .mini-bars {
        height: 44px !important;
        margin-top: 8px !important;
      }
    }

  
    /* Correction définitive : organisation propre des cartes du visuel d'accueil sur PC */
    .hero-visual {
      position: relative !important;
      min-height: 500px !important;
      padding: 28px !important;
      isolation: isolate !important;
      overflow: hidden !important;
    }

    .hero-visual::before {
      z-index: 0 !important;
      opacity: 0.32 !important;
      pointer-events: none !important;
    }

    .core-circle,
    .visual-core {
      position: absolute !important;
      left: 50% !important;
      top: 50% !important;
      transform: translate(-50%, -50%) !important;
      width: 235px !important;
      height: 235px !important;
      z-index: 1 !important;
      opacity: 0.24 !important;
      pointer-events: none !important;
      box-shadow: none !important;
    }

    .capsule {
      width: 108px !important;
      height: 44px !important;
      opacity: 0.75 !important;
    }

    .visual-card {
      position: absolute !important;
      z-index: 3 !important;
      padding: 15px 17px !important;
      min-height: auto !important;
      max-width: none !important;
      box-shadow: 0 14px 30px rgba(0, 91, 82, 0.09) !important;
    }

    .visual-card strong {
      font-size: 21px !important;
      line-height: 1.07 !important;
      margin-bottom: 6px !important;
    }

    .visual-card small {
      font-size: 10px !important;
      margin-bottom: 7px !important;
    }

    .visual-card p {
      font-size: 12.5px !important;
      line-height: 1.35 !important;
    }

    .mini-bars {
      height: 38px !important;
      margin-top: 8px !important;
    }

    .mini-bars span {
      width: 14px !important;
    }

    .mini-bars span:nth-child(1) { height: 14px !important; }
    .mini-bars span:nth-child(2) { height: 28px !important; }
    .mini-bars span:nth-child(3) { height: 34px !important; }
    .mini-bars span:nth-child(4) { height: 38px !important; }

    .v1,
    .card-market {
      left: 24px !important;
      top: 40px !important;
      right: auto !important;
      bottom: auto !important;
      width: 235px !important;
    }

    .v2,
    .card-deploy {
      right: 24px !important;
      top: 82px !important;
      left: auto !important;
      bottom: auto !important;
      width: 255px !important;
    }

    .v3,
    .card-sales {
      left: 24px !important;
      bottom: 42px !important;
      right: auto !important;
      top: auto !important;
      width: 270px !important;
    }

    .v4,
    .card-crm {
      right: 24px !important;
      bottom: 42px !important;
      left: auto !important;
      top: auto !important;
      width: 225px !important;
    }

    @media (max-width: 860px) {
      .hero-visual {
        min-height: auto !important;
        padding: 24px !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
      }

      .core-circle,
      .visual-core,
      .hero-visual::before {
        display: none !important;
      }

      .visual-card,
      .v1,
      .v2,
      .v3,
      .v4,
      .card-market,
      .card-deploy,
      .card-sales,
      .card-crm {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: 100% !important;
      }
    }

    /* Ajustements ciblés demandés : cohérence du CTA et centrage du titre */
    .nav-links .btn {
      white-space: nowrap !important;
      flex-shrink: 0 !important;
    }

    .hero h1 {
      margin-left: auto;
      margin-right: auto;
      text-align: center;
    }

    .hero-line {
      margin-left: auto;
      margin-right: auto;
    }

    /* Harmonisation des quatre cartes autour du visuel central */
    @media (min-width: 861px) {
      .hero-visual {
        min-height: 540px !important;
      }

      .hero-visual .visual-card {
        width: 255px !important;
        height: 190px !important;
        min-height: 190px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-start !important;
      }

      .hero-visual .card-market,
      .hero-visual .card-sales {
        left: 24px !important;
        right: auto !important;
      }

      .hero-visual .card-deploy,
      .hero-visual .card-crm {
        right: 24px !important;
        left: auto !important;
      }

      .hero-visual .card-market,
      .hero-visual .card-deploy {
        top: 40px !important;
        bottom: auto !important;
      }

      .hero-visual .card-sales,
      .hero-visual .card-crm {
        top: auto !important;
        bottom: 40px !important;
      }
    }

    /* Sur grand écran, le visuel partage la ligne avec le texte :
       conserver une séparation nette entre les deux colonnes de cartes. */
    @media (min-width: 1367px) {
      .hero-visual .visual-card {
        width: calc((100% - 72px) / 2) !important;
      }
    }

    .language-switch {
      display: inline-flex;
      align-items: center;
      gap: 4px;
      padding: 4px;
      border: 1px solid rgba(0,108,96,.22);
      border-radius: 999px;
      background: rgba(255,255,255,.75);
      white-space: nowrap;
    }

    .language-switch button {
      min-width: 38px;
      height: 32px;
      padding: 0 10px;
      border: 0;
      border-radius: 999px;
      background: transparent;
      color: var(--teal);
      font: inherit;
      font-size: 12px;
      font-weight: 800;
      cursor: pointer;
    }

    .language-switch button.active {
      background: var(--teal);
      color: var(--white);
    }

    .mobile-panel .language-switch {
      width: fit-content;
      margin: 4px 0;
    }

    .form-privacy-note {
      padding: 14px 16px;
      border: 1px solid rgba(0,108,96,.18);
      border-radius: 14px;
      background: var(--teal-soft);
      color: var(--muted);
      font-size: 12.5px;
      line-height: 1.5;
    }

    .form-privacy-note a,
    .marketing-consent a {
      color: var(--teal-dark);
      font-weight: 800;
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .form-status {
      min-height: 24px;
      margin: 0;
      padding: 0 2px;
      color: var(--muted);
      font-size: 13px;
      font-weight: 700;
      line-height: 1.5;
    }

    .form-status[data-state="success"] {
      color: var(--teal-dark);
    }

    .form-status[data-state="error"] {
      color: #9b2c2c;
    }

    .form-honeypot,
    .form-submit-frame {
      position: absolute !important;
      width: 1px !important;
      height: 1px !important;
      overflow: hidden !important;
      clip: rect(0 0 0 0) !important;
      clip-path: inset(50%) !important;
      white-space: nowrap !important;
    }

    .contact-card button:disabled {
      cursor: wait;
      opacity: .72;
    }

    .marketing-consent {
      display: grid;
      grid-template-columns: 20px 1fr;
      gap: 10px;
      align-items: start;
      color: var(--muted);
      font-size: 12.5px;
      line-height: 1.45;
    }

    .marketing-consent input {
      width: 18px;
      height: 18px;
      margin-top: 1px;
      accent-color: var(--teal);
    }

    .footer-legal-links {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }

    .footer-legal-links a:hover {
      color: var(--white);
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .legal-overlay {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 1000;
      overflow-y: auto;
      padding: 36px 20px;
      background: rgba(0, 50, 45, .72);
      backdrop-filter: blur(12px);
    }

    .legal-overlay:target {
      display: block;
    }

    .legal-document {
      width: min(900px, 100%);
      margin: 0 auto;
      padding: clamp(28px, 5vw, 58px);
      border: 1px solid var(--border);
      border-radius: var(--radius-xl);
      background: var(--cream-light);
      box-shadow: var(--shadow-lg);
    }

    .legal-close {
      position: sticky;
      top: 0;
      float: right;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 42px;
      height: 42px;
      margin: -12px -12px 12px 18px;
      border-radius: 999px;
      background: var(--teal);
      color: var(--white);
      font-size: 22px;
      font-weight: 800;
    }

    .legal-document h1 {
      max-width: none;
      margin: 0 0 12px;
      text-align: left;
      font-size: clamp(34px, 5vw, 54px);
      line-height: 1.08;
    }

    .legal-document h2 {
      margin: 32px 0 10px;
      font-size: 25px;
    }

    .legal-document h3 {
      margin: 22px 0 8px;
      font-size: 19px;
    }

    .legal-document p,
    .legal-document li {
      color: var(--muted);
      font-size: 15px;
      line-height: 1.7;
    }

    .legal-document ul {
      margin: 10px 0 18px 22px;
    }

    .legal-document a:not(.legal-close) {
      color: var(--teal-dark);
      font-weight: 800;
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .legal-meta {
      margin-bottom: 26px;
      color: var(--gold-dark) !important;
      font-weight: 800;
    }

    .legal-en {
      display: none;
    }

    html[lang="en"] .legal-fr {
      display: none;
    }

    html[lang="en"] .legal-en {
      display: block;
    }

    @media (max-width: 520px) {
      .legal-overlay {
        padding: 12px;
      }

      .legal-document {
        padding: 24px 20px 34px;
        border-radius: 20px;
      }
    }

    .linkedin-fab,
    .linkedin-icon-link {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      color: #fff !important;
      background: var(--teal);
      border: 1px solid rgba(255, 255, 255, 0.72);
      box-shadow: 0 12px 28px rgba(0, 91, 82, 0.22);
      transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
    }

    .linkedin-fab:hover,
    .linkedin-icon-link:hover {
      color: #fff !important;
      background: var(--teal-dark);
      transform: translateY(-2px);
      box-shadow: 0 16px 32px rgba(0, 91, 82, 0.28);
    }

    .linkedin-fab:focus-visible,
    .linkedin-icon-link:focus-visible {
      outline: 3px solid var(--gold);
      outline-offset: 3px;
    }

    .linkedin-fab {
      position: fixed;
      right: 20px;
      bottom: 20px;
      z-index: 90;
      width: 50px;
      height: 50px;
      border-radius: 50%;
    }

    .linkedin-fab svg {
      width: 23px;
      height: 23px;
      fill: currentColor;
    }

    .linkedin-icon-link {
      width: fit-content;
      min-height: 40px;
      gap: 9px;
      padding: 8px 14px;
      border-radius: 999px;
      font-size: 13px;
      font-weight: 800;
    }

    .linkedin-icon-link svg {
      width: 18px;
      height: 18px;
      fill: currentColor;
      flex: 0 0 auto;
    }

    .mobile-social-links {
      display: flex;
      align-items: center;
      margin: 4px 0;
    }

    .footer-linkedin {
      margin-top: 4px;
    }

    @media (max-width: 520px) {
      .linkedin-fab {
        right: 14px;
        bottom: 14px;
        width: 46px;
        height: 46px;
      }
    }
