/* CBPS banner: responsive linked image, same 1440px breakout as the other bands (scrollbar-aware via --vw). */
.dbim-cbps {
    --s-w: min(1440px, var(--vw, 100vw) - 32px);
    clear: both;
    width: var(--s-w);
    margin: 28px 0 36px calc(50% - var(--s-w) / 2);
}
.dbim-cbps-link {
    display: block;
    border-radius: 14px;
    overflow: hidden;
    background: #433d8f;                 /* banner's own purple, shown while the image loads */
    box-shadow: 0 1px 4px rgba(20, 34, 79, .12);
    transition: box-shadow .2s ease, transform .2s ease;
    aspect-ratio: 1800 / 500;
}
.dbim-cbps-link:hover { box-shadow: 0 8px 22px rgba(20, 34, 79, .22); transform: translateY(-2px); }
.dbim-cbps-link:focus-visible { outline: 3px solid #ffc107; outline-offset: 3px; }
.dbim-cbps .cbps_banner { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 640px) {
    .dbim-cbps { --s-w: min(1440px, var(--vw, 100vw) - 20px); margin: 20px 0 26px calc(50% - var(--s-w) / 2); }
    .dbim-cbps-link { border-radius: 10px; }
}
@media (prefers-reduced-motion: reduce) { .dbim-cbps-link { transition: none; } .dbim-cbps-link:hover { transform: none; } }
html.a11y-images .dbim-cbps .cbps_banner { visibility: hidden; }
