/* =========================================================================
   PS Beton – karta produktu
   Používá ji úvodní stránka i (po zapnutí) všechny výpisy e-shopu:
   kategorie, vyhledávání, související produkty, Elementor widget Produkty.
   ====================================================================== */

.psb-pcard {
	--psb-brand: #103B87;
	--psb-brand-dark: #0A2454;
	--psb-ink: #0F1E33;
	--psb-muted: #55606B;
	--psb-accent: #F5B400;
	--psb-line: #E2E0DB;
	--psb-ok: #1F6B3A;
	--psb-font: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
.psb-pcard, .psb-pcard *, .psb-pcard *::before, .psb-pcard *::after { box-sizing: border-box; }

/* Karta */
.psb-pcard {
	display: flex; flex-direction: column;
	background: #FFFFFF; border: 1px solid var(--psb-line); border-radius: 12px; overflow: hidden;
	font-family: var(--psb-font); color: var(--psb-ink); text-align: left;
	transition: box-shadow .2s, transform .2s;
}
.psb-pcard:hover { box-shadow: 0 12px 28px rgba(15,30,51,.10); transform: translateY(-2px); }
.psb-pcard a { text-decoration: none; box-shadow: none; }

.psb-pcard__media { position: relative; display: block; height: 220px; background: #FFFFFF; border-bottom: 1px solid var(--psb-line); }
.psb-pcard__media img { display: block; width: 100%; height: 100%; max-width: 100%; margin: 0 !important; object-fit: contain; padding: 12px; box-shadow: none; }
.psb-pcard__badge { position: absolute; top: 14px; left: 14px; z-index: 1; padding: 5px 10px; border-radius: 4px; background: var(--psb-brand); color: #FFFFFF; font-size: 12px; font-weight: 600; line-height: 1.3; }
.psb-pcard__badge--sale { background: var(--psb-accent); color: var(--psb-ink); font-weight: 700; }

.psb-pcard__body { padding: 20px; display: flex; flex-direction: column; gap: 10px; flex-grow: 1; }
.psb-pcard .psb-pcard__title { margin: 0; padding: 0; font-family: var(--psb-font); font-size: 16px; font-weight: 600; line-height: 1.4; letter-spacing: 0; text-transform: none; }
.psb-pcard .psb-pcard__title a { color: var(--psb-ink); }
.psb-pcard .psb-pcard__title a:hover { color: var(--psb-brand); text-decoration: underline; }

.psb-stock { font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.psb-stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.psb-stock--in { color: var(--psb-ok); }
.psb-stock--order { color: #8A5A00; }
.psb-stock--out { color: var(--psb-muted); }

.psb-pcard__price { margin-top: auto; display: flex; flex-direction: column; gap: 2px; }
.psb-pcard__now { font-weight: 700; font-size: 24px; line-height: 1.2; color: var(--psb-ink); }
.psb-pcard__now--ask { font-size: 20px; }
.psb-pcard__now del { font-weight: 400; font-size: 15px; color: var(--psb-muted); margin-left: 6px; }
.psb-pcard__sub { font-size: 13px; color: var(--psb-muted); }

/* Tlačítka v kartě */
.psb-pcard .psb-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	width: 100%; min-height: 44px; margin: 8px 0 0; padding: 0 18px;
	border-radius: 8px; border: 1.5px solid transparent;
	font-family: var(--psb-font); font-weight: 600; font-size: 15px; line-height: 1.2; text-transform: none; letter-spacing: 0;
	cursor: pointer; transition: background-color .15s, color .15s, border-color .15s;
}
.psb-pcard .psb-btn--dark { background: var(--psb-brand); color: #FFFFFF; }
.psb-pcard .psb-btn--dark:hover { background: var(--psb-brand-dark); color: #FFFFFF; }
.psb-pcard .psb-btn--outline { border-color: var(--psb-brand); color: var(--psb-brand); background: transparent; }
.psb-pcard .psb-btn--outline:hover { background: var(--psb-brand); color: #FFFFFF; }
.psb-pcard .psb-btn.loading { opacity: .6; pointer-events: none; }
.psb-pcard .psb-btn.added::after { content: "✓"; }
.psb-pcard .added_to_cart { display: none !important; } /* WooCommerce přidává odkaz „Zobrazit košík“ */
.psb-pcard a:focus-visible { outline: 3px solid var(--psb-accent); outline-offset: 2px; }

/* -------------------------------------------------------------------------
   Mřížka výpisů v e-shopu (jen když jsou karty zapnuté – třída na <body>)
   ---------------------------------------------------------------------- */
body.psb-cards ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
	margin: 0 0 32px !important; padding: 0 !important; list-style: none;
}
body.psb-cards ul.products::before,
body.psb-cards ul.products::after { display: none !important; content: none !important; }
body.psb-cards ul.products.columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.psb-cards ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.psb-cards ul.products.columns-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
body.psb-cards ul.products.columns-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
body.psb-cards ul.products li.product.psb-pcard {
	width: auto !important; float: none !important; clear: none !important;
	margin: 0 !important; padding: 0 !important; min-height: 0;
}

@media (max-width: 1100px) {
	body.psb-cards ul.products,
	body.psb-cards ul.products[class*="columns-"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
	body.psb-cards ul.products,
	body.psb-cards ul.products[class*="columns-"] { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
	.psb-pcard__media { height: 180px; }
	.psb-pcard__body { padding: 16px; }
	.psb-pcard__now { font-size: 20px; }
}
@media (max-width: 480px) {
	body.psb-cards ul.products,
	body.psb-cards ul.products[class*="columns-"] { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
	.psb-pcard, .psb-pcard * { transition: none !important; }
	.psb-pcard:hover { transform: none; }
}

/* -------------------------------------------------------------------------
   Kompatibilita se stávajícím CSS webu a šablonou Envo / WooCommerce.
   Vlastní CSS webu (žlutý rámeček, centrování, img margin, h3 20px !important…)
   má vyšší specificitu, proto je tady zesílené. Ve staré kartě se nic nemění.
   ---------------------------------------------------------------------- */
ul.products li.product.psb-pcard,
.woocommerce ul.products li.product.psb-pcard,
.woocommerce-page ul.products li.product.psb-pcard {
	border: 1px solid var(--psb-line) !important;
	border-radius: 12px !important;
	padding: 0 !important;
	text-align: left !important;
	background: #FFFFFF;
}
.psb-pcard.psb-pcard a.psb-pcard__media {
	display: block !important;
	height: 220px !important;
	overflow: hidden;
	margin: 0 !important;
	padding: 0 !important;
}
.psb-pcard.psb-pcard a.psb-pcard__media img,
.woocommerce ul.products li.product.psb-pcard a.psb-pcard__media img {
	position: static !important;
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 12px !important;
	object-fit: contain !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	transform: none !important;
	opacity: 1 !important;
}
.psb-pcard.psb-pcard a.psb-pcard__media img + img { display: none !important; } /* druhý obrázek při najetí (Envo) */
.psb-pcard.psb-pcard h3.psb-pcard__title,
.woocommerce ul.products li.product.psb-pcard h3.psb-pcard__title,
.woocommerce-page ul.products li.product.psb-pcard h3.psb-pcard__title {
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 16px !important;
	line-height: 1.4 !important;
	font-weight: 600 !important;
	text-align: left !important;
	color: var(--psb-ink);
}
.psb-pcard.psb-pcard .psb-pcard__price { color: var(--psb-ink); font-size: inherit; }
.psb-pcard.psb-pcard .psb-btn {
	margin-top: 8px !important;
	text-decoration: none !important;
}
.psb-pcard.psb-pcard .psb-btn--dark,
.psb-pcard.psb-pcard .psb-btn--dark:visited { color: #FFFFFF !important; background: var(--psb-brand) !important; }
.psb-pcard.psb-pcard .psb-btn--dark:hover { background: var(--psb-brand-dark) !important; }
.psb-pcard.psb-pcard .psb-btn--outline { color: var(--psb-brand) !important; background: transparent !important; border-color: var(--psb-brand) !important; }
.psb-pcard.psb-pcard .psb-btn--outline:hover { color: #FFFFFF !important; background: var(--psb-brand) !important; }
@media (max-width: 860px) {
	.psb-pcard.psb-pcard a.psb-pcard__media { height: 180px !important; }
}

/* -------------------------------------------------------------------------
   Dlaždice kategorie – stejný styl jako karta produktu
   ---------------------------------------------------------------------- */
.psb-ccard {
	--psb-brand: #103B87;
	--psb-ink: #0F1E33;
	--psb-line: #E2E0DB;
	--psb-accent: #F5B400;
	--psb-font: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	list-style: none;
}
ul.products li.product-category.psb-ccard,
.woocommerce ul.products li.product-category.psb-ccard,
.woocommerce-page ul.products li.product-category.psb-ccard {
	display: flex !important;
	width: auto !important; float: none !important; clear: none !important;
	margin: 0 !important; padding: 0 !important;
	background: #FFFFFF;
	border: 1px solid var(--psb-line) !important;
	border-radius: 12px !important;
	overflow: hidden;
	text-align: left !important;
	box-shadow: none !important;
	transition: box-shadow .2s, transform .2s, border-color .2s;
}
.psb-ccard:hover { box-shadow: 0 12px 28px rgba(15,30,51,.10) !important; transform: translateY(-2px); border-color: var(--psb-brand) !important; }

.psb-ccard.psb-ccard a.psb-ccard__link {
	display: flex !important; flex-direction: column; width: 100%;
	color: var(--psb-ink) !important; text-decoration: none !important; box-shadow: none !important;
	font-family: var(--psb-font);
}
.psb-ccard.psb-ccard .psb-ccard__media {
	display: block; position: relative; height: 200px; overflow: hidden;
	background: #FFFFFF; border-bottom: 1px solid var(--psb-line);
}
.psb-ccard.psb-ccard .psb-ccard__media img {
	position: static !important;
	display: block; width: 100% !important; height: 100% !important; max-width: 100% !important;
	margin: 0 !important; padding: 12px !important;
	object-fit: contain !important; border-radius: 0 !important; box-shadow: none !important; opacity: 1 !important;
	transition: transform .4s;
}
.psb-ccard:hover .psb-ccard__media img { transform: scale(1.04) !important; }

.psb-ccard .psb-ccard__body {
	display: flex; flex-direction: column; gap: 10px; flex-grow: 1;
	padding: 18px 20px 20px;
	background: #FFFFFF; position: static;
}
.psb-ccard.psb-ccard h2.psb-ccard__title,
.woocommerce ul.products li.product-category.psb-ccard h2.psb-ccard__title {
	position: static !important;
	margin: 0 !important; padding: 0 !important;
	background: none !important;
	font-family: var(--psb-font) !important;
	font-size: 18px !important; line-height: 1.35 !important; font-weight: 600 !important;
	letter-spacing: 0 !important; text-transform: none !important; text-align: left !important;
	color: var(--psb-ink) !important;
}
.psb-ccard .psb-ccard__title mark.count,
.psb-ccard .psb-ccard__title .count { display: none !important; }
.psb-ccard .psb-ccard__more {
	margin-top: auto;
	display: inline-flex; align-items: center; gap: 6px;
	font-size: 15px; font-weight: 600; color: var(--psb-brand);
}
.psb-ccard .psb-ccard__more .psb-icon { transition: transform .2s; }
.psb-ccard:hover .psb-ccard__more .psb-icon { transform: translateX(4px); }
.psb-ccard a.psb-ccard__link:focus-visible { outline: 3px solid var(--psb-accent); outline-offset: -3px; }

@media (max-width: 860px) {
	.psb-ccard.psb-ccard .psb-ccard__media { height: 160px; }
	.psb-ccard .psb-ccard__body { padding: 14px 16px 16px; }
	.psb-ccard.psb-ccard h2.psb-ccard__title { font-size: 16px !important; }
}
@media (prefers-reduced-motion: reduce) {
	.psb-ccard, .psb-ccard * { transition: none !important; }
	.psb-ccard:hover, .psb-ccard:hover .psb-ccard__media img { transform: none !important; }
}
