.partner-logo { display: flex; align-items: center; justify-content: center; min-inline-size: 0; min-block-size: 8.375rem; padding: var(--space-6); border: 1px solid var(--color-border-subtle); border-radius: var(--radius-media); }
.partner-logo__artwork { inline-size: 100%; }
.partner-logo--enlarged { padding-block: var(--space-4); }
.partner-logo__image { display: block; inline-size: 100%; block-size: auto; aspect-ratio: 120 / 44; object-fit: contain; opacity: 0.4; transition: opacity var(--dur-fast) var(--ease-standard), filter var(--dur-fast) var(--ease-standard); }
/* Bounds remove source whitespace; each mark keeps its original proportions. */
.partner-logo--normalized .partner-logo__artwork { position: relative; inline-size: min(100%, var(--partner-logo-width)); aspect-ratio: var(--partner-logo-ratio); overflow: clip; }
.partner-logo--normalized .partner-logo__image { position: absolute; inset-inline-start: var(--partner-logo-source-x); inset-block-start: var(--partner-logo-source-y); inline-size: var(--partner-logo-source-width); block-size: var(--partner-logo-source-height); max-inline-size: none; aspect-ratio: auto; }
@media (hover: hover) and (pointer: fine) {
    .partner-logo:hover .partner-logo__image { opacity: 1; filter: grayscale(1) contrast(2); }
}
@media (prefers-reduced-motion: reduce) {
    .partner-logo__image { transition: none; }
}
