.sf-uc { width: 100%; }
.sf-uc__notice { padding: 12px 14px; border: 1px dashed #bbb; border-radius: 8px; }

.sf-uc__heading { margin: 0 0 16px 0; }

/* =========================
   GRID
   ========================= */
.sf-uc__grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(var(--sf-cols-desktop, 4), minmax(0, 1fr));
}
@media (max-width: 1024px){
	.sf-uc__grid { grid-template-columns: repeat(var(--sf-cols-tablet, 2), minmax(0, 1fr)); }
}
@media (max-width: 767px){
	.sf-uc__grid { grid-template-columns: repeat(var(--sf-cols-mobile, 1), minmax(0, 1fr)); }
}

/* =========================
   CAROUSEL
   ========================= */
.sf-uc__carousel { width: 100%; }

/* ✅ Fallback, gdy Swiper się nie zainicjalizuje (albo został "wyłączony") */
.sf-uc__carousel:not(.swiper-initialized) .swiper-wrapper{
	display: flex;
	gap: 16px;
}

.sf-uc__carousel:not(.swiper-initialized) .swiper-slide{
	flex: 0 0 calc(100% / var(--sf-spv-desktop, 4));
	max-width: calc(100% / var(--sf-spv-desktop, 4));
}

@media (max-width: 1024px){
	.sf-uc__carousel:not(.swiper-initialized) .swiper-slide{
		flex-basis: calc(100% / var(--sf-spv-tablet, 2));
		max-width: calc(100% / var(--sf-spv-tablet, 2));
	}
}
@media (max-width: 767px){
	.sf-uc__carousel:not(.swiper-initialized) .swiper-slide{
		flex-basis: calc(100% / var(--sf-spv-mobile, 1));
		max-width: calc(100% / var(--sf-spv-mobile, 1));
	}
}

/* Dodatkowe zabezpieczenie: gdyby style slajdów zostały nadpisane, niech nie rozciąga na 100% */
.sf-uc__carousel .swiper-slide{
	box-sizing: border-box;
}

/* =========================
   CARD
   ========================= */
.sf-uc__card {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	height: 100%;
}

.sf-uc__link {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	height: 100%;
}

.sf-uc__img { width: 100%; }
.sf-uc__img img {
	display: block;
	width: 100%;
	height: auto;
}

.sf-uc__meta {
	padding-top: 10px;
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.sf-uc__title {
	line-height: 1.25;
}

.sf-uc__price {
	line-height: 1.2;
}

/* Serce w prawym dolnym rogu */
.sf-uc__fav {
	position: absolute;
	right: 10px;
	bottom: 10px;
	border: 0;
	background: transparent;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

/* =========================
   PAGINATION
   ========================= */
.sf-uc__pagination { margin-top: 14px; }
.sf-uc .swiper-pagination {
	display: flex;
	gap: var(--sf-uc-pag-gap, 8px);
	align-items: center;
	justify-content: center;
}
.sf-uc .swiper-pagination-bullet { opacity: 1; }

/* Wspólny wrapper wishlist */
.sf-uc__wishlist{
	position: absolute;
	right: 10px;
	bottom: 10px;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* =========================
   WPC Smart Wishlist (woosw)
   ========================= */

/* WPC często daje <a class="woosw-btn ..."> */
.sf-uc__wishlist--wpc .woosw-btn{
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	line-height: 1 !important;
}

/* Ukryj tekst, zostaw ikonę (jeśli wtyczka dodaje tekst) */
.sf-uc__wishlist--wpc .woosw-btn .woosw-btn-text{
	display: none !important;
}

/* Dopasuj ikonę */
.sf-uc__wishlist--wpc .woosw-btn:before,
.sf-uc__wishlist--wpc .woosw-btn i,
.sf-uc__wishlist--wpc .woosw-btn svg{
	font-size: 22px;
	width: 22px;
	height: 22px;
}

/* =========================
   YITH Wishlist
   ========================= */

.sf-uc__wishlist--yith .yith-wcwl-add-to-wishlist{
	margin: 0 !important;
}

.sf-uc__wishlist--yith a.add_to_wishlist,
.sf-uc__wishlist--yith a.delete_item{
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
	box-shadow: none !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	line-height: 1 !important;
}

/* YITH potrafi mieć tekst – chowamy */
.sf-uc__wishlist--yith .yith-wcwl-add-to-wishlist span{
	display: none !important;
}

/* Jeśli YITH używa ikony <i> */
.sf-uc__wishlist--yith i{
	font-size: 22px;
}

/* Jeśli YITH generuje obrazek lub svg */
.sf-uc__wishlist--yith svg{
	width: 22px;
	height: 22px;
}