/* ControlByte — Shop Styling
 * Targets WooCommerce archive (/sklep/, /product-category/*)
 * Brand: #385CCA
 */

/* Inter font on shop / product / landing pages — better Polish glyphs than Poppins.
   Body-class scoping prevents leaking onto Tutor LMS / dashboard / lessons. */
body.woocommerce-shop,
body.archive-shop,
body.tax-product_cat,
body.single-product,
body.cbpc-landing {
	font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
	font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
/* Force Inter on ALL descendants — theme has per-element font-family rules
   (p, .price, .button, label, etc) that win against body inheritance. */
body.woocommerce-shop *,
body.archive-shop *,
body.tax-product_cat *,
body.single-product *,
body.cbpc-landing * {
	font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
}
/* Tighter letter-spacing on headings/product titles for Inter's clean UI feel. */
body.woocommerce-shop :is(h1, h2, h3, h4, .product_title, .product-title, .woocommerce-loop-product__title),
body.archive-shop :is(h1, h2, h3, h4, .product_title, .product-title, .woocommerce-loop-product__title),
body.tax-product_cat :is(h1, h2, h3, h4, .product_title, .product-title, .woocommerce-loop-product__title),
body.single-product :is(h1, h2, h3, h4, .product_title, .product-title, .woocommerce-loop-product__title),
body.cbpc-landing :is(h1, h2, h3, h4, .product_title, .product-title, .woocommerce-loop-product__title) {
	letter-spacing: -0.015em;
}
/* RESTORE icon fonts — FontAwesome / dashicons / linearicons get their glyph font back. */
body.woocommerce-shop :is(.fa, .fas, .far, .fab, .fal, .fa-solid, .fa-regular, .fa-light, .fa-brands, [class^="fa-"], [class*=" fa-"]),
body.archive-shop :is(.fa, .fas, .far, .fab, .fal, .fa-solid, .fa-regular, .fa-light, .fa-brands, [class^="fa-"], [class*=" fa-"]),
body.tax-product_cat :is(.fa, .fas, .far, .fab, .fal, .fa-solid, .fa-regular, .fa-light, .fa-brands, [class^="fa-"], [class*=" fa-"]),
body.single-product :is(.fa, .fas, .far, .fab, .fal, .fa-solid, .fa-regular, .fa-light, .fa-brands, [class^="fa-"], [class*=" fa-"]),
body.cbpc-landing :is(.fa, .fas, .far, .fab, .fal, .fa-solid, .fa-regular, .fa-light, .fa-brands, [class^="fa-"], [class*=" fa-"]) {
	font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", "Font Awesome 5 Pro", "Font Awesome 5 Free", FontAwesome !important;
}
body.woocommerce-shop :is(.dashicons, [class^="dashicons-"], [class*=" dashicons-"]),
body.archive-shop :is(.dashicons, [class^="dashicons-"], [class*=" dashicons-"]),
body.tax-product_cat :is(.dashicons, [class^="dashicons-"], [class*=" dashicons-"]),
body.single-product :is(.dashicons, [class^="dashicons-"], [class*=" dashicons-"]),
body.cbpc-landing :is(.dashicons, [class^="dashicons-"], [class*=" dashicons-"]) {
	font-family: "dashicons" !important;
}

:root {
	--cbpc-brand:        #385CCA;
	--cbpc-brand-dark:   #2848A3;
	--cbpc-brand-darker: #1F3879;
	--cbpc-brand-soft:   rgba(56, 92, 202, 0.08);
	--cbpc-ink:          #1A2240;
	--cbpc-ink-soft:     #5A638A;
	--cbpc-line:         #EBEEF5;
	--cbpc-bg-soft:      #F4F6FB;
}

/* ───────────────────────  HERO  ─────────────────────── */
.cbpc-shop-hero {
	margin: 0 0 24px;
	padding: 60px 40px;
	border-radius: 18px;
	background:
		radial-gradient(120% 80% at 15% 10%, rgba(255,255,255,0.18) 0%, transparent 60%),
		radial-gradient(120% 100% at 85% 100%, rgba(0,0,0,0.18) 0%, transparent 55%),
		linear-gradient(135deg, var(--cbpc-brand) 0%, var(--cbpc-brand-darker) 100%);
	color: #fff;
	box-shadow: 0 14px 40px -16px rgba(56, 92, 202, 0.35);
	position: relative;
	overflow: hidden;
	min-height: 360px;
}
/* With background image: full-bleed photo with dark gradient overlay for readability.
   Anchor to top-right so the subject's head stays fully visible. */
.cbpc-shop-hero--bg {
	background-size: cover !important;
	background-position: right top !important;
	background-repeat: no-repeat !important;
}
.cbpc-shop-hero--bg .cbpc-shop-hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(95deg,
			rgba(15, 26, 59, 0.92) 0%,
			rgba(31, 56, 121, 0.82) 35%,
			rgba(56, 92, 202, 0.45) 65%,
			rgba(31, 56, 121, 0.25) 100%);
	z-index: 1;
}
.cbpc-shop-hero--bg::after {
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(80% 60% at 20% 50%, rgba(15, 26, 59, 0.7) 0%, transparent 70%);
	z-index: 1;
	pointer-events: none;
}
.cbpc-shop-hero::after {
	content: "";
	position: absolute;
	right: -80px;
	top: -80px;
	width: 280px;
	height: 280px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(255,255,255,0.16) 0%, transparent 70%);
	pointer-events: none;
}
.cbpc-shop-hero__inner {
	position: relative;
	z-index: 2;
	max-width: 620px;
}
.cbpc-shop-hero__badge {
	display: inline-block;
	padding: 5px 14px;
	border-radius: 999px;
	background: rgba(255,255,255,0.18);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin-bottom: 18px;
	backdrop-filter: blur(4px);
}
.cbpc-shop-hero__title {
	color: #fff !important;
	font-size: clamp(1.6rem, 3.2vw, 2.4rem) !important;
	font-weight: 800 !important;
	margin: 0 0 14px !important;
	line-height: 1.18 !important;
	letter-spacing: -0.01em;
}
.cbpc-shop-hero__subtitle {
	color: rgba(255,255,255,0.92);
	font-size: clamp(0.98rem, 1.5vw, 1.08rem);
	line-height: 1.55;
	margin: 0 0 20px;
}
.cbpc-shop-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin-top: 4px;
}
.cbpc-shop-hero__meta-item {
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	font-weight: 600;
	color: rgba(255,255,255,0.95);
}

/* ─────────────────  TILE CARDS  ───────────────── */
.cbpc-shop-tiles {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
	margin: 0 0 28px;
}
.cbpc-shop-tiles--3 {
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
@media (max-width: 1100px) {
	.cbpc-shop-tiles--3 {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 760px) {
	.cbpc-shop-tiles--3 {
		grid-template-columns: 1fr;
	}
}
.cbpc-shop-tile {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	background: #fff;
	border: 1px solid var(--cbpc-line);
	border-radius: 18px;
	overflow: hidden;
	text-decoration: none !important;
	color: var(--cbpc-ink) !important;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
	box-shadow: 0 2px 10px -4px rgba(20, 30, 80, 0.08);
}
.cbpc-shop-tile:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 36px -16px rgba(56, 92, 202, 0.32);
	border-color: var(--cbpc-brand);
	color: var(--cbpc-ink) !important;
}
.cbpc-shop-tile__art {
	flex: 0 0 42%;
	min-height: 200px;
	background: linear-gradient(135deg, #F4F6FB 0%, #E8ECF8 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	position: relative;
}
.cbpc-shop-tile__art img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: transform 0.4s ease;
}
.cbpc-shop-tile:hover .cbpc-shop-tile__art img {
	transform: scale(1.04);
}
.cbpc-shop-tile__art svg {
	width: 100%;
	height: 100%;
	display: block;
}
.cbpc-shop-tile__body {
	flex: 1;
	padding: 24px 26px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.cbpc-shop-tile__eyebrow {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--cbpc-brand-soft);
	color: var(--cbpc-brand);
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	margin-bottom: 10px;
	width: max-content;
}
.cbpc-shop-tile__title {
	font-size: clamp(1.2rem, 2vw, 1.45rem) !important;
	font-weight: 800 !important;
	margin: 0 0 8px !important;
	color: var(--cbpc-ink) !important;
	line-height: 1.2 !important;
}
.cbpc-shop-tile__desc {
	color: var(--cbpc-ink-soft);
	font-size: 0.95rem;
	line-height: 1.5;
	margin: 0 0 14px;
}
.cbpc-shop-tile__cta {
	color: var(--cbpc-brand);
	font-weight: 700;
	font-size: 0.95rem;
	transition: color 0.15s ease, transform 0.2s ease;
	display: inline-flex;
	align-items: center;
}
.cbpc-shop-tile:hover .cbpc-shop-tile__cta {
	color: var(--cbpc-brand-dark);
	transform: translateX(4px);
}
@media (max-width: 760px) {
	.cbpc-shop-tiles { grid-template-columns: 1fr; gap: 14px; }
	.cbpc-shop-tile { flex-direction: column; }
	.cbpc-shop-tile__art { flex: 0 0 140px; min-height: 140px; width: 100%; }
}

/* ─────────────────────  PILLS  ───────────────────── */
.cbpc-shop-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 32px;
}
.cbpc-shop-pills__pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 16px;
	border-radius: 999px;
	background: var(--cbpc-bg-soft);
	color: var(--cbpc-ink) !important;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none !important;
	border: 1px solid transparent;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease;
	line-height: 1.2;
}
.cbpc-shop-pills__pill:hover,
.cbpc-shop-pills__pill:focus-visible {
	background: var(--cbpc-brand-soft);
	color: var(--cbpc-brand) !important;
	border-color: var(--cbpc-brand);
	transform: translateY(-1px);
	box-shadow: 0 4px 12px -4px rgba(56, 92, 202, 0.3);
}
.cbpc-shop-pills__pill--all {
	background: var(--cbpc-brand) !important;
	color: #fff !important;
}
.cbpc-shop-pills__pill--all:hover,
.cbpc-shop-pills__pill--all:focus-visible {
	background: var(--cbpc-brand-dark) !important;
	color: #fff !important;
	border-color: var(--cbpc-brand-dark);
}
.cbpc-shop-pills__pill.is-active:not(.cbpc-shop-pills__pill--all) {
	background: var(--cbpc-brand) !important;
	color: #fff !important;
	border-color: var(--cbpc-brand);
}
.cbpc-shop-pills__pill.is-active:not(.cbpc-shop-pills__pill--all) .cbpc-shop-pills__count {
	background: rgba(255,255,255,0.22);
	color: #fff;
}
.cbpc-shop-pills__pill--all.is-active {
	box-shadow: 0 4px 12px -4px rgba(56, 92, 202, 0.5);
}
/* Hide "All" highlight when category filter is active */
.cbpc-shop-pills:has(.cbpc-shop-pills__pill.is-active:not(.cbpc-shop-pills__pill--all)) .cbpc-shop-pills__pill--all {
	background: var(--cbpc-bg-soft) !important;
	color: var(--cbpc-ink) !important;
}
.cbpc-shop-pills:has(.cbpc-shop-pills__pill.is-active:not(.cbpc-shop-pills__pill--all)) .cbpc-shop-pills__pill--all:hover {
	background: var(--cbpc-brand-soft) !important;
	color: var(--cbpc-brand) !important;
}
.cbpc-shop-pills__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 20px;
	padding: 0 6px;
	font-size: 11px;
	font-weight: 700;
	border-radius: 999px;
	background: rgba(0,0,0,0.06);
	color: inherit;
}
.cbpc-shop-pills__pill--all .cbpc-shop-pills__count {
	background: rgba(255,255,255,0.22);
}

/* ───────────────────  PRODUCT TILES  ─────────────────── */
/* Force 2-column grid for [products] shortcode on landing pages */
body.cbpc-landing .woocommerce .products,
body.cbpc-landing .woocommerce.columns-2 .products {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 24px;
	margin: 0;
	padding: 0;
}
@media (max-width: 760px) {
	body.cbpc-landing .woocommerce .products {
		grid-template-columns: 1fr !important;
	}
}

/* Landing-page product tile: image left, content right (horizontal card).
   Make the entire card clickable by stretching the thumbnail's <a>. */
body.cbpc-landing .products .grid-item.product {
	background: #fff;
	border: 1px solid var(--cbpc-line) !important;
	border-radius: 16px;
	overflow: hidden;
	padding: 0 !important;
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
	box-shadow: 0 2px 10px -4px rgba(20, 30, 80, 0.08);
	position: relative;
}
/* Stretched-link technique: the existing <a> inside the thumbnail spans the whole card. */
body.cbpc-landing .products .grid-item.product .woocommerce-LoopProduct-link::after,
body.cbpc-landing .products .grid-item.product .thumbnail a::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
}
/* Title link sits above the stretched layer so it stays focusable for SR users. */
body.cbpc-landing .products .grid-item.product .product-info {
	position: relative;
	z-index: 3;
}
body.cbpc-landing .products .grid-item.product .product-info a {
	position: relative;
	z-index: 4;
}
body.cbpc-landing .products .grid-item.product:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 36px -16px rgba(56, 92, 202, 0.30);
	border-color: var(--cbpc-brand) !important;
}
body.cbpc-landing .products .grid-item.product .product-wrapper {
	display: grid;
	grid-template-columns: 200px 1fr;
	align-items: stretch;
	min-height: 240px;
}
body.cbpc-landing .products .grid-item.product .product-thumbnail {
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #F4F6FB 0%, #E8ECF8 100%);
	padding: 16px;
	position: relative;
}
body.cbpc-landing .products .grid-item.product .product-badges {
	top: 12px !important;
	left: 12px !important;
	right: auto !important;
	z-index: 2;
}
body.cbpc-landing .products .grid-item.product .thumbnail,
body.cbpc-landing .products .grid-item.product .product-main-image {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}
body.cbpc-landing .products .grid-item.product .product-main-image img,
body.cbpc-landing .products .grid-item.product .thumbnail img {
	max-height: 200px !important;
	max-width: 100% !important;
	width: auto !important;
	height: auto !important;
	object-fit: contain !important;
	margin: 0 auto !important;
}
/* Hide the in-thumbnail button — we render content area properly via product-info */
body.cbpc-landing .products .grid-item.product .product-thumbnail .product-actions {
	position: absolute;
	bottom: 12px;
	left: 12px;
	right: 12px;
	margin: 0;
	display: none; /* hidden — primary CTA lives in product-info */
}
body.cbpc-landing .products .grid-item.product .product-info {
	padding: 22px 24px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 12px;
	text-align: left;
}
body.cbpc-landing .products .grid-item.product .product-info > * {
	margin: 0 !important;
}
body.cbpc-landing .products .grid-item.product .product-info h3,
body.cbpc-landing .products .grid-item.product .product-info .product-title,
body.cbpc-landing .products .grid-item.product .product-info .woocommerce-loop-product__title {
	order: 1;
	font-size: 1.08rem !important;
	font-weight: 700 !important;
	color: var(--cbpc-ink) !important;
	line-height: 1.35 !important;
}
body.cbpc-landing .products .grid-item.product .product-info .product-title a,
body.cbpc-landing .products .grid-item.product .product-info h3 a {
	color: inherit !important;
}
body.cbpc-landing .products .grid-item.product .product-info .price,
body.cbpc-landing .products .grid-item.product .product-info p.price,
body.cbpc-landing .products .grid-item.product .product-info span.price {
	order: 2;
	font-size: 1.6rem !important;
	font-weight: 800 !important;
	color: var(--cbpc-brand) !important;
}
/* Render a CTA inline-block link styled like our brand button — using the
   thumbnail's hidden <a class="button"> via :after isn't possible, so we
   restore an action row inside product-info via flex order. */
body.cbpc-landing .products .grid-item.product .product-info::after {
	order: 3;
	content: "Zobacz szczegóły →";
	display: inline-block;
	margin-top: 6px;
	color: var(--cbpc-brand);
	font-weight: 700;
	font-size: 0.95rem;
	width: max-content;
	transition: transform 0.15s ease;
}
body.cbpc-landing .products .grid-item.product:hover .product-info::after {
	transform: translateX(4px);
}

@media (max-width: 760px) {
	body.cbpc-landing .products .grid-item.product .product-wrapper {
		grid-template-columns: 1fr;
	}
	body.cbpc-landing .products .grid-item.product .product-thumbnail {
		min-height: 200px;
	}
}

/* Uniform thumbnail box on shop / category archives / related products —
   same 480:304 landscape ratio as Tutor LMS course thumbnails. */
body:not(.cbpc-landing) .grid-item.product .product-thumbnail,
body:not(.cbpc-landing) .grid-item.product .thumbnail,
body:not(.cbpc-landing) .grid-item.product .product-main-image,
body:not(.cbpc-landing) li.product .product-thumbnail,
body:not(.cbpc-landing) li.product .thumbnail,
body:not(.cbpc-landing) li.product .product-main-image,
body:not(.cbpc-landing) .products .product .product-thumbnail,
body:not(.cbpc-landing) .products .product .product-main-image {
	aspect-ratio: 480 / 304;
	overflow: hidden;
	display: flex !important;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #F4F6FB 0%, #E8ECF8 100%);
	width: 100%;
	position: relative;
}
body:not(.cbpc-landing) .grid-item.product .thumbnail,
body:not(.cbpc-landing) li.product .thumbnail,
body:not(.cbpc-landing) .products .product .thumbnail {
	aspect-ratio: unset;
	background: none;
	height: 100%;
}
body:not(.cbpc-landing) .grid-item.product .product-main-image,
body:not(.cbpc-landing) li.product .product-main-image,
body:not(.cbpc-landing) .products .product .product-main-image {
	aspect-ratio: unset;
	background: none;
	height: 100%;
}
/* Inner link + image wrapper must fill the 480:304 box (Edumall forces them
   to square via padding-top hack, which clipped the bottom of the image). */
body:not(.cbpc-landing) .grid-item.product .thumbnail a,
body:not(.cbpc-landing) .grid-item.product .woocommerce-LoopProduct-link,
body:not(.cbpc-landing) li.product .thumbnail a,
body:not(.cbpc-landing) li.product .woocommerce-LoopProduct-link,
body:not(.cbpc-landing) .products .product .woocommerce-LoopProduct-link {
	width: 100% !important;
	height: 100% !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 0 !important;
	overflow: hidden;
}
body:not(.cbpc-landing) .grid-item.product .product-main-image img,
body:not(.cbpc-landing) .grid-item.product .thumbnail img,
body:not(.cbpc-landing) li.product .product-main-image img,
body:not(.cbpc-landing) li.product .thumbnail img,
body:not(.cbpc-landing) li.product img.wp-post-image,
body:not(.cbpc-landing) .products .product img.wp-post-image,
body:not(.cbpc-landing) .products .product .product-thumbnail img,
body:not(.cbpc-landing) .products .product .product-main-image img {
	width: auto !important;
	height: auto !important;
	max-width: 100% !important;
	max-height: 100% !important;
	object-fit: contain !important;
	object-position: center !important;
	padding: 8px;
	box-sizing: border-box;
	display: block;
}

/* Edumall uses .edumall-grid > .grid-item.product, not ul.products li.product */
.edumall-grid .grid-item.product,
.edumall-grid .product,
.products .grid-item.product,
ul.products li.product {
	background: #fff;
	border-radius: 16px;
	overflow: hidden;
	border: 1px solid var(--cbpc-line) !important;
	box-shadow: 0 2px 8px -2px rgba(20, 30, 80, 0.05);
	transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.edumall-grid .grid-item.product:hover,
.edumall-grid .product:hover,
.products .grid-item.product:hover,
ul.products li.product:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 32px -16px rgba(56, 92, 202, 0.30);
	border-color: var(--cbpc-brand) !important;
}

/* Image area */
.edumall-grid .grid-item.product .product-thumbnail img,
.edumall-grid .grid-item.product a img,
ul.products li.product img {
	transition: transform 0.4s ease;
}
.edumall-grid .grid-item.product:hover .product-thumbnail img,
.edumall-grid .grid-item.product:hover a img,
ul.products li.product:hover img {
	transform: scale(1.03);
}

/* "Add to cart" button */
.edumall-grid .grid-item.product .button,
.edumall-grid .grid-item.product .add_to_cart_button,
.edumall-grid .grid-item.product .edumall-button,
ul.products li.product .button,
ul.products li.product .add_to_cart_button {
	background: var(--cbpc-brand) !important;
	color: #fff !important;
	border-radius: 10px !important;
	font-weight: 700 !important;
	letter-spacing: 0.01em;
	padding: 10px 16px !important;
	transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease !important;
	box-shadow: 0 4px 10px -4px rgba(56, 92, 202, 0.45) !important;
	border: none !important;
}
.edumall-grid .grid-item.product .button:hover,
.edumall-grid .grid-item.product .add_to_cart_button:hover,
ul.products li.product .button:hover {
	background: var(--cbpc-brand-dark) !important;
	transform: translateY(-1px);
	box-shadow: 0 8px 16px -6px rgba(56, 92, 202, 0.55) !important;
}
.added_to_cart {
	border-radius: 10px !important;
	font-weight: 600 !important;
}

/* Price — match Tutor course card price 1:1: Poppins / 14px / 400 / #696969. */
.edumall-grid .grid-item.product .price,
.products .product .price,
.grid-item.product .price,
li.product .price,
.edumall-grid .grid-item.product .price .amount,
.products .product .price .amount,
.grid-item.product .price .amount,
li.product .price .amount,
.edumall-grid .grid-item.product .price bdi,
.products .product .price bdi,
.grid-item.product .price bdi,
li.product .price bdi {
	font-family: Poppins, sans-serif !important;
	color: #696969 !important;
	font-weight: 400 !important;
	font-size: 14px !important;
}
.edumall-grid .grid-item.product .price,
.products .product .price,
.grid-item.product .price,
li.product .price {
	margin-top: 4px !important;
}
.edumall-grid .grid-item.product .price del,
.edumall-grid .grid-item.product .price del .amount,
.edumall-grid .grid-item.product .price del bdi,
.products .product .price del,
.products .product .price del .amount,
.products .product .price del bdi,
.grid-item.product .price del,
.grid-item.product .price del .amount,
.grid-item.product .price del bdi,
li.product .price del,
li.product .price del .amount,
li.product .price del bdi {
	color: #B0B3C4 !important;
	font-weight: 400 !important;
	opacity: 0.85;
	font-size: 0.85em;
	margin-right: 4px;
}
/* ins (current price wrapper — Edumall uses it even for non-sale products,
   so don't color it red blindly). Keep it gray same as parent. */
.edumall-grid .grid-item.product .price ins,
.edumall-grid .grid-item.product .price ins .amount,
.edumall-grid .grid-item.product .price ins bdi,
.products .product .price ins,
.products .product .price ins .amount,
.products .product .price ins bdi,
.grid-item.product .price ins,
.grid-item.product .price ins .amount,
.grid-item.product .price ins bdi,
li.product .price ins,
li.product .price ins .amount,
li.product .price ins bdi {
	text-decoration: none;
	color: #696969 !important;
	font-weight: 600 !important;
}
/* Real sale = product card carries .sale class — there the current ins is red,
   matching Edumall's stock #D31819 so promotions look native. */
.edumall-grid .grid-item.product.sale .price ins,
.edumall-grid .grid-item.product.sale .price ins .amount,
.edumall-grid .grid-item.product.sale .price ins bdi,
.products .product.sale .price ins,
.products .product.sale .price ins .amount,
.products .product.sale .price ins bdi,
.grid-item.product.sale .price ins,
.grid-item.product.sale .price ins .amount,
.grid-item.product.sale .price ins bdi,
li.product.sale .price ins,
li.product.sale .price ins .amount,
li.product.sale .price ins bdi {
	color: #D31819 !important;
	font-weight: 700 !important;
}

/* Sale / New badges (Edumall has .onsale and .product-badges __new) */
.edumall-grid .grid-item.product .onsale,
ul.products li.product .onsale {
	background: linear-gradient(135deg, #FF5A5F 0%, #E03540 100%) !important;
	color: #fff !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	padding: 4px 12px !important;
	min-height: auto !important;
	height: auto !important;
	line-height: 1.2 !important;
	font-size: 12px !important;
	letter-spacing: 0.02em;
	box-shadow: 0 4px 10px -4px rgba(224, 53, 64, 0.5) !important;
	border: none !important;
}
.edumall-grid .grid-item.product .product-badges .new,
.edumall-grid .grid-item.product .badge-new,
.edumall-grid .grid-item.product [class*="badge-new"] {
	background: var(--cbpc-brand) !important;
	color: #fff !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	padding: 4px 12px !important;
	font-size: 12px !important;
	box-shadow: 0 4px 10px -4px rgba(56, 92, 202, 0.5) !important;
}

/* Product title — match Tutor LMS course card 1:1: Poppins / 13px / 700 / #252525.
   Body selector boosts specificity to beat Elementor-injected sizes on the home. */
body .edumall-grid .grid-item.product .product-title,
body .edumall-grid .grid-item.product h2,
body .edumall-grid .grid-item.product h3,
body .edumall-grid .grid-item.product .woocommerce-loop-product__title,
body .products .product .product-title,
body .products .product h3,
body .grid-item.product .product-title,
body .grid-item.product h3,
body .grid-item.product .woocommerce-loop-product__title,
body ul.products li.product h2,
body ul.products li.product h3,
body ul.products li.product .product-title,
body .modern-grid .grid-item.product .product-title,
body .modern-grid .grid-item.product h3 {
	font-family: Poppins, sans-serif !important;
	color: #252525 !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	line-height: 1.45 !important;
	letter-spacing: normal !important;
	margin: 6px 0 0 !important;
	padding: 0 8px;
	transition: color 0.2s ease;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.9em;
	order: 1;
}
.edumall-grid .grid-item.product .product-title a,
.edumall-grid .grid-item.product h3 a,
.products .product h3 a,
.products .product .product-title a,
.grid-item.product h3 a,
ul.products li.product h3 a,
ul.products li.product .product-title a {
	color: inherit !important;
}
/* Product-info area: flex column with title above price (Tutor order). */
.edumall-grid .grid-item.product .product-info,
.products .product .product-info,
.grid-item.product .product-info,
ul.products li.product .product-info {
	display: flex !important;
	flex-direction: column !important;
	padding: 14px 12px 16px;
	text-align: center;
}
/* Price — Tutor uses 14px / 400 / #696969. Sits *under* the title. */
.edumall-grid .grid-item.product .product-info .price,
.products .product .product-info .price,
.grid-item.product .product-info .price,
ul.products li.product .product-info .price {
	font-size: 14px !important;
	font-weight: 400 !important;
	line-height: 1.4 !important;
	margin: 6px 0 0 !important;
	order: 2 !important;
}
.edumall-grid .grid-item.product:hover .product-title,
.edumall-grid .grid-item.product:hover h2,
.edumall-grid .grid-item.product:hover h3,
.edumall-grid .grid-item.product:hover .woocommerce-loop-product__title,
.edumall-grid .grid-item.product:hover .product-title a,
ul.products li.product:hover h2,
ul.products li.product:hover h3,
ul.products li.product:hover .product-title {
	color: var(--cbpc-brand) !important;
}
.edumall-grid .grid-item.product .product-title a {
	color: inherit !important;
}

/* ─────────────────  Shop heading (Edumall page-title-bar)  ───────────────── */
body.woocommerce-shop .page-title-bar,
body.woocommerce-shop .page-title-bar-heading,
body.woocommerce-shop .page-title-bar-heading .heading,
body.archive-shop .page-title-bar,
body.archive-shop .page-title-bar-heading,
body.tax-product_cat .page-title-bar,
body.tax-product_cat .page-title-bar-heading {
	display: none !important; /* replaced by hero */
}
/* Hide duplicate term description above hero on product category archives */
body.tax-product_cat .term-description {
	display: none !important;
}

/* ─────────────────  Sidebar tweaks  ───────────────── */
.widget_product_categories a,
.woocommerce-widget-layered-nav a {
	transition: color 0.15s ease;
}
.widget_product_categories a:hover,
.woocommerce-widget-layered-nav a:hover {
	color: var(--cbpc-brand);
}

/* ═════════════════════════════════════════════════════
   OPROGRAMOWANIE LANDING PAGE  (/oprogramowanie/)
   ═════════════════════════════════════════════════════ */
/* Hide the duplicate Edumall page title bar on our landing pages */
body.cbpc-landing .page-title-bar,
body.cbpc-landing .page-title-bar-heading,
body.cbpc-landing .page-title-bar-inner {
	display: none !important;
}
body.page .cbpc-soft-hero {
	margin: 0 0 28px;
	padding: 52px 38px;
	border-radius: 18px;
	background:
		radial-gradient(120% 100% at 15% 10%, rgba(255,255,255,0.18) 0%, transparent 60%),
		linear-gradient(135deg, var(--cbpc-brand) 0%, var(--cbpc-brand-darker) 100%);
	color: #fff;
	box-shadow: 0 14px 40px -16px rgba(56, 92, 202, 0.35);
}
body.page .cbpc-soft-hero__inner { max-width: 820px; }
body.page .cbpc-soft-hero__badge {
	display: inline-block;
	padding: 5px 14px;
	border-radius: 999px;
	background: rgba(255,255,255,0.18);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin-bottom: 18px;
}
body.page .cbpc-soft-hero__title {
	color: #fff !important;
	font-size: clamp(1.6rem, 3vw, 2.4rem) !important;
	font-weight: 800 !important;
	margin: 0 0 14px !important;
	line-height: 1.18 !important;
}
body.page .cbpc-soft-hero__subtitle {
	color: rgba(255,255,255,0.92);
	font-size: clamp(0.98rem, 1.5vw, 1.08rem);
	line-height: 1.55;
	margin: 0 0 22px;
}
body.page .cbpc-soft-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 22px;
	color: #fff;
	font-weight: 600;
	font-size: 14px;
}
body.page .cbpc-soft-cta {
	margin: 50px 0 0;
	padding: 36px 30px;
	background: var(--cbpc-bg-soft);
	border-radius: 16px;
	border: 1px solid var(--cbpc-line);
	text-align: center;
}
body.page .cbpc-soft-cta h2 {
	font-size: 1.4rem !important;
	font-weight: 800 !important;
	color: var(--cbpc-ink) !important;
	margin: 0 0 10px !important;
}
body.page .cbpc-soft-cta p {
	color: var(--cbpc-ink-soft);
	margin: 0 0 22px;
	max-width: 620px;
	margin-left: auto;
	margin-right: auto;
	line-height: 1.55;
}
body.page .cbpc-soft-cta__btn {
	display: inline-block;
	background: var(--cbpc-brand);
	color: #fff !important;
	padding: 12px 26px;
	border-radius: 10px;
	font-weight: 700;
	text-decoration: none !important;
	box-shadow: 0 8px 16px -6px rgba(56, 92, 202, 0.5);
	transition: background 0.2s ease, transform 0.15s ease;
}
body.page .cbpc-soft-cta__btn:hover {
	background: var(--cbpc-brand-dark);
	transform: translateY(-2px);
	color: #fff !important;
}

/* ═════════════════════════════════════════════════════
   SINGLE PRODUCT PAGE
   ═════════════════════════════════════════════════════ */

/* Hide sidebar on single product — full-width content */
body.single-product .page-sidebar,
body.single-product .page-sidebar-left,
body.single-product .page-sidebar-right,
body.single-product .sidebar,
body.single-product aside.sidebar {
	display: none !important;
}
/* Expand the content column to full width */
body.single-product .page-content > .container > .row > [class*="col-"],
body.single-product .page-main-content {
	flex: 0 0 100% !important;
	max-width: 100% !important;
	width: 100% !important;
}

/* Product header: image + summary box layout polish */
body.single-product div.product .summary,
body.single-product div.product .entry-summary {
	padding: 8px 0 0;
}

/* Product title */
body.single-product .product_title,
body.single-product h1.product_title {
	font-size: clamp(1.55rem, 2.8vw, 2rem) !important;
	font-weight: 800 !important;
	line-height: 1.18 !important;
	letter-spacing: -0.01em;
	color: var(--cbpc-ink) !important;
	margin: 0 0 18px !important;
}

/* Price block */
body.single-product .product .price,
body.single-product .summary .price {
	color: var(--cbpc-brand) !important;
	font-size: 1.8rem !important;
	font-weight: 800 !important;
	margin: 0 0 6px !important;
}
body.single-product .product .price del {
	color: var(--cbpc-ink-soft) !important;
	font-weight: 500 !important;
	opacity: 0.55;
	font-size: 0.7em;
	margin-right: 8px;
}
body.single-product .product .price ins {
	text-decoration: none;
	color: var(--cbpc-brand) !important;
}

/* Short description (the small text under price) */
body.single-product .woocommerce-product-details__short-description {
	color: var(--cbpc-ink) !important;
	line-height: 1.6;
	font-size: 1rem;
	margin: 18px 0 22px;
	padding: 16px 18px;
	background: var(--cbpc-bg-soft);
	border-left: 4px solid var(--cbpc-brand);
	border-radius: 0 12px 12px 0;
}

/* Quantity input */
body.single-product .quantity input.qty {
	border: 1px solid var(--cbpc-line) !important;
	border-radius: 10px !important;
	height: 48px !important;
	padding: 0 10px !important;
	font-weight: 700 !important;
	color: var(--cbpc-ink) !important;
}

/* Add to cart button — make it big & branded */
body.single-product .single_add_to_cart_button,
body.single-product .summary form.cart button[type="submit"] {
	background: var(--cbpc-brand) !important;
	color: #fff !important;
	border-radius: 12px !important;
	font-weight: 700 !important;
	font-size: 1rem !important;
	padding: 14px 28px !important;
	letter-spacing: 0.01em;
	box-shadow: 0 8px 18px -6px rgba(56, 92, 202, 0.5) !important;
	transition: background 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease !important;
	border: none !important;
	width: 100%;
	max-width: 360px;
}
body.single-product .single_add_to_cart_button:hover {
	background: var(--cbpc-brand-dark) !important;
	transform: translateY(-2px);
	box-shadow: 0 14px 24px -8px rgba(56, 92, 202, 0.6) !important;
}

/* YITH Request-a-Quote button — branded outline style.
   JS in module rewrites the EN label to PL; CSS just styles the button. */
body.single-product .yith-ywraq-add-button .add-request-quote-button,
body.single-product .add-request-quote-button,
.add-request-quote-button {
	background: #fff !important;
	color: var(--cbpc-brand) !important;
	border: 2px solid var(--cbpc-brand) !important;
	border-radius: 12px !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	letter-spacing: 0.01em;
	padding: 14px 24px !important;
	line-height: 1.2 !important;
	transition: background 0.2s ease, color 0.2s ease, transform 0.15s ease !important;
	box-shadow: none !important;
	width: 100%;
	max-width: 360px;
	text-align: center;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	height: auto !important;
	min-height: 0 !important;
	box-sizing: border-box;
	text-decoration: none !important;
}
body.single-product .add-request-quote-button:hover,
.add-request-quote-button:hover {
	background: var(--cbpc-brand) !important;
	color: #fff !important;
	transform: translateY(-1px);
}
.browse-the-list a {
	color: var(--cbpc-brand) !important;
	font-weight: 600;
}

/* SKU + category meta */
body.single-product .product_meta {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--cbpc-line);
	font-size: 14px;
	color: var(--cbpc-ink-soft);
}
body.single-product .product_meta > span {
	display: block;
	margin-bottom: 4px;
}
body.single-product .product_meta a {
	color: var(--cbpc-brand);
	font-weight: 600;
}

/* Description heading divider */
body.single-product .woocommerce-Tabs-panel--description h2,
body.single-product .product .description h2,
body.single-product .product .woocommerce-tabs h2,
body.single-product div.product .description > h2:first-child {
	position: relative;
	padding-bottom: 12px;
	margin-bottom: 22px !important;
	font-weight: 800 !important;
	color: var(--cbpc-ink) !important;
}
body.single-product .woocommerce-Tabs-panel--description h2::after,
body.single-product div.product .description > h2:first-child::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 56px;
	height: 4px;
	border-radius: 4px;
	background: var(--cbpc-brand);
}

/* Description body — better readability */
body.single-product .woocommerce-Tabs-panel--description,
body.single-product .product .description,
body.single-product .product > .description {
	font-size: 1.02rem;
	line-height: 1.7;
	color: #2A3158;
	max-width: 920px;
}
body.single-product .woocommerce-Tabs-panel--description h2,
body.single-product .product .description h2 {
	font-size: 1.5rem !important;
	margin-top: 32px !important;
}
body.single-product .woocommerce-Tabs-panel--description h3,
body.single-product .product .description h3 {
	font-size: 1.2rem !important;
	font-weight: 700 !important;
	color: var(--cbpc-ink) !important;
	margin-top: 28px !important;
	margin-bottom: 12px !important;
}
body.single-product .woocommerce-Tabs-panel--description ul,
body.single-product .product .description ul {
	padding-left: 22px;
}
body.single-product .woocommerce-Tabs-panel--description li,
body.single-product .product .description li {
	margin-bottom: 8px;
	line-height: 1.6;
}
body.single-product .woocommerce-Tabs-panel--description strong,
body.single-product .product .description strong {
	color: var(--cbpc-ink);
	font-weight: 700;
}
body.single-product .woocommerce-Tabs-panel--description a,
body.single-product .product .description a {
	color: var(--cbpc-brand);
	font-weight: 600;
	border-bottom: 1px solid rgba(56, 92, 202, 0.3);
}
body.single-product .woocommerce-Tabs-panel--description a:hover,
body.single-product .product .description a:hover {
	color: var(--cbpc-brand-dark);
	border-bottom-color: var(--cbpc-brand);
}

/* Related products header */
body.single-product .related.products > h2,
body.single-product .upsells.products > h2,
body.single-product section.related > h2,
body.single-product section.upsells > h2 {
	font-size: 1.4rem !important;
	font-weight: 800 !important;
	color: var(--cbpc-ink) !important;
	margin-top: 48px !important;
	margin-bottom: 22px !important;
	position: relative;
	padding-bottom: 10px;
}
body.single-product section.related > h2::after,
body.single-product section.upsells > h2::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 48px;
	height: 4px;
	border-radius: 4px;
	background: var(--cbpc-brand);
}

/* "Rata 0% już od" PayU/credit installment link — subtle */
body.single-product a.payu-installments-link,
body.single-product .payu-installments,
body.single-product [class*="installment"] {
	font-size: 13px !important;
	color: var(--cbpc-ink-soft) !important;
}

/* Hide the giant Edumall page title bar on product pages — title is already
   shown by WooCommerce inside the product summary box */
body.single-product .page-title-bar,
body.single-product .page-title-bar-inner {
	display: none !important;
}

/* ─────────────────  Mobile  ───────────────── */
@media (max-width: 640px) {
	.cbpc-shop-hero {
		padding: 32px 22px;
		border-radius: 14px;
	}
	.cbpc-shop-hero__meta {
		gap: 8px 16px;
	}
	.cbpc-shop-pills {
		flex-wrap: nowrap;
		overflow-x: auto;
		padding-bottom: 8px;
		margin-bottom: 22px;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
		scrollbar-color: var(--cbpc-brand) transparent;
	}
	.cbpc-shop-pills::-webkit-scrollbar { height: 4px; }
	.cbpc-shop-pills::-webkit-scrollbar-thumb { background: var(--cbpc-brand); border-radius: 2px; }
	.cbpc-shop-pills__pill {
		flex-shrink: 0;
	}
}
