/* Original partner artwork on an uncluttered, continuously scrollable strip. */
.partner-logos { --partner-slot: 216px; --partner-gap: 36px; padding: 56px 0 64px; background: #fff; }
.home .service-section { padding-bottom: 28px; }
.service-page .service-banner { margin-bottom: 24px; }
.partner-heading { display: grid; grid-template-columns: auto 1fr; grid-template-areas: "eyebrow eyebrow" "title note"; align-items: center; gap: 10px 24px; margin-bottom: 24px; }
.partner-heading .eyebrow { grid-area: eyebrow; display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: .16em; margin: 0; }
.partner-heading .eyebrow::before { content: ''; width: 24px; height: 1px; background: currentColor; }
.partner-heading h2 { grid-area: title; font-size: 25px; font-weight: 700; line-height: 1.6; letter-spacing: .02em; }
.partner-note { grid-area: note; margin: 0; font-size: 13px; line-height: 1.8; color: #65767d; letter-spacing: .02em; }
.partner-viewport { width: 100%; overflow-x: auto; overflow-y: hidden; border-top: 1px solid #e1e7e3; border-bottom: 1px solid #e1e7e3; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: #afbbb5 transparent; }
.partner-viewport:focus-visible { outline: 2px solid #937445; outline-offset: -2px; }
.is-ready .partner-viewport { scrollbar-width: none; cursor: grab; mask-image: linear-gradient(to right, transparent, #000 36px, #000 calc(100% - 36px), transparent); }
.is-ready .partner-viewport::-webkit-scrollbar { display: none; }
.is-ready .partner-viewport:active { cursor: grabbing; }
.partner-track { position: relative; display: flex; gap: var(--partner-gap); width: max-content; }
.partner-group { display: grid; grid-template-rows: repeat(2, auto); grid-auto-flow: column; grid-auto-columns: var(--partner-slot); align-items: center; column-gap: var(--partner-gap); flex: none; list-style: none; margin: 0; padding: 0; }
.partner-logo { display: flex; align-items: center; justify-content: center; width: var(--partner-slot); height: 116px; padding: 12px; }
.partner-logo img { display: block; width: auto; height: auto; max-width: min(190px, 100%); max-height: 64px; object-fit: contain; user-select: none; -webkit-user-drag: none; }
@media (max-width: 1100px) {
  .partner-heading { grid-template-columns: minmax(0, 1fr); grid-template-areas: "eyebrow" "title" "note"; }
}
@media (max-width: 900px) {
  .partner-logos { --partner-slot: 186px; --partner-gap: 26px; padding: 42px 0 52px; }
  .partner-heading h2 { font-size: 22px; }
  .partner-logo { height: 88px; }
}
@media (max-width: 600px) {
  .partner-logos { --partner-slot: 154px; --partner-gap: 22px; padding: 34px 0 42px; }
  .partner-heading { gap: 8px; align-items: center; margin-bottom: 20px; }
  .partner-heading h2 { font-size: clamp(18px, 5vw, 22px); letter-spacing: 0; }
  .partner-heading .eyebrow { font-size: 10px; gap: 9px; margin-bottom: 0; }
  .partner-note { font-size: 12px; }
  .partner-heading .eyebrow::before { width: 20px; }
  .partner-logo { height: 72px; padding: 6px; }
  .partner-logo img { max-width: 100%; max-height: 52px; }
  .is-ready .partner-viewport { mask-image: linear-gradient(to right, transparent, #000 18px, #000 calc(100% - 18px), transparent); }
}
