/**
 * Phoenix B2B — PUBLICZNY FRONT / WARSTWA PREZENTACYJNA  (v2.12.61)
 * =================================================================
 * Ładowana WYŁĄCZNIE poza panelem klienta (gating w Phoenix_B2B_Assets /
 * Phoenix_B2B_Shop::enqueue_assets()). Cel: publiczna część sklepu dla
 * niezalogowanych ma wyglądać ciaśniej, czyściej i bardziej premium — bez
 * przejmowania ciemnego UI panelu. NIE dotyka panelu klienta ani admina.
 *
 * Drukuje się PO shop + listingu (zależności handle), więc wygrywa w kaskadzie
 * bez !important (poza ukryciem breadcrumbu, które celowo jest twarde).
 *
 * v2.12.61 (spacing-ui-fix):
 *   - /sklep/: ciaśniejsze odstępy (boki mobile 15px, mniejszy odstęp pod
 *     headerem, zwarte head/toolbar/layout) → większe optycznie kafelki.
 *   - kafelek gościa: kompaktowy badge „Cena po zalogowaniu", drobny 1-liniowy
 *     dopisek „Ceny hurtowe po zalogowaniu", lżejszy rytm pionowy.
 *   - (sticky CTA i spacing podstrony produktu — patrz single-product.css, które
 *     ładuje się PO tej warstwie na podstronie produktu.)
 */

/* =====================================================================
 * 1) LAYOUT /SKLEP/ — CIASNIEJSZY, PREMIUM
 * ===================================================================== */

/* Kontener treści: ~1400px na PC (było 1500px). */
.pb2b-shop-shell .pb2b-shop-container {
	max-width: 1400px;
}

/* Mniejszy odstęp pod headerem + anti-scroll (żaden element nie wypycha paska). */
.pb2b-shop-shell {
	padding-top: 28px;
	overflow-x: clip;
}

/* Bezpiecznik braku poziomego scrolla — komórki siatki mogą się kurczyć. */
.pb2b-shop-shell .pb2b-shop,
.pb2b-shop-shell .pb2b-shop-layout,
.pb2b-shop-shell .pb2b-shop-main,
.pb2b-shop-shell .pb2b-shop-results {
	min-width: 0;
	max-width: 100%;
}

/* Zwarcie nagłówka „Sklep B2B", paska narzędzi i siatki (mniej pustego luzu,
 * więcej miejsca dla kafelków). Specyficzność > reguł bazowych z shop.css. */
.pb2b-shop-shell .pb2b-shop-head { margin-bottom: 16px; }
.pb2b-shop-shell .pb2b-shop .pb2b-shop-toolbar { margin-bottom: 14px; }
.pb2b-shop-shell .pb2b-shop .pb2b-shop-layout { gap: 20px; }
.pb2b-shop-shell .pb2b-shop .pb2b-shop-resultbar { margin-bottom: 12px; }

/* Tablet — boki + jeszcze ciaśniej. */
@media (max-width: 1024px) {
	.pb2b-shop-shell { padding-top: 22px; }
	.pb2b-shop-shell .pb2b-shop-container { padding-left: 16px; padding-right: 16px; }
	.pb2b-shop-shell .pb2b-shop .pb2b-shop-layout { gap: 16px; }
}

/* Mobile — brief = max ~15px od krawędzi, zwarte toolbary, zero dziur. */
@media (max-width: 600px) {
	.pb2b-shop-shell { padding-top: 16px; }
	.pb2b-shop-shell .pb2b-shop-container { padding-left: 15px; padding-right: 15px; }
	.pb2b-shop-shell .pb2b-shop-head { margin-bottom: 12px; }
	.pb2b-shop-shell .pb2b-shop .pb2b-shop-toolbar { margin-bottom: 10px; gap: 10px; }
	.pb2b-shop-shell .pb2b-shop .pb2b-shop-resultbar { margin-bottom: 8px; }
}

/* =====================================================================
 * 2) BREADCRUMB / META — UKRYCIE TOPORNEGO PASKA W ARCHIWUM B2B
 *    (druga warstwa bezpieczeństwa; podstawowo usuwany SERWEROWO w szablonach
 *    shop-archive-b2b.php / category-archive-b2b.php — v2.12.60).
 * ===================================================================== */
.pb2b-wc-shop-archive .woocommerce-breadcrumb,
.pb2b-wc-category-archive .woocommerce-breadcrumb,
.pb2b-wc-category-override .woocommerce-breadcrumb {
	display: none !important;
}

/* =====================================================================
 * 3) KAFELEK PUBLICZNY / GOŚCIA — KOMPAKTOWO
 * ===================================================================== */

/* CTA „Zobacz w panelu" (zalogowany B2B na publicznym froncie) — spójny ghost. */
.pb2b-card-btn-panel,
.pb2b-row-btn-panel {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
}

/* Badge „Cena po zalogowaniu" — lekka informacja premium, nie wielki button.
 * Niższy, mniejszy font, mniejszy padding; nie wychodzi poza wąskie karty
 * 2-kolumnowe na mobile. Zakres do powierzchni publicznych (sklep + produkt). */
.pb2b-shop-shell .pb2b-card-price-locked,
.pb2b-product-page .pb2b-card-price-locked {
	gap: 4px;
	padding: 3px 9px;
	font-size: 11px;
	font-weight: 600;
	line-height: 1.1;
	max-width: 100%;
}
.pb2b-shop-shell .pb2b-card-price-locked svg,
.pb2b-product-page .pb2b-card-price-locked svg {
	width: 11px;
	height: 11px;
}

/* Pasek ceny w siatce — nieco niższy minimalny rytm (badge jest mniejszy),
 * dalej równa wysokość kart. */
.pb2b-shop-shell .pb2b-card-grid .pb2b-card-pricing,
.pb2b-product-page .pb2b-card-grid .pb2b-card-pricing {
	min-height: 30px;
}

/* Drobny, 1-liniowy (gdy się da) dopisek pod CTA gościa — subtelny, lekki. */
.pb2b-card-login-hint {
	display: block;
	margin-top: 5px;
	margin-bottom: 0;
	font-size: 10.5px;
	line-height: 1.25;
	font-weight: 600;
	color: var(--pb2b-card-muted, #64748b);
	text-decoration: none;
	transition: color .15s ease;
}
.pb2b-card-login-hint:hover,
.pb2b-card-login-hint:focus {
	color: var(--pb2b-card-accent, #7c3aed);
	text-decoration: underline;
}

/* Bardzo wąskie karty 2-kol — jeszcze odrobinę mniejszy badge/dopisek. */
@media (max-width: 480px) {
	.pb2b-shop-shell .pb2b-card-price-locked,
	.pb2b-product-page .pb2b-card-price-locked {
		padding: 3px 8px;
		font-size: 10.5px;
	}
	.pb2b-card-login-hint { font-size: 10px; margin-top: 4px; }
}

/* Gdy „Podgląd" jest ukryty (gość), „Zobacz produkt" wypełnia rząd równo. */
.pb2b-card-actions-row > .pb2b-card-btn-view:only-child,
.pb2b-card-actions-row > .pb2b-card-btn-panel:only-child {
	flex: 1 1 auto;
	width: 100%;
}

/* =====================================================================
 * 4) PUBLICZNA PODSTRONA PRODUKTU — ANTI-SCROLL (spacing/sticky w single-product.css)
 * ===================================================================== */
.pb2b-product-page {
	overflow-x: clip;
}
.pb2b-product-page .pb2b-product-container,
.pb2b-product-page .pb2b-product-main,
.pb2b-product-page .pb2b-pp-summary {
	min-width: 0;
	max-width: 100%;
}
.pb2b-product-page .pb2b-pp-related {
	max-width: 100%;
	min-width: 0;
}

/* =====================================================================
 * v2.12.64 — DODATKI: oddech nad banerem sklepu + centrowanie + równe karty.
 * Ładowane WYŁĄCZNIE poza panelem (gating w Phoenix_B2B_Assets). Drukowane na
 * końcu → wygrywa w kaskadzie. NIE dotyka panelu klienta/admina.
 * ===================================================================== */

/* #5/#7 — delikatnie więcej powietrza między headerem a banerem/hero sklepu;
 * sekcja wycentrowana, max 1400px. „Trochę", nie powrót do dużych marginesów. */
.pb2b-shop-shell { padding-top: 32px; }
.pb2b-shop-shell .pb2b-shop-container { margin-left: auto; margin-right: auto; }

@media (max-width: 1024px) {
	.pb2b-shop-shell { padding-top: 24px; }
}
@media (max-width: 600px) {
	/* brief: ~16–24px na mobile (było 16 → trochę więcej oddechu). */
	.pb2b-shop-shell { padding-top: 20px; }
}

/* #4 — „Podobne produkty": równe wysokości kafelków i odstęp nagłówek→siatka;
 * cena „na zapytanie / po zalogowaniu" nie wychodzi poza kartę. Zakres publiczny. */
.pb2b-product-page .pb2b-pp-related .pb2b-card-grid { align-items: stretch; }
.pb2b-product-page .pb2b-pp-related .pb2b-card-grid > * { height: 100%; }
.pb2b-shop-shell .pb2b-card-price-locked,
.pb2b-product-page .pb2b-card-price-locked {
	white-space: normal;
	overflow-wrap: anywhere;
}

/* =====================================================================
 * v2.12.65 — KAFELEK PUBLICZNY (mobile): krótszy dopisek + kompaktowy badge.
 * Ładowane WYŁĄCZNIE poza panelem (gating w Phoenix_B2B_Assets). NIE dotyka
 * panelu klienta/admina. Druk na końcu → wygrywa w kaskadzie.
 * ===================================================================== */
@media (max-width: 767px) {
	/* PROBLEM 3 — dopisek „Ceny po zalogowaniu": mały, 1 linia (ellipsis awaryjnie),
	   nie powiększa kafelka. (Tekst skrócony w product-card.php.) */
	.pb2b-card-login-hint {
		font-size: 11px !important;
		line-height: 1.15 !important;
		margin-top: 5px !important;
		font-weight: 600 !important;
		max-width: 100% !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
	}
	/* PROBLEM 4 — badge „Cena po zalogowaniu": mieści się w karcie 2-kol,
	   wyśrodkowany, kompaktowy, bez wychodzenia poza obrys, nie za wysoki. */
	.pb2b-shop-shell .pb2b-card-price-locked,
	.pb2b-product-page .pb2b-card-price-locked {
		font-size: 11px !important;
		padding: 3px 8px !important;
		max-width: 100% !important;
		justify-content: center !important;
		text-align: center !important;
		white-space: normal !important;
		overflow-wrap: anywhere !important;
	}
	/* Kłódka mniejsza, by tekst się mieścił. */
	.pb2b-shop-shell .pb2b-card-price-locked svg,
	.pb2b-product-page .pb2b-card-price-locked svg {
		width: 10px !important;
		height: 10px !important;
		flex: 0 0 10px !important;
	}
}

/* =====================================================================
 * v2.12.67 — QUICK VIEW („oko") PRZYWRÓCONY na publicznym kafelku gościa.
 * Przycisk i cały mechanizm już istniały: AJAX `phoenix_b2b_shop_quick_view`
 * jest zarejestrowany także jako `nopriv` (działa bez logowania), handler w
 * shop.js jest delegowany na `document` (łapie też kafelki z AJAX/paginacji),
 * a ajax_quick_view() używa viewer_caps() → CENY B2B UKRYTE dla gościa. W
 * product-card.php zdjęto jedynie bramkę `! $is_guest` przy przycisku.
 *
 * Tu tylko domykamy ROZMIAR na mobile: bazowy .pb2b-card-btn ma na ≤767px
 * height:35px, więc samo „oko" (width:44px) byłoby 44×35 (nie kwadrat).
 * Ustawiamy rząd akcji na równe 44px i „oko" na kwadrat 44×44 — wyrównane z
 * „Zobacz produkt", ikona wyśrodkowana, główny przycisk się nie zwęża.
 *
 * Plik public-only (NIE ładuje się w panelu klienta) → osadzony sklep w panelu
 * zachowuje swój wygląd. Reguła obejmuje WSZYSTKIE publiczne konteksty kafelka
 * (home/sekcje, /sklep/, podobne i polecane na karcie produktu).
 * ===================================================================== */
@media (max-width: 767px) {
	/* Główny + „oko" tej samej wysokości (44px) → idealne wyrównanie pionowe
	   i lepszy tap-target; główny nadal flex:1 (z product-card.css). */
	.pb2b-card-actions-row > .pb2b-card-btn { height: 44px !important; }
	/* „Oko": stały kwadrat 44px, ikona wyśrodkowana. */
	.pb2b-card-actions-row > .pb2b-card-btn-qv {
		flex: 0 0 44px !important;
		width: 44px !important;
		min-width: 44px !important;
		height: 44px !important;
		padding: 0 !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
	}
}
