.promotion-grid { display:grid; grid-template-columns:minmax(0, 1fr); gap:16px; margin-bottom:24px; }
.hero-carousel, .hero-fixed-banner { min-width:0; overflow:hidden; border-radius:6px; background:var(--customer-surface-color); }
.hero-banner-link { display:block; position:relative; aspect-ratio:10 / 3; }
.hero-fixed-banner .hero-banner-link { aspect-ratio:5 / 3; }
.hero-banner-link:focus-visible { outline:3px solid var(--customer-link-color); outline-offset:-3px; }
.hero-carousel .carousel-item img, .hero-fixed-banner img { display:block; position:absolute; inset:0; width:100%; height:100%; object-fit:contain; }
.hero-carousel .carousel-control-prev, .hero-carousel .carousel-control-next { display:none !important; }
.hero-carousel .carousel-indicators {
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    z-index:2;
    display:flex;
    justify-content:center;
    align-items:center;
    gap:8px;
    margin:0 auto 12px;
    padding:0;
    list-style:none;
}
.hero-carousel .carousel-indicators button {
    box-sizing:content-box;
    flex-shrink:0;
    width:9px;
    height:9px;
    margin:0;
    padding:0;
    border:0;
    border-radius:50%;
    background-color:var(--muted-color);
    opacity:0.5;
    cursor:pointer;
    transition:opacity .2s ease, background-color .2s ease, transform .2s ease;
}
.hero-carousel .carousel-indicators button:hover {
    opacity:0.85;
}
.hero-carousel .carousel-indicators button.active,
.hero-carousel .carousel-indicators button[aria-current="true"] {
    opacity:1;
    background-color:var(--primary-color);
    transform:scale(1.25);
}
@media(min-width:768px) {
    /* Divide the available width after the gap in an exact 8:4 ratio. */
    .promotion-grid.has-both { grid-template-columns:minmax(0, 2fr) minmax(0, 1fr); align-items:start; }
}
@media(max-width:767.98px) {
    .promotion-grid { gap:12px; margin-bottom:16px; }
    .promotion-grid.fixed-hidden-mobile .hero-fixed-banner { display:none; }
    .promotion-grid.fixed-hidden-mobile:not(.has-both) { display:none; }
}
