/* A continuous partner strip, using the homepage's type and color palette. */
.pc-partners {
  --partner-surface: #f3f7f8;
  --partner-logo-width: 180px;
  --partner-logo-height: 80px;
  --partner-gap: 48px;
  padding: 5rem 0 4rem;
  background: var(--partner-surface);
  color: var(--pc-navy);
}
.pc-partners-intro { max-width: 44rem; margin: 0 auto 2.5rem; }
.pc-partners-intro h2 { color: var(--pc-navy); }
.pc-partners-intro p { margin: 0; color: #526577; line-height: 1.7; }
.pc-partner-marquee { overflow: hidden; container-type: inline-size; }
.pc-partner-group {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 2rem;
  padding: 0;
  margin: 0;
  list-style: none;
}
/* Size each item to its visible artwork, not an equal-width empty image box.
   Transparent source margins are clipped in CSS; the files stay unchanged. */
.pc-partner-group li {
  position: relative;
  flex: none;
  width: min(var(--partner-logo-width), calc(var(--partner-logo-height) * var(--logo-aspect)));
  aspect-ratio: var(--logo-aspect);
  overflow: hidden;
}
.pc-partner-group img {
  display: block;
  position: absolute;
  max-width: none;
  width: var(--logo-canvas-width, 100%);
  height: var(--logo-canvas-height, 100%);
  left: var(--logo-left, 0%);
  top: var(--logo-top, 0%);
}
.pc-partner-respiplus { --logo-aspect: 0.87544484; }
.pc-partner-mila { --logo-aspect: 3.39504198; }
.pc-partner-nvidia {
  /* Source 450 x 166; visible bounds (0.4, 0.4) to (450, 165.6). */
  --logo-aspect: 2.72154964;
  --logo-canvas-width: 100.088968%;
  --logo-canvas-height: 100.484262%;
  --logo-left: -0.088968%;
  --logo-top: -0.242131%;
}
.pc-partner-can-health {
  /* Source 4500 x 1800; visible bounds (113, 117) to (4387, 1683). */
  --logo-aspect: 2.72924649;
  --logo-canvas-width: 105.287787%;
  --logo-canvas-height: 114.942529%;
  --logo-left: -2.643893%;
  --logo-top: -7.471264%;
}
.pc-partner-centech {
  /* Source 260 x 160; visible bounds (4, 4) to (254, 152). */
  --logo-aspect: 1.68918919;
  --logo-canvas-width: 104%;
  --logo-canvas-height: 108.108108%;
  --logo-left: -1.6%;
  --logo-top: -2.702703%;
}
[data-partner-duplicate] { display: none; }
.pc-partner-marquee.is-animated {
  mask-image: linear-gradient(to right, transparent, #000 6%, #000 94%, transparent);
}
.is-animated .pc-partner-track {
  display: flex;
  width: max-content;
  animation: partner-scroll 30s linear infinite;
}
.is-animated .pc-partner-group {
  display: flex;
  flex: none;
  flex-wrap: nowrap;
  min-width: 100cqw;
  justify-content: space-around;
  gap: var(--partner-gap);
  /* Match the loop seam to every gap within the group. */
  padding-right: var(--partner-gap);
}
.pc-partner-marquee:hover .pc-partner-track,
.pc-partner-marquee:focus-within .pc-partner-track { animation-play-state: paused; }
@keyframes partner-scroll { to { transform: translateX(-50%); } }
@media (max-width: 767px) {
  .pc-partners { --partner-logo-width: 140px; --partner-logo-height: 64px; --partner-gap: 24px; padding: 3rem 0; }
  .pc-partners-intro { margin-bottom: 2rem; }
  .pc-partner-group { gap: 1.5rem; }
  .is-animated .pc-partner-track { animation-duration: 22s; }
}
@media (prefers-reduced-motion: reduce) {
  .is-animated .pc-partner-track { animation: none; }
}
