/* ps_productcarousel – karuzela/siatka bez zależności */
.ps-pcar { --pcar-gap: 16px; --pcar-n: var(--pcar-xs, 2); --pcar-k: min(var(--pcar-n), var(--pcar-cap, 99)); margin: 0 0 2rem; }
@media (min-width: 768px) { .ps-pcar { --pcar-n: var(--pcar-md, 3); } }
@media (min-width: 992px) { .ps-pcar { --pcar-n: var(--pcar-lg, 4); } }
@media (min-width: 1200px) { .ps-pcar { --pcar-n: var(--pcar-xl, 5); } }
.ps-pcar__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.ps-pcar__title { margin: 0; }
.ps-pcar__nav { display: flex; gap: .5rem; flex: none; }
.ps-pcar__btn { width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(0, 0, 0, .15); background: #fff; color: inherit; font-size: 24px; line-height: 1; display: grid; place-items: center; cursor: pointer; transition: opacity .2s, background .2s; padding: 0 0 3px; }
.ps-pcar__btn:hover:not(:disabled) { background: rgba(0, 0, 0, .05); }
.ps-pcar__btn:disabled { opacity: .35; cursor: default; }
.ps-pcar__viewport { position: relative; }
.ps-pcar .ps-pcar__viewport > .ps-pcar__track { display: grid; flex-wrap: nowrap; justify-content: initial; gap: var(--pcar-gap); grid-template-columns: repeat(var(--pcar-n), minmax(0, 1fr)); margin: 0; }
.ps-pcar.ps-pcar--carousel .ps-pcar__viewport > .ps-pcar__track { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--pcar-k) - 1) * var(--pcar-gap)) / var(--pcar-k)); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-x: contain; }
.ps-pcar.ps-pcar--carousel .ps-pcar__track::-webkit-scrollbar { display: none; }
.ps-pcar__item { min-width: 0; scroll-snap-align: start; }
.ps-pcar .ps-pcar__item > .product-miniature, .ps-pcar .ps-pcar__item > article { width: 100%; max-width: none; margin: 0; padding: 0; float: none; flex: none; }
.ps-pcar .ps-pcar__item .thumbnail-container { width: 100%; max-width: 100%; margin-left: 0; margin-right: 0; }
.ps-pcar__more { text-align: center; margin-top: 1rem; }
@media (prefers-reduced-motion: reduce) { .ps-pcar.ps-pcar--carousel .ps-pcar__viewport > .ps-pcar__track { scroll-behavior: auto; } }
/* układ motywu bez Owl (awaryjnie) */
.ps-pcar-fallback.cz-carousel { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0; list-style: none; }
.ps-pcar-fallback.cz-carousel > li { flex: 0 0 calc((100% - 48px) / 4); scroll-snap-align: start; }
@media (max-width: 767px) { .ps-pcar-fallback.cz-carousel > li { flex-basis: calc((100% - 16px) / 2); } }

/* w kolumnie sekcji Kompozytora (kontener „pccol”) liczba produktów zależy też od szerokości kolumny:
 * najwyżej tyle, ile zmieści się kafelków ~140 px. Poza sekcjami – bez zmian (według ekranu). */
@container pccol (max-width: 1231px) { .ps-pcar { --pcar-cap: 7; } }
@container pccol (max-width: 1075px) { .ps-pcar { --pcar-cap: 6; } }
@container pccol (max-width: 919px) { .ps-pcar { --pcar-cap: 5; } }
@container pccol (max-width: 763px) { .ps-pcar { --pcar-cap: 4; } }
@container pccol (max-width: 607px) { .ps-pcar { --pcar-cap: 3; } }
@container pccol (max-width: 451px) { .ps-pcar { --pcar-cap: 2; } }
@container pccol (max-width: 295px) { .ps-pcar { --pcar-cap: 1; } }
@supports (grid-template-columns: repeat(min(2, 3), 1fr)) {
  .ps-pcar .ps-pcar__viewport > .ps-pcar__track { grid-template-columns: repeat(var(--pcar-k), minmax(0, 1fr)); }
}
@container pccol (max-width: 451px) { .ps-pcar-fallback.cz-carousel > li { flex-basis: calc((100% - 16px) / 2); } }

/* Kilka rzędów: karuzela przewija kolumnami (produkty 1–2 w pierwszej kolumnie, 3–4 w drugiej…),
   siatka pokazuje rzędy × produkty w rzędzie (resztę ukrywa skrypt po przeliczeniu kolumn). */
.ps-pcar[data-pcar-rows] .ps-pcar__viewport > .ps-pcar__track { row-gap: calc(var(--pcar-gap) * 1.5); }
.ps-pcar.ps-pcar--carousel[data-pcar-rows] .ps-pcar__viewport > .ps-pcar__track { grid-template-rows: repeat(var(--pcar-rows, 1), auto); }
.ps-pcar[data-pcar-rows] .ps-pcar__item[hidden] { display: none; }

/* Dopasowanie wysokości w rzędzie sekcji Kompozytora: blok sięga do dołu kolumny (bez pustego pasa pod kartą),
   produkty zostają u góry. Karuzela nie maleje – jeśli nie mieści się we wzorcu, rząd rośnie (skrypt Kompozytora). */
.pc-sec--stretch > .pc-sec-col .ps-pcar { height: 100%; margin-bottom: 0; box-sizing: border-box; }

/* ================= Ściskanie w kolumnie dopasowanej do wzorca (Kompozytor: data-pc-sq 1–3, --pc-fit-h) =================
 * Zasady responsywności zostają (liczba produktów wg ekranu/kolumny); karuzela oddaje kolejno:
 *  1 – kropki i pasek nawigacji pod listą, przycisk „Wszystkie produkty”, mniejsze odstępy,
 *  2 – drugorzędne linie (marka/autor, oceny), nazwa w 2 liniach, okładki do ~38% wysokości wzorca,
 *  3 – okładki do ~26% wysokości, nazwa w 1 linii, jeden rząd zamiast kilku. */
[data-pc-sq] .featured-products .owl-controls,
[data-pc-sq] .featured-products .owl-pagination,
[data-pc-sq] .featured-products .owl-dots,
[data-pc-sq] .ps-pcar__more,
[data-pc-sq] .featured-products .all-product-link { display: none !important; }
[data-pc-sq] .featured-products .products-section-title,
[data-pc-sq] .ps-pcar__head { margin-bottom: 10px; }
[data-pc-sq] .featuredproducts { padding-bottom: 12px; }
[data-pc-sq] .ps-pcar { --pcar-gap: 12px; }

[data-pc-sq="2"] .product-miniature .brand-title,
[data-pc-sq="3"] .product-miniature .brand-title,
[data-pc-sq="2"] .product-miniature .product-list-reviews,
[data-pc-sq="3"] .product-miniature .product-list-reviews,
[data-pc-sq="2"] .product-miniature .author-link,
[data-pc-sq="3"] .product-miniature .author-link,
[data-pc-sq="2"] .product-miniature .product-description > :not(.product-title):not(.product-price-and-shipping):not(h3):not(h2),
[data-pc-sq="3"] .product-miniature .product-description > :not(.product-title):not(.product-price-and-shipping):not(h3):not(h2) { display: none !important; }
[data-pc-sq="2"] .product-miniature .product-title,
[data-pc-sq="3"] .product-miniature .product-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 0; height: auto; margin-bottom: 4px; }
[data-pc-sq="3"] .product-miniature .product-title { -webkit-line-clamp: 1; }
/* okładki: równa wysokość kafelka (część wysokości wzorca), obraz według „Okładki” (zmieść całość / wypełnij / zaczep) */
[data-pc-sq="2"] .product-miniature { --pcar-th: calc(var(--pc-fit-h, 600px) * .38); }
[data-pc-sq="3"] .product-miniature { --pcar-th: calc(var(--pc-fit-h, 600px) * .26); }
/* przyciski motywu (koszyk) liczone od dołu prawdziwej okładki, nie od stałych 305 px */
[data-pc-sq="2"] .product-miniature .product-actions,
[data-pc-sq="3"] .product-miniature .product-actions { top: calc(var(--pcar-th) - 8px) !important; bottom: auto !important; } /* w prawym dolnym rogu okładki */
[data-pc-sq="2"] .product-miniature .product-thumbnail,
[data-pc-sq="3"] .product-miniature .product-thumbnail { display: block; height: var(--pcar-th); overflow: hidden; }
[data-pc-sq="2"] .product-miniature .product-thumbnail img,
[data-pc-sq="3"] .product-miniature .product-thumbnail img { display: block; width: 100%; height: 100%; max-height: none; object-fit: var(--pco-fit, var(--pcfit-fit, contain)); object-position: var(--pco-x, var(--pcfit-x, 50%)) var(--pco-y, var(--pcfit-y, 50%)); }
[data-pc-sq] .product-miniature .thumbnail-container { height: auto; min-height: 0; }
/* kilka rzędów → jeden (karuzela przewija nadal po kolumnach, siatka chowa resztę skryptem) */
[data-pc-sq="3"] .ps-pcar.ps-pcar--carousel[data-pcar-rows] .ps-pcar__viewport > .ps-pcar__track { grid-template-rows: auto; grid-auto-flow: column; }

/* liczba produktów w rzędzie ustawiona w Kompozytorze dla tego miejsca (--pco-items) */
.ps-pcar[data-pco-items] { --pcar-n: var(--pco-items) !important; --pcar-cap: 99 !important; }
