/*
 * Stickerly — boks produktowy we wpisie.
 *
 * ⚠️ DLACZEGO NAPISY BYŁY NIECZYTELNE — TO NIE BYŁ KOLOR TŁA.
 * Boks siedzi WEWNĄTRZ treści wpisu, a tam obowiązują reguły z `blog.css`:
 *   .st-wpis-tresc p { color: #2b303b }   ← bije odziedziczone `color: #fff`
 *   .st-wpis-tresc a { color: #344a90 }   ← to samo z odnośnikiem
 * Dziedziczenie zawsze przegrywa z regułą wskazującą element wprost, więc
 * tytuł „Najczęściej wybierane" wychodził grafitowy na granacie, a odnośnik
 * „Zobacz wszystkie" granatowy na granacie. Każdy tekst w boksie ma teraz
 * kolor nadany JAWNIE, selektorem o wyższej specyficzności.
 *
 * ⚠️ ZAKŁADKI BYŁY KWADRATOWE Z TEGO SAMEGO POWODU. Flatsome stylizuje
 * `button` globalnie (tło primary, promień z motywu). Stąd `!important`
 * przy tle i promieniu — wyłącznie tam, gdzie motyw faktycznie wchodzi w drogę.
 *
 * Ładowany tylko na wpisie i tylko gdy moduł jest włączony.
 */

.st-pbox {
	--pb-granat: #344a90;
	--pb-granat-hover: #2b3d78;
	--pb-blekit: #6f83c7;
	--pb-blekit-jasny: #e8ecf8;
	--pb-grafit: #181b22;
	--pb-szary: #606775;
	--pb-obwodka: #dce1ea;

	/* Kolory tekstu ustawiane per wariant — używane w regułach niżej. */
	--pb-tekst: var(--pb-grafit);
	--pb-tekst-slaby: var(--pb-szary);
	--pb-ramka-zakladki: var(--pb-obwodka);

	margin: clamp(1.6rem, 3vw, 2.4rem) 0;
	padding: clamp(0.9rem, 1.6vw, 1.25rem);
	border-radius: 18px;
}

/* ---------- warianty ---------- */

/*
 * ⚠️ „Ciemny granat" był za ciemny (schodził do #17203f) i przy jasnych kartach
 * dawał kontrast jak wycięcie w stronie — szczególnie na telefonie, gdzie boks
 * zajmuje całą szerokość. Teraz to średni granat marki z delikatnym
 * przejściem: kolor jest wyraźny, ale nie robi dziury w artykule.
 */
.st-pbox--ciemny {
	/* Plaski granat marki. Gradient dawal efekt „wygenerowane przez AI"
	   (Dawid 07.09) i przy kazdym tle wyglada inaczej. */
	background: #3a5199;
	--pb-tekst: #fff;
	--pb-tekst-slaby: rgba(255, 255, 255, 0.72);
	--pb-ramka-zakladki: rgba(255, 255, 255, 0.28);
}

.st-pbox--jasny {
	background: var(--pb-blekit-jasny);
	border: 1px solid var(--pb-obwodka);
}

.st-pbox--obwodka {
	background: #fff;
	border: 1px solid var(--pb-obwodka);
}

/* ---------- głowa ---------- */

.st-pbox-glowa {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.15rem 0.7rem;
	margin-bottom: 0.75rem;
}

/* Specyficzność (0,2,0) — wygrywa z `.st-wpis-tresc p` (0,1,1). */
.st-pbox .st-pbox-tytul {
	margin: 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.25;
	color: var(--pb-tekst);
}

.st-pbox .st-pbox-podtytul {
	margin: 0;
	font-size: 0.84rem;
	color: var(--pb-tekst-slaby);
}

/* ---------- zakładki ---------- */

.st-pbox-zakladki {
	display: flex;
	gap: 0.3rem;
	margin-bottom: 0.8rem;
	padding-bottom: 0.15rem;
	overflow-x: auto;
	scrollbar-width: none;
}

.st-pbox-zakladki::-webkit-scrollbar { display: none; }

.st-pbox .st-pbox-zakladka {
	flex: 0 0 auto;
	padding: 0.32rem 0.75rem;
	/* ⚠️ `!important` wyłącznie na tych dwóch własnościach — Flatsome
	   nadaje wszystkim `button` swoje tło i prostokątny promień. */
	border-radius: 10px !important;
	background: transparent !important;
	border: 1px solid var(--pb-ramka-zakladki);
	color: var(--pb-tekst-slaby);
	font-size: 0.76rem;
	font-weight: 600;
	line-height: 1.2;
	white-space: nowrap;
	text-transform: none;
	letter-spacing: 0;
	box-shadow: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.st-pbox .st-pbox-zakladka:hover {
	color: var(--pb-tekst);
	border-color: var(--pb-tekst);
}

.st-pbox--ciemny .st-pbox-zakladka.st-aktywna {
	background: #fff !important;
	border-color: #fff;
	color: #2c3d78;
}

.st-pbox--jasny .st-pbox-zakladka.st-aktywna,
.st-pbox--obwodka .st-pbox-zakladka.st-aktywna {
	background: var(--pb-granat) !important;
	border-color: var(--pb-granat);
	color: #fff;
}

/* ---------- karty ---------- */

/*
 * Osiem produktów w dwóch rzędach po cztery. Karta jest niższa niż poprzednio
 * (zdjęcie 4:3 zamiast kwadratu, ciaśniejszy tekst), więc dwa rzędy zajmują
 * niewiele więcej miejsca niż wcześniej jeden.
 */
.st-pbox-siatka {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.55rem;
}

.st-pbox .st-pbox-karta {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 12px;
	background: #fff;
	border: 1px solid var(--pb-obwodka);
	color: var(--pb-grafit);
	text-decoration: none;
	transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.st-pbox .st-pbox-karta:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 22px -16px rgba(0, 0, 0, 0.45);
	color: var(--pb-grafit);
	text-decoration: none;
}

.st-pbox-karta-obraz { display: block; background: #fff; }

.st-pbox-karta-obraz img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

.st-pbox-karta-tresc {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 0.45rem 0.55rem 0.55rem;
}

.st-pbox .st-pbox-karta-nazwa {
	font-size: 0.74rem;
	font-weight: 600;
	line-height: 1.26;
	color: var(--pb-grafit);
	/* Dwie linie — inaczej karty w rzędzie mają różną wysokość. */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.st-pbox .st-pbox-karta-cena {
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--pb-granat);
}

.st-pbox .st-pbox-karta-cena del { color: var(--pb-szary); font-weight: 400; font-size: 0.72rem; }
.st-pbox .st-pbox-karta-cena ins { text-decoration: none; }

/* ---------- odnośnik do pełnej kategorii ---------- */

.st-pbox .st-pbox-wiecej {
	display: inline-block;
	margin-top: 0.7rem;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--pb-tekst);
	text-decoration: none;
	opacity: 0.85;
}

.st-pbox .st-pbox-wiecej:hover { opacity: 1; text-decoration: underline; }

@media (max-width: 900px) {
	.st-pbox-siatka { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
	.st-pbox-siatka { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.st-pbox .st-pbox-karta-nazwa { font-size: 0.72rem; }

	/* ⚠️ NA TELEFONIE POKAZUJEMY CZTERY PRODUKTY, NIE OSIEM. Osiem kart w dwóch
	   kolumnach to cztery rzędy i boks urastał do 912 px — na ekranie 812 px
	   nie mieści się nawet w całości. Nadmiarowe karty są ukryte, a nie
	   usunięte: mają `loading="lazy"`, więc przeglądarka nie pobiera ich
	   zdjęć. Ta sama technika co przy galerii realizacji. */
	.st-pbox-siatka .st-pbox-karta:nth-child(n + 5) { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	.st-pbox .st-pbox-karta,
	.st-pbox .st-pbox-zakladka { transition: none; }
}
