/* Préfixé par .erc-files (spécificité ID), uniquement des <div> :
   aucun conflit possible avec le thème ou WPBakery. */

  .erc-files {
    --efd-page: #F4F4F2;
    --efd-ink: #0F1A0E;
    --efd-body: #24281F;
    --efd-line: #D3D3CF;
    --efd-yellow: #E4CA00;
    font-family: 'Source Sans 3', system-ui, -apple-system, "Segoe UI", sans-serif !important;
    background: var(--efd-page);
    color: var(--efd-ink);
    line-height: 1.5;
    /* padding:clamp(40px,4.5vw,60px) clamp(18px,5vw,40px); */
    width: 100%;
    max-width: 100%;
    /* Centrage forcé : le bloc devient lui-même un conteneur flex centré,
     ce qui neutralise tout décalage hérité de la colonne WPBakery ou du thème. */
    display: flex !important;
    justify-content: center !important;
    text-align: left;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .erc-files *,
  .erc-files *::before,
  .erc-files *::after {
    box-sizing: border-box
  }

  .erc-files div,
  .erc-files p,
  .erc-files span,
  .erc-files h2,
  .erc-files h3 {
    margin: 0;
    padding: 0;
    float: none
  }

  /* Largeur de contenu alignée sur les autres blocs du site (1240px).
   Pour élargir ou resserrer, c'est ici et nulle part ailleurs. */
  .erc-files .efd-wrap {
    width: 100%;
    max-width: 1240px;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* ---------- Reveal (cascade identique au template) ---------- */
  .erc-files .efd-reveal {
    opacity: 0;
    transform: translateY(34px);
    transition: opacity .7s cubic-bezier(.4, 0, .2, 1), transform .7s cubic-bezier(.4, 0, .2, 1), box-shadow .3s ease
  }

  .erc-files .efd-reveal.is-in {
    opacity: 1;
    transform: translateY(0)
  }

  @media (prefers-reduced-motion:reduce) {
    .erc-files .efd-reveal {
      opacity: 1 !important;
      transform: none !important;
      transition: box-shadow .3s ease !important
    }
  }

  /* ---------- Haut : texte à gauche, chiffres à droite ---------- */
  .erc-files .efd-top {
    display: flex !important;
    align-items: flex-end;
    justify-content: space-between;
    gap: clamp(40px, 5vw, 72px);
    flex-wrap: wrap;
  }

  .erc-files .efd-lead {
    max-width: 720px;
    flex: 1 1 540px
  }

  .erc-files .efd-badge {
    display: inline-block;
    padding: 9px 22px;
    border: 1.5px solid var(--efd-line);
    border-radius: 999px;
    font-size: 18px;
    font-weight: 500;
    line-height: 1.5;
    color: var(--efd-ink);
    margin-bottom: clamp(20px, 2.4vw, 30px);
    background: transparent;
  }

  .erc-files .efd-title {
    font-size: clamp(30px, 3.6vw, 45px) !important;
    font-weight: 800 !important;
    line-height: 1.05 !important;
    letter-spacing: -0.022em;
    color: var(--efd-ink) !important;
    margin: 0 0 clamp(16px, 1.7vw, 22px) !important;
    font-family: inherit !important;
    text-transform: none !important;
  }

  .erc-files .efd-intro {
    font-size: 18px !important;
    font-weight: 500;
    line-height: 1.55;
    color: var(--efd-body);
    max-width: 620px;
    margin: 0 !important;
  }

  .erc-files .efd-intro b {
    font-weight: 700;
    color: var(--efd-ink)
  }

  .erc-files .efd-stats {
    display: flex !important;
    align-items: stretch;
    gap: clamp(22px, 3vw, 42px);
    padding-bottom: 2px
  }

  .erc-files .efd-num {
    font-size: clamp(30px, 3vw, 44px) !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -0.015em;
    color: var(--efd-ink) !important;
    margin-bottom: clamp(2px, 0.4vw, 5px) !important;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
  }

  .erc-files .efd-label {
    font-size: clamp(14px, .95vw, 17px);
    font-weight: 700;
    line-height: 1.25;
    color: var(--efd-ink)
  }

  .erc-files .efd-divider {
    width: 1.5px;
    background: var(--efd-line);
    align-self: stretch;
    flex-shrink: 0
  }

  /* ---------- Titre de rubrique (sobre, dans l'esprit du template) ---------- */
  .erc-files .efd-group+.efd-group {
    margin-top: clamp(34px, 3.5vw, 50px)
  }

  .erc-files .efd-group-title {
    display: flex !important;
    align-items: center;
    gap: 18px;
    margin: clamp(36px, 4vw, 52px) 0 26px;
  }

  .erc-files .efd-group-title h3 {
    font-size: 24px !important;
    font-weight: 800 !important;
    letter-spacing: -0.01em;
    line-height: 1.2 !important;
    color: var(--efd-ink) !important;
    margin: 0 !important;
    font-family: inherit !important;
    text-transform: none !important;
    white-space: nowrap;
  }

  .erc-files .efd-group-title .efd-rule {
    flex: 1 1 auto;
    height: 1.5px;
    background: var(--efd-line)
  }

  .erc-files .efd-group-title .efd-qty {
    font-size: 15px;
    font-weight: 700;
    color: #6a7075;
    white-space: nowrap;
  }

  /* ---------- Grille : 3 cartes par ligne, format compact ---------- */
  .erc-files .efd-cards {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: clamp(18px, 1.7vw, 28px)
  }

  .erc-files .efd-card {
    background: var(--efd-bg, #008244) !important;
    border-radius: 20px;
    padding: clamp(20px, 1.5vw, 26px);
    min-height: 0;
    display: flex !important;
    flex-direction: column !important;
    color: #fff !important;
    border: none;
    box-shadow: 0 14px 32px -24px rgba(16, 33, 15, .45), 0 3px 10px -8px rgba(16, 33, 15, .25);
  }

  .erc-files .efd-card.is-in:hover {
    transform: translateY(-5px);
    box-shadow: 0 22px 44px -22px rgba(16, 33, 15, .55), 0 6px 16px -10px rgba(16, 33, 15, .3);
  }

  .erc-files .efd-cards .efd-card:nth-child(3n+1) {
    transition-delay: 0s
  }

  .erc-files .efd-cards .efd-card:nth-child(3n+2) {
    transition-delay: .1s
  }

  .erc-files .efd-cards .efd-card:nth-child(3n+3) {
    transition-delay: .2s
  }

  .erc-files .efd-head {
    display: flex !important;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px
  }

  .erc-files .efd-icon {
    color: #fff;
    display: flex;
    flex-shrink: 0
  }

  .erc-files .efd-icon svg {
    width: 28px;
    height: 28px;
    display: block
  }

  .erc-files .efd-name {
    font-size: 19px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.01em;
    color: #fff !important;
    margin: 0 !important;
    font-family: inherit !important;
    text-transform: none !important;
    word-break: break-word;
  }

  .erc-files .efd-desc {
    font-size: 15.5px !important;
    font-weight: 400;
    line-height: 1.45;
    color: rgba(255, 255, 255, .9) !important;
    margin: 0 !important
  }

  .erc-files .efd-tags {
    display: flex !important;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 11px
  }

  .erc-files .efd-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, .16);
    border-radius: 999px;
    padding: 5px 12px;
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .02em;
    color: #fff;
  }

  .erc-files .efd-tag svg {
    width: 13px;
    height: 13px;
    flex-shrink: 0
  }

  .erc-files .efd-push {
    flex: 1 1 auto;
    min-height: 0
  }

  .erc-files .efd-actions {
    display: flex !important;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 16px
  }

  .erc-files .efd-btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 7px;
    border-radius: 999px;
    padding: 10px 17px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    cursor: pointer;
    white-space: nowrap;
    transition: background .2s, color .2s, border-color .2s, transform .2s;
  }

  .erc-files .efd-btn svg {
    width: 15px;
    height: 15px;
    flex-shrink: 0
  }

  .erc-files .efd-preview {
    background: transparent !important;
    color: #fff !important;
    border: 2px solid rgba(255, 255, 255, .6)
  }

  .erc-files .efd-preview:hover {
    background: #fff !important;
    color: var(--efd-ink) !important;
    border-color: #fff;
    transform: translateY(-1px)
  }

  .erc-files .efd-download {
    background: var(--efd-yellow) !important;
    color: #141414 !important;
    border: 2px solid var(--efd-yellow)
  }

  .erc-files .efd-download:hover {
    background: #fff !important;
    border-color: #fff;
    transform: translateY(-1px)
  }

  /* ---------- Bouton final ---------- */
  .erc-files .efd-all-wrap {
    text-align: center;
    margin-top: clamp(36px, 4vw, 52px)
  }

  .erc-files .efd-all {
    display: inline-flex !important;
    align-items: center;
    gap: 11px;
    background: #ad4f2e !important;
    color: #fff !important;
    border: none;
    border-radius: 999px;
    padding: 17px 32px;
    font-size: 17px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none !important;
    cursor: pointer;
    transition: background .2s, transform .2s;
  }

  .erc-files .efd-all:hover {
    background: #8E1D36 !important;
    transform: translateY(-2px)
  }

  .erc-files .efd-all svg {
    width: 19px;
    height: 19px;
    flex-shrink: 0
  }

  /* ---------- Animation des icônes (reprise du template « Information hub ») ----------
   Pulsation lente de l'icône + tracé qui « coule » le long du dessin.
   L'animation ne démarre qu'une fois la carte apparue (.is-in). */
  .erc-files .efd-icon svg {
    transform-origin: center;
    animation: efdIconPulse 4s ease-in-out infinite;
    animation-play-state: paused;
  }

  .erc-files .efd-icon svg path,
  .erc-files .efd-icon svg circle,
  .erc-files .efd-icon svg rect {
    stroke-dasharray: 120 20;
    stroke-dashoffset: 0;
    animation: efdFluidFlow 3s linear infinite;
    animation-play-state: paused;
  }

  .erc-files .efd-card.is-in .efd-icon svg,
  .erc-files .efd-card.is-in .efd-icon svg path,
  .erc-files .efd-card.is-in .efd-icon svg circle,
  .erc-files .efd-card.is-in .efd-icon svg rect {
    animation-play-state: running;
  }

  /* Décalage par colonne : les icônes ne battent pas toutes en même temps */
  .erc-files .efd-cards .efd-card:nth-child(3n+1) .efd-icon svg,
  .erc-files .efd-cards .efd-card:nth-child(3n+1) .efd-icon svg * {
    animation-delay: 0s
  }

  .erc-files .efd-cards .efd-card:nth-child(3n+2) .efd-icon svg,
  .erc-files .efd-cards .efd-card:nth-child(3n+2) .efd-icon svg * {
    animation-delay: .5s
  }

  .erc-files .efd-cards .efd-card:nth-child(3n+3) .efd-icon svg,
  .erc-files .efd-cards .efd-card:nth-child(3n+3) .efd-icon svg * {
    animation-delay: 1s
  }

  @keyframes efdFluidFlow {
    to {
      stroke-dashoffset: -140
    }
  }

  @keyframes efdIconPulse {

    0%,
    100% {
      transform: scale(1);
      filter: drop-shadow(0 0 0 rgba(0, 0, 0, 0))
    }

    50% {
      transform: scale(1.07);
      filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .28))
    }
  }

  @media (prefers-reduced-motion:reduce) {

    .erc-files .efd-icon svg,
    .erc-files .efd-icon svg * {
      animation: none !important;
      stroke-dasharray: none !important;
    }
  }

  /* ---------- Responsive ---------- */
  @media (max-width:1120px) {
    .erc-files .efd-top {
      flex-direction: column;
      align-items: flex-start
    }

    .erc-files .efd-cards {
      grid-template-columns: repeat(2, 1fr)
    }
  }

  @media (max-width:680px) {
    .erc-files .efd-cards {
      grid-template-columns: 1fr
    }

    .erc-files .efd-title br {
      display: none
    }

    .erc-files .efd-actions .efd-btn {
      flex: 1 1 auto
    }

    .erc-files .efd-group-title h3 {
      white-space: normal
    }
  }
