/* Shared by both brands; inherit each site's existing type and accent color. */
.brand-showcase {
    margin-bottom: 3rem;
    --brand-gap: 20px;
    --brand-card-width: 256px;
}
.brand-showcase__heading {
    margin-bottom: 20px;
}
.brand-showcase__heading h5 { margin: 0; font-weight: 700; color: #1e293b; }
.brand-marquee:focus-visible { outline: 2px solid var(--bs-primary); outline-offset: 3px; }
.brand-marquee {
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 3%, #000 97%, transparent);
}
.brand-marquee::-webkit-scrollbar { display: none; }
.brand-marquee + .brand-marquee { margin-top: 16px; }
.brand-marquee__track { display: flex; width: max-content; }
.brand-marquee__group {
    display: flex;
    flex: 0 0 auto;
    gap: var(--brand-gap);
    margin: 0;
    padding: 0 var(--brand-gap) 0 0;
    list-style: none;
}
.brand-marquee__group li {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 var(--brand-card-width);
    width: var(--brand-card-width);
    height: 112px;
    padding: 24px 34px;
    border: 1px solid #e8edf2;
    border-radius: 10px;
    background: #f8fafc;
}
.brand-marquee__group img { display: block; width: 100%; height: 54px; object-fit: contain; }
.brand-marquee__group .brand-logo--light { filter: brightness(0); }
.brand-showcase.is-ready .brand-marquee__track {
    animation: brand-marquee-scroll var(--brand-duration, 42s) linear infinite;
    animation-delay: var(--brand-delay, 0s);
}
.brand-showcase[data-paused="true"] .brand-marquee__track { animation: none; }
@media (hover: hover) {
    .brand-marquee:hover .brand-marquee__track { animation-play-state: paused; }
}
@keyframes brand-marquee-scroll { to { transform: translateX(-50%); } }
@media (max-width: 991.98px) {
    .brand-showcase { --brand-card-width: clamp(136px, 42vw, 176px); --brand-gap: 12px; margin-bottom: 28px; }
    .brand-showcase__heading { margin-bottom: 14px; }
    .brand-showcase__heading h5 { font-size: 16px; }
    .brand-marquee + .brand-marquee { margin-top: 12px; }
    .brand-marquee__group li { height: 80px; padding: 18px 20px; border-radius: 8px; }
    .brand-marquee__group img { height: 40px; }
}
@media (prefers-reduced-motion: reduce) {
    .brand-showcase.is-ready .brand-marquee__track { animation: none; }
    .brand-marquee__group[aria-hidden="true"] { display: none; }
}
