/* Homepage "Affiliations and collaborations" (tools/build-partners.mjs, lib/home.mjs renderPartners) */
.acs-partners {
  --navy: #071a36; --blue: #1f8fd6; --green: #8dc63f; --muted: #5d6b82; --line: #e4ebf4;
  padding: 90px 0 100px; font-family: "Plus Jakarta Sans", "Inter", system-ui, sans-serif; color: var(--navy); -webkit-font-smoothing: antialiased; overflow: hidden;
}
.acs-partners .acs-partners__head { max-width: 760px; margin: 0 auto 44px; padding: 0 20px; text-align: center; }
.acs-partners .acs-partners__eyebrow { margin: 0 0 12px; font-size: 13px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: var(--blue-ink, #1670b0); }
.acs-partners .acs-partners__h { margin: 0; font-family: inherit; font-size: clamp(28px, 3.6vw, 46px); font-weight: 800; line-height: 1.12; letter-spacing: -.03em; color: var(--navy); text-transform: none; }
.acs-partners .acs-partners__h span { background: linear-gradient(90deg, var(--blue), var(--green)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.acs-partners .acs-partners__p { margin: 16px auto 0; max-width: 560px; font-size: 17px; line-height: 1.6; color: var(--muted); }

/* the strip: two identical tracks side by side, moved left by one track's width, then repeat. The fade at the
   screen edges sits on the still viewport around it, so only the logos move */
.acs-partners .acs-partners__viewport {
  overflow: hidden; padding: 14px 0 26px;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent); mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.acs-partners .acs-partners__strip {
  display: flex; width: max-content; will-change: transform; backface-visibility: hidden;
  animation: acs-partners-glide calc(var(--n, 12) * 3.2s) linear infinite;
}
@media (hover: hover) { .acs-partners .acs-partners__strip:hover { animation-play-state: paused; } }
.acs-partners .acs-partners__strip:focus-within { animation-play-state: paused; }
.acs-partners .acs-partners__track { display: flex; gap: 22px; margin: 0; padding: 0 11px; list-style: none; }
.acs-partners .acs-partners__item { flex: none; margin: 0; padding: 0; list-style: none; }
.acs-partners .acs-partners__item::before { content: none; }
.acs-partners .acs-partners__card {
  display: flex; align-items: center; justify-content: center; width: 200px; height: 108px; padding: 18px 24px; box-sizing: border-box;
  border: 1px solid var(--line); border-radius: 20px; background: #fff; text-decoration: none; color: var(--navy);
  box-shadow: 0 18px 36px -28px rgba(7, 26, 54, .45); transition: transform .35s cubic-bezier(.22, 1, .36, 1), box-shadow .35s, border-color .35s;
}
.acs-partners a.acs-partners__card:hover, .acs-partners a.acs-partners__card:focus-visible { transform: translateY(-4px); border-color: #cfe0f2; box-shadow: 0 24px 40px -26px rgba(7, 26, 54, .5); }
.acs-partners .acs-partners__card img { display: block; max-width: 100%; max-height: 64px; width: auto; height: auto; object-fit: contain; }
.acs-partners .acs-partners__name { font-size: 16px; font-weight: 800; line-height: 1.25; text-align: center; letter-spacing: -.01em; color: var(--navy); }

@keyframes acs-partners-glide { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }

@media (max-width: 767px) {
  .acs-partners { padding: 64px 0 72px; }
  .acs-partners .acs-partners__head { margin-bottom: 30px; }
  .acs-partners .acs-partners__p { font-size: 15px; }
  .acs-partners .acs-partners__track { gap: 14px; padding: 0 7px; }
  .acs-partners .acs-partners__card { width: 150px; height: 86px; padding: 14px 16px; border-radius: 16px; }
  .acs-partners .acs-partners__card img { max-height: 50px; }
  .acs-partners .acs-partners__name { font-size: 14px; }
}

/* no motion: a still, centred grid of every logo */
@media (prefers-reduced-motion: reduce) {
  .acs-partners .acs-partners__viewport { -webkit-mask-image: none; mask-image: none; }
  .acs-partners .acs-partners__strip { width: auto; animation: none; justify-content: center; padding: 0 20px; }
  .acs-partners .acs-partners__track { flex-wrap: wrap; justify-content: center; }
  .acs-partners .acs-partners__track[aria-hidden] { display: none; }
}
