/* PINAX shop, Kafeneio: title band extras, filter line, shelf cards, breadcrumb, pagination, no results.
   Owner: shop agent. Tokens only. Flat colour, no shadows, no gradients, no lift.
   Shared components (.px-ticket, .px-origin, .px-status, .px-code, .px-record, .px-notice) live in 10-base.css.
   Contrast used here: ink, green (7.77), grey (6.06, 14px min) and red (5.00) on paper. */

.px-shop-surface .woocommerce-notices-wrapper:not(:empty) {
	width: 100%;
	max-width: calc(var(--px-wrap) + var(--px-gutter) * 2);
	margin-inline: auto;
	padding: var(--px-space-3) var(--px-gutter) 0;
}

/* ---------- Breadcrumb ---------- */
.px-crumbs ol {
	display: block;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--px-grey);
	font-size: var(--px-text-sm);
	line-height: 1.4;
}
/* Inline flow: the separator is glued to the crumb before it ("Macedonia&nbsp;/"), so a wrapped line never starts with "/". */
.px-crumbs li { display: inline; }
.px-crumbs li + li::before { content: "\00a0/ "; }
.px-crumbs a { color: inherit; text-decoration: none; }
.px-crumbs a:hover { color: var(--px-red); text-decoration: underline; }
.px-crumbs [aria-current] { overflow-wrap: anywhere; }

/* ---------- Archive title band ---------- */
.px-shop__band .px-crumbs { margin-bottom: var(--px-space-4); }
.px-shop__band .px-titleband__title { max-width: 20ch; }
.px-shop__code { margin-left: 0.2em; vertical-align: 0.45em; font-size: 0.3em; }
.px-shop__essay { padding-bottom: var(--px-space-5); }

/* ---------- Filter line ---------- */
.px-shop__body { padding-block: var(--px-space-3) var(--px-section); }
.px-shop__bar {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	justify-content: space-between;
	gap: var(--px-space-3) var(--px-space-4);
	padding-block: var(--px-space-3);
	border-block: var(--px-hairline);
}
.px-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: var(--px-space-3) var(--px-space-4);
	min-width: 0;
}
.px-filters__field { display: grid; gap: 0.25rem; min-width: 0; flex: 1 1 12rem; max-width: 18rem; }
.px-filters__field > label,
.px-shop__count {
	color: var(--px-grey);
	font-weight: 700;
	font-size: var(--px-text-sm);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.px-shop .px-filters select {
	min-height: 2.75rem;
	padding-block: 0.5rem 0.4rem;
	border-width: 0 0 2px;
	border-color: var(--px-ink);
	background-color: transparent;
	font-weight: 600;
	font-size: 1rem;
}
.px-filters__check {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	min-height: 2.75rem;
}
.px-filters__check input { width: 1.25rem; height: 1.25rem; margin: 0; flex: none; }
.px-filters__check label { font-weight: 600; font-size: 1rem; }
.px-filters__actions { display: flex; align-items: center; gap: var(--px-space-3); min-height: 2.75rem; }
.px-filters__reset { font-weight: 700; font-size: var(--px-text-sm); }
.px-shop__count { margin: 0; padding-bottom: 0.7rem; white-space: nowrap; }
@media (max-width: 40rem) {
	.px-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
	.px-filters__field { max-width: none; }
	.px-filters__actions { grid-column: 1 / -1; }
	.px-shop__bar { align-items: start; }
	.px-shop__count { padding-bottom: 0; }
}

/* ---------- Shelf grid ---------- */
ul.px-cards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--px-space-5) var(--px-space-3);
	margin: var(--px-space-5) 0 0;
	padding: 0;
	list-style: none;
}
ul.px-cards[hidden] { display: none; }
@media (min-width: 60rem) {
	ul.px-cards { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--px-space-6) 1.75rem; }
}

/* ---------- Shelf card: no border, no fill ---------- */
.px-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
}
.px-card__img {
	display: block;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--px-pale);
}
.px-card__img img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.px-card .px-ticket--over { max-width: calc(100% - 1.5rem); }
.px-card .px-ticket__price .woocommerce-Price-currencySymbol { margin-right: 0.04em; }
.px-card__title {
	margin-top: 0.875rem;
	font-family: var(--px-font-text);
	font-weight: 700;
	font-size: 1.125rem;
	line-height: 1.25;
	text-transform: none;
}
.px-card__title a { color: var(--px-ink); text-decoration: none; }
.px-card__title a:hover { color: var(--px-red); text-decoration: underline; text-decoration-thickness: 2px; }
.px-card .px-origin { margin-top: 0.25rem; }
.px-card .px-status { margin-top: 0.5rem; }
.px-card__noship {
	margin-top: 0.25rem;
	color: var(--px-grey);
	font-size: var(--px-text-sm);
}
/* Whole card is clickable through the title link; the photo link is hidden from assistive tech. */
.px-card:has(.px-card__title a:focus-visible) .px-card__img { outline: 3px solid var(--px-red); outline-offset: 3px; }
@media (max-width: 32.5rem) {
	.px-card__title { font-size: 1rem; }
	.px-card .px-origin { font-size: var(--px-text-sm); }
}

/* ---------- Pagination ---------- */
.px-shop .woocommerce-pagination { margin-top: var(--px-space-6); }
.px-shop .woocommerce-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
	border: 0;
}
.px-shop .woocommerce-pagination ul.page-numbers li { margin: 0; border: 0; }
.px-shop .woocommerce-pagination .page-numbers :where(a, span) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	min-height: 2.75rem;
	padding: 0.2em 0.75rem 0;
	color: var(--px-ink);
	font-family: var(--px-font-display);
	font-weight: 800;
	font-size: 1.375rem;
	letter-spacing: 0.04em;
	text-decoration: none;
}
.px-shop .woocommerce-pagination .page-numbers a:hover { color: var(--px-red); }
.px-shop .woocommerce-pagination .page-numbers span.current { background: var(--px-ink); color: var(--px-paper); }

/* ---------- No results ---------- */
.px-noresults { max-width: 44rem; margin-top: var(--px-space-5); }
.px-noresults__title {
	font-family: var(--px-font-display);
	font-weight: 800;
	font-size: var(--px-h3);
	line-height: 0.95;
	text-transform: uppercase;
}
.px-noresults__text { margin-top: var(--px-space-3); color: var(--px-grey); }

/* Region codes never split at their hyphen ("GR-D") */
.px-nowrap { white-space: nowrap; }
