.hf-footer, .hf-footer * , .hf-footer *::before, .hf-footer *::after { box-sizing: border-box; }
  .hf-footer :is(img,svg){ display:block; max-width:100%; height:auto; }

  .hf-footer{
    --hf-ink: #000000;
    --hf-muted: #586273;
    --hf-line: #D3D3D3;
    --hf-bg: #FFFFFF;
    --hf-card: #FFFFFF;
    --hf-accent-1: #10367A;
    --hf-accent-2: #D3D3D3;
    --hf-accent-3: #FE5716;
    --hf-shadow: 0 18px 40px rgba(20, 30, 50, .08);
    --hf-r: 18px;             /* radius */
    --hf-s: clamp(16px, 1.5vw, 22px); /* spacing unit */

    color: var(--hf-ink);
    background:
      radial-gradient(100% 80% at 10% 0%, #eef0ff 0%, transparent 55%),
      radial-gradient(100% 80% at 100% 0%, #e6fff6 0%, transparent 55%),
      var(--hf-bg);
    font: 15px/1.65 ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial;
    position: relative; isolation: isolate;
  }

  /* Courbe d’ancrage haut (se fond avec le contenu précédent) */
  .hf-arc{
    position: relative; height: 60px; overflow: hidden;
  }
  .hf-arc svg{ width: 100%; height: 100%; display:block; }

  .hf-wrap{ max-width: 1200px; margin: 0 auto; padding: clamp(24px, 4vw, 56px) 22px; position: relative; z-index: 1; }

  /* ==== Bande CTA harmonisée (intégrée, pas criarde) ==== */
  .hf-cta{
    display:flex; align-items:center; justify-content:space-between; gap: var(--hf-s); flex-wrap:wrap;
    background: linear-gradient(180deg, #fff, #fbfcff);
    border: 1.5px solid var(--hf-line); border-radius: calc(var(--hf-r) + 2px);
    padding: calc(var(--hf-s) * .9) var(--hf-s);
    box-shadow: var(--hf-shadow);
  }
  .hf-cta__title{
    margin: 0; font-weight: 900; letter-spacing:.2px;
    font-size: clamp(1.1rem, 1rem + 1.2vw, 1.7rem);
  }
  .hf-cta__sub{ margin: 4px 0 0; color: var(--hf-muted); max-width: 60ch; }
  .hf-cta__actions{ display:flex; gap:10px; flex-wrap:wrap; }
  .hf-btn{
    appearance:none; -webkit-appearance:none;
    display:inline-flex; align-items:center; gap:.55rem;
    padding:.85rem 1.05rem; font-weight:900; text-decoration:none; cursor:pointer;
    border-radius: 999px; border: 1px solid var(--hf-line);
    color: #0b0e12; background: linear-gradient(90deg, var(--hf-accent-1), var(--hf-accent-2), var(--hf-accent-3));
    box-shadow: 0 10px 24px rgba(108,127,255,.15);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
  }
  .hf-btn:hover{ transform: translateY(-1px); filter: saturate(1.05); box-shadow: 0 16px 36px rgba(108,127,255,.22); }
  .hf-btn--ghost{
    background: #fff; color: var(--hf-ink);
    border: 1.5px solid var(--hf-line);
  }
  .hf-btn--ghost:hover{ background: #fefefe; }

  /* ==== Grille principale ==== */
  .hf-grid{
    display:grid; gap: var(--hf-s); margin-top: var(--hf-s);
    grid-template-columns: 1.2fr 1fr 1fr 1.2fr;
  }
  @media (max-width: 1000px){ .hf-grid{ grid-template-columns: 1fr 1fr; } }
  @media (max-width: 640px){ .hf-grid{ grid-template-columns: 1fr; } }

  /* Carte générique */
  .hf-card{
    background: var(--hf-card);
    border: 1.5px solid var(--hf-line);
    border-radius: var(--hf-r);
    padding: var(--hf-s);
    box-shadow: var(--hf-shadow);
  }

  /* Marque */
  .hf-brand .hf-logo{
    display:flex; align-items:center; gap:10px; font-weight:900; letter-spacing:.2px;
    font-size: clamp(18px, 1.2vw + 14px, 22px);
  }
  .hf-mark{
    width:36px; height:36px; border-radius: 11px; display:grid; place-items:center;
    background: conic-gradient(from 0deg, var(--hf-accent-1), var(--hf-accent-2), var(--hf-accent-3), var(--hf-accent-1));
    box-shadow: 0 0 0 2px #fff, 0 8px 28px rgba(108,127,255,.25);
  }
  .hf-brand p{ color: var(--hf-muted); margin: 10px 0 0; max-width: 56ch; }

  /* Colonnes de liens */
  .hf-col h4{
    margin: 2px 0 10px; font-size: .9rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 800;
  }
  .hf-links{ list-style: none; margin: 0; padding: 0; display:grid; gap: 8px; }
  .hf-link{
    color: var(--hf-ink); text-decoration: none;
    display:inline-flex; align-items:center; gap:.45rem;
    border-bottom: 1px dashed transparent;
    transition: color .15s ease, border-color .15s ease, transform .15s ease;
  }
  .hf-link:hover{ color: var(--hf-accent-2); border-color: var(--hf-accent-2); transform: translateX(2px); }
  .hf-link svg{ width:14px; height:14px }

  /* Newsletter sobre et cohérente */
  .hf-news h4{ margin: 0 0 8px; font-size: 1rem; }
  .hf-news p{ margin: 0 0 10px; color: var(--hf-muted); }
  .hf-form{ display:flex; gap: 10px; flex-wrap: wrap; }
  .hf-input{
    flex: 1 1 280px; min-width: 220px;
    border: 1.5px solid var(--hf-line); border-radius: 999px;
    padding: .85rem 1rem; background: #fff; color: var(--hf-ink);
    outline: none; font-size: .95rem;
    transition: border-color .15s ease, box-shadow .15s ease;
  }
  .hf-input:focus{ border-color: var(--hf-accent-2); box-shadow: 0 0 0 3px rgba(155,114,255,.18); }
  .hf-submit{
    border: none; cursor: pointer; border-radius: 999px;
    padding: .9rem 1.1rem; font-weight: 900; color: #0b0e12;
    background: linear-gradient(90deg, var(--hf-accent-1), var(--hf-accent-3));
    box-shadow: 0 10px 22px rgba(79,209,197,.22);
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
  }
  .hf-submit:hover{ transform: translateY(-1px); filter: saturate(1.03); box-shadow: 0 16px 30px rgba(79,209,197,.28); }

  /* Carte contact harmonisée */
  .hf-meta{ display:grid; gap: 8px; margin-top: 8px; }
  .hf-meta a{ color: var(--hf-ink); text-decoration: none; }
  .hf-meta a:hover{ text-decoration: underline; text-decoration-color: var(--hf-accent-2); }
  .hf-socials{ display: flex; gap: 10px; margin-top: 12px; }
  .hf-social{
    width: 38px; height: 38px; border-radius: 12px; display:grid; place-items:center;
    background: linear-gradient(180deg, #fff, #f6f9ff);
    border: 1px solid var(--hf-line);
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
  }
  .hf-social:hover{ transform: translateY(-1px); box-shadow: var(--hf-shadow); background: #ffffff; }

  /* Bande basse */
  .hf-divider{ height:1px; margin: var(--hf-s) 0; background: linear-gradient(90deg, transparent, var(--hf-line), transparent); }
  .hf-bottom{
    display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between;
    color: var(--hf-muted); font-size: .93rem;
  }
  .hf-legal{ display:flex; gap: 12px; flex-wrap: wrap; }
  .hf-legal a{ color: var(--hf-muted); text-decoration: none; border-bottom: 1px solid transparent; }
  .hf-legal a:hover{ color: var(--hf-ink); border-color: var(--hf-ink); }

  /* Accessibilité focus */
  .hf-footer :is(a, button, input):focus-visible{
    outline: 2px solid var(--hf-accent-1); outline-offset: 3px; border-radius: 10px;
  }

  @media (prefers-reduced-motion: reduce){
    .hf-btn, .hf-link, .hf-submit, .hf-social{ transition: none; }
  }