.gb-front-grid { margin: 20px; }

.gb-front-cell {
    position: relative;
    overflow: hidden;
    border-radius: 8px;
    background: #fff;
    /* align-self: center celowo usunięte - to ono psuło stretch i robiło przerwy */
}

.gb-front-link { display: block; position: relative; width: 100%; height: 100%; text-decoration: none; color: inherit; }

/* ---------- BANER (typ image) - wypełnia całą wysokość komórki, dopasowuje się do sąsiada w wierszu ---------- */
.gb-front-banner { display: block; position: relative; width: 100%; height: 100%; }
.gb-img-natural {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .8s ease;
}
.gb-front-banner:hover .gb-img-natural { transform: scale(1.01); }

/* wariant ze stałą wysokością w px (ustawioną w builderze per kafelek) */
.gb-banner-fixed { overflow: hidden; }
.gb-img-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .5s ease;
}
.gb-front-banner:hover .gb-img-cover { transform: scale(1.02); }

.gb-front-overlay {
    position: absolute; left: 0; right: 0; bottom: 0;
    padding: 14px; background: linear-gradient(transparent, rgba(0,0,0,0.65));
    display: flex; flex-direction: column;
}
.gb-front-title-light { color: #fff; }
.gb-front-title { font-weight: 700; font-size: 15px; color: #232323; }
.gb-front-subtitle { font-size: 12px; opacity: 0.9; color: #fff; }

.gb-native-products .product-miniature { margin-bottom: 0; }

/* ---------- PRODUKT / KATEGORIA - renderowane natywnym partialem motywu (catalog/_partials/miniatures/product.tpl) ---------- */
.gb-native-products {
    display: flex;
    flex-wrap: wrap;
    /* gap: 24px; */
    height: 100%;
    margin: auto;
}
.gb-native-products .product-miniature,
.gb-native-products .js-product-miniature {
    flex: 1 1 0;
    min-width: 0;
}
.gb-native-products.gb-mode-carousel .product-miniature,
.gb-native-products.gb-mode-carousel .js-product-miniature {
    flex: 0 0 160px;
}

.gb-front-cell-product .gb-native-products { height: 100%; }
.gb-front-cell-product .gb-native-products .product-miniature { width: 100%; height: 100%; }

/* ---------- KATEGORIA - nagłówek + siatka mini produktów ---------- */
.gb-front-category { height: 100%; display: flex; flex-direction: column; background: #fff; }
.gb-front-cat-header { margin-bottom: 10px; }
.gb-front-cat-header .gb-front-title { font-size: 15px; }
.gb-front-category .gb-native-products.gb-mode-carousel { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; }
.gb-front-category .gb-native-products.gb-mode-carousel .product-miniature { flex: 0 0 160px; scroll-snap-align: start; }
.gb-front-category .gb-native-products.gb-mode-grid .product-miniature {flex: 1 1 0;min-width: 0;/* height: 100%; */padding: 0 12px;}

.product-miniature .product-miniature__infos__bottom,
.product-miniature .product-miniature__infos__top { padding: 0; margin-bottom: 0px; }

/* ---------- MODUŁ NATYWNY (bestsellery, nowości...) - to jest surowy output renderWidget() modułu, zostaje jego własny styl ---------- */
.gb-native-module { height: 100%; }

/* ---------- MOBILE: wiersz układa się w kolumnę (baner na górze, potem produkty), max 2 produkty w linii ---------- */
@media (max-width: 767px) {
    .gb-front-row {
        grid-template-columns: 1fr !important;
    }
    .gb-front-cell {
        grid-column: span 1 !important;
    }
    .gb-native-products .product-miniature,
    .gb-native-products .js-product-miniature {
        flex: 0 0 calc(50%) !important;
        /* max-width: calc(50% - 12px); */
    }
    .gb-native-products.gb-mode-carousel .product-miniature,
    .gb-native-products.gb-mode-carousel .js-product-miniature {
        flex: 0 0 160px !important;
        max-width: 160px;
    }
}

.section-title{margin:5px 0}
.product-flags{top: 24px}