/* ============================================================
   JG CAPITAL — Partners Marquee V24
   Continuous institutional strip.
   Keyboard · pointer · motion preferences pause animation.
   ============================================================ */

/* ── Section shell ──────────────────────────────────────────── */
.partners-section {
  padding: 26px 0 28px;
  overflow: clip;
  background: var(--bg);
  border-top: 1px solid color-mix(in srgb, var(--line) 55%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--line) 55%, transparent);
}

/* ── Heading row ────────────────────────────────────────────── */
.partner-heading {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  min-height: 28px;
  margin-bottom: 18px;
}

.partner-heading h2 {
  margin: 0;
  font-size: 9.5px;
  font-weight: 680;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--muted);
  opacity: .7;
}

/* ── Pause button ───────────────────────────────────────────── */
.partner-pause {
  position: absolute;
  right: 0;
  background: transparent;
  color: var(--muted);
  border: 1px solid var(--line);
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  transition:
    background    var(--duration-fast),
    border-color  var(--duration-fast),
    color         var(--duration-fast);
}

.partner-pause:hover {
  background: var(--surface);
  border-color: color-mix(in srgb, var(--line) 60%, var(--accent));
  color: var(--ink);
}

.partner-pause svg { width: 12px; height: 12px }

/* ── Viewport & track ───────────────────────────────────────── */
.partner-viewport {
  overflow: hidden;
  width: 100%;
  padding-block: 4px;
}

.partner-track {
  display: flex;
  width: max-content;
  align-items: center;
}

.partner-track.is-moving  { will-change: transform }
.partner-track:not(.is-moving) { will-change: auto }

/* ── Partner group ──────────────────────────────────────────── */
.partner-group {
  display: flex;
  width: max-content;
  align-items: center;
  gap: 42px;
  padding-right: 42px;
}

/* ── Individual partner ─────────────────────────────────────── */
.partner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  flex-shrink: 0;
  width: 120px;
  height: 54px;
  flex: 0 0 120px;
  padding: 4px 6px;
  min-height: 54px;
}

.partner img {
  height: 30px;
  width: 100%;
  object-fit: contain;
  mix-blend-mode: normal;

  /* Desaturated by default — institutional restraint */
  filter: grayscale(100%) brightness(.85);
  opacity: .55;
  transition:
    filter   .3s var(--ease),
    opacity  .3s var(--ease);
}

.partner.symbol img { width: 34px }

.partner span {
  color: var(--muted);
  font-size: 10.5px;
  font-weight: 550;
  letter-spacing: .04em;
  opacity: .7;
}

/* Hover: reveal brand color */
.partner:hover img,
.partner:focus-visible img {
  filter: none;
  opacity: .92;
}

/* Dark mode */
[data-theme="dark"] .partner img {
  filter: grayscale(1) brightness(0) invert(1);
  opacity: .45;
}

[data-theme="dark"] .partner:hover img,
[data-theme="dark"] .partner:focus-visible img {
  filter: none;
  opacity: .88;
}

/* ── Static fallback (reduced motion) ───────────────────────── */
.partners-section.motion-static .partner-track {
  display: block;
  width: 100%;
  transform: none !important;
}

.partners-section.motion-static .partner-group {
  width: min(1240px, calc(100% - 40px));
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 16px 26px;
  padding: 0;
  margin: auto;
}

.partners-section.motion-static .partner-group[aria-hidden="true"] {
  display: none;
}

/* ── Mobile ─────────────────────────────────────────────────── */
@media (max-width: 600px) {
  .partner-group {
    gap: 22px;
    padding-right: 22px;
  }

  .partner {
    flex-basis: 108px;
    width: 108px;
  }

  .partner-heading h2 { margin-right: 26px }

  .partner img  { height: 27px }
}