/* Technology partners: marquee of featured brands plus a full directory.
   Each chip carries its vendor colour on --brand. */

.partners-section {
  background: var(--hg-bg-2);
  border-top: 1px solid var(--hg-border);
  border-bottom: 1px solid var(--hg-border);
}

/* ── Chips ──────────────────────────────────────────────────── */
.partner-chip {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 62px;
  padding: 12px 22px;
  border: 1px solid rgba(255,255,255,.7);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(9,6,26,.28);
}
.partner-chip img { max-height: 34px; width: auto; object-fit: contain; }
.partner-word {
  color: var(--brand, #2a2450);
  font-family: Inter, "Nunito Sans", sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -.02em;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}

/* ── Marquee ────────────────────────────────────────────────── */
.partner-marquee {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 4.5rem;
  /* Fade the rows out at both edges instead of cutting them off. */
  -webkit-mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(to right, transparent, #000 8%, #000 92%, transparent);
}
.partner-marquee-row { overflow: hidden; }
.partner-marquee-track {
  display: flex;
  gap: 1rem;
  width: max-content;
  animation: partner-scroll 46s linear infinite;
}
.partner-marquee-reverse { animation-direction: reverse; }
.partner-marquee-row:hover .partner-marquee-track { animation-play-state: paused; }
.partner-marquee-track .partner-chip { flex: 0 0 auto; min-width: 168px; }
@keyframes partner-scroll {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* ── Directory ──────────────────────────────────────────────── */
.partner-groups { display: flex; flex-direction: column; gap: 3rem; }
.partner-group-head { margin-bottom: 1.25rem; }
.partner-group-head h3 {
  font-size: 1.15rem;
  font-weight: 900;
  letter-spacing: .01em;
  margin-bottom: .3rem;
}
.partner-group-head p { color: var(--hg-text-muted); font-size: .92rem; }
.partner-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: .9rem;
}
.partner-chip-link {
  min-height: 66px;
  padding: 12px 16px;
  transition: transform .25s var(--hg-ease), box-shadow .25s, border-color .25s;
}
.partner-chip-link .partner-word { white-space: normal; font-size: 1rem; }
.partner-chip-link:hover,
.partner-chip-link:focus-visible {
  transform: translateY(-3px);
  border-color: var(--brand, var(--hg-accent));
  box-shadow: 0 14px 32px rgba(9,6,26,.42);
}
.partner-chip-link:focus-visible { outline: 2px solid var(--hg-accent-light); outline-offset: 3px; }

.partner-disclaimer {
  margin-top: 3.5rem;
  color: var(--hg-text-muted);
  font-size: .85rem;
  line-height: 1.7;
  text-align: center;
}

@media (max-width: 768px) {
  .partner-marquee { margin-bottom: 3rem; }
  .partner-marquee-track { animation-duration: 34s; }
  .partner-marquee-track .partner-chip { min-width: 142px; }
  .partner-chip { min-height: 56px; padding: 10px 16px; }
  .partner-word { font-size: .95rem; }
  .partner-list { grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: .7rem; }
  .partner-groups { gap: 2.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  .partner-marquee-track { animation: none; }
  .partner-marquee-row { overflow-x: auto; }
}
