/* ═══════════════════════════════════════════════
   ECA Logos Carousel — carousel.css v1.0.0
   Espace Courtage Assurance — monespacecourtier.fr
═══════════════════════════════════════════════ */
.eca-logos { width: 100%; overflow: hidden; }
.eca-logos *, .eca-logos *::before, .eca-logos *::after {
  box-sizing: border-box; margin: 0; padding: 0;
}

.eca-logos .lg-section {
  padding: 52px 0 56px;
  position: relative;
  overflow: hidden;
}

.eca-logos .lg-bg {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #ddf1fc 0%, #eaf7fe 45%, #f4fbff 100%);
  pointer-events: none;
}

/* ── Titre / chip ── */
.eca-logos .lg-title {
  text-align: center;
  margin-bottom: 36px;
  position: relative; z-index: 2;
}
.eca-logos .lt-chip {
  display: inline-flex; align-items: center; gap: 7px;
  background: rgba(14,165,233,.10);
  border: 1px solid rgba(14,165,233,.26);
  border-radius: 99px;
  padding: 5px 16px;
  font-family: 'Inter', sans-serif;
  font-size: 11px; font-weight: 700;
  color: #0369a1; letter-spacing: .08em; text-transform: uppercase;
}
.eca-logos .lt-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #0ea5e9;
  animation: ecaLgPulse 2s infinite;
}
@keyframes ecaLgPulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(14,165,233,.6); }
  50%     { box-shadow: 0 0 0 5px rgba(14,165,233,0); }
}

/* ── Rail ── */
.eca-logos .lg-rail-wrap {
  position: relative; z-index: 2;
  display: flex; flex-direction: column; gap: 20px;
  mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}

.eca-logos .lg-row {
  display: flex;
  gap: 20px;
  width: max-content;
  will-change: transform;
}

.eca-logos .lg-row-1 { animation: ecaLgScroll1 28s linear infinite; }
.eca-logos .lg-row-2 { animation: ecaLgScroll2 34s linear infinite; }

.eca-logos .lg-rail-wrap:hover .lg-row-1,
.eca-logos .lg-rail-wrap:hover .lg-row-2 {
  animation-play-state: paused;
}

@keyframes ecaLgScroll1 {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes ecaLgScroll2 {
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}

/* ── Carte logo ── */
.eca-logos .lg-card {
  flex-shrink: 0;
  width: 150px; height: 80px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,0.90);
  border-radius: 14px;
  padding: 10px 16px;
  box-shadow: 0 2px 12px rgba(3,16,31,0.07), 0 1px 3px rgba(3,16,31,0.04);
  transition: transform .28s ease, box-shadow .28s ease, background .28s ease;
  cursor: default;
  position: relative;
  overflow: hidden;
}
.eca-logos .lg-card::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(to bottom, rgba(255,255,255,0.5), transparent);
  border-radius: 14px 14px 0 0;
  pointer-events: none;
}
.eca-logos .lg-card:hover {
  transform: translateY(-5px) scale(1.04);
  box-shadow: 0 8px 28px rgba(14,165,233,0.18), 0 2px 8px rgba(3,16,31,0.08);
  background: rgba(255,255,255,0.92);
}
.eca-logos .lg-card img {
  max-width: 100%; max-height: 52px;
  width: auto; height: auto;
  object-fit: contain;
  filter: grayscale(15%) contrast(1.05);
  transition: filter .28s ease;
  display: block;
}
.eca-logos .lg-card:hover img {
  filter: grayscale(0%) contrast(1.1);
}

/* ── Skeleton chargement ── */
.eca-logos .lg-skeleton {
  width: 150px; height: 80px;
  border-radius: 14px;
  background: linear-gradient(90deg, #e8f4fb 25%, #d0eaf7 50%, #e8f4fb 75%);
  background-size: 200% 100%;
  animation: ecaLgShimmer 1.4s infinite;
  flex-shrink: 0;
}
@keyframes ecaLgShimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* ── Message d'erreur discret ── */
.eca-logos .lg-error {
  text-align: center;
  padding: 24px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: #3a6b8f;
  position: relative; z-index: 2;
}

/* ── Mobile ── */
@media (max-width: 640px) {
  .eca-logos .lg-card    { width: 120px; height: 66px; padding: 8px 12px; }
  .eca-logos .lg-card img{ max-height: 42px; }
  .eca-logos .lg-row     { gap: 14px; }
  .eca-logos .lg-rail-wrap { gap: 14px; }
  .eca-logos .lg-section { padding: 36px 0 40px; }
  .eca-logos .lg-skeleton{ width: 120px; height: 66px; }
}
