/* ==========================================================================
   Pashiz Collector — front end
   Same tokens as the Pashiz Homepage Builder + Pashiz Coins theme.
   Values are repeated as fallbacks so it also looks right without the theme.
   ========================================================================== */

.pzc-wrap,
.pzc-heart,
.pzc-cta,
.pzc-similar,
.pzc-toast {
	--pzc-gold: var(--pz-gold, #c5a059);
	--pzc-gold-dark: var(--pz-gold-dark, #b08d46);
	--pzc-gold-ink: var(--pz-gold-ink, #8a6a2e);
	--pzc-dark: var(--pz-dark-1, #0d0d0d);
	--pzc-dark-2: var(--pz-dark-2, #171717);
	--pzc-heading: var(--pz-heading, #111111);
	--pzc-body: var(--pz-body, #444444);
	--pzc-soft: var(--pz-body-soft, #666666);
	--pzc-card: var(--pz-bg-card, #fafafa);
	--pzc-table: var(--pz-bg-table, #f2f2f2);
	--pzc-border: var(--pz-border, #eaeaea);
	--pzc-border-strong: var(--pz-border-strong, #d6d6d6);
	--pzc-ok: #2f6b4f;
	--pzc-ok-soft: #e6f0ea;
	--pzc-radius: var(--pz-radius, 8px);
	--pzc-shadow: var(--pz-shadow-sm, 0 2px 8px rgba(17, 17, 17, 0.06));
	--pzc-lift: var(--pz-shadow-lift, 0 16px 36px rgba(17, 17, 17, 0.14));
	box-sizing: border-box;
}

.pzc-wrap *,
.pzc-wrap *::before,
.pzc-wrap *::after {
	box-sizing: border-box;
}

.pzc-wrap [hidden] {
	display: none !important;
}

/* ---- Hearts ---------------------------------------------------------------- */

.pzc-loop-actions {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* On coin cards the heart sits in the top-right corner of the card, so the
   Add to cart button stays perfectly centred underneath. */
li.product,
.pashy-product-card {
	position: relative;
}

.pzc-loop-actions .pzc-heart--icon {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	width: 38px;
	height: 38px;
	box-shadow: 0 2px 8px rgba(17, 17, 17, 0.08);
}

.pzc-heart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex: none;
	width: 40px;
	height: 40px;
	padding: 0;
	border-radius: 50%;
	border: 1px solid var(--pzc-border-strong);
	background: #fff;
	color: var(--pzc-heading);
	cursor: pointer;
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
	line-height: 1;
	box-shadow: none;
	min-height: 0;
}

.pzc-heart:hover {
	border-color: var(--pzc-heading);
	color: var(--pzc-heading);
	background: #fff;
	transform: none;
}

.pzc-heart.is-saved {
	color: var(--pzc-gold-dark);
	border-color: var(--pzc-gold);
	background: #fff;
}

.pzc-heart.is-saved svg path {
	fill: var(--pzc-gold);
}

.pzc-heart.is-pulse {
	transform: scale(1.12);
}

.pzc-heart:focus-visible {
	outline: 2px solid var(--pzc-gold-dark);
	outline-offset: 2px;
}

/* Text variant on the product page, next to Add to cart */
.pzc-heart--full {
	width: auto;
	height: auto;
	min-height: 54px;
	padding: 0 20px;
	border-radius: var(--pz-radius-btn, 4px);
	border: 2px solid var(--pzc-heading);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
}

.pzc-single-actions {
	margin: 0 0 18px;
}

.pzc-similar {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 18px 0 0;
	padding: 14px 16px;
	border-radius: var(--pzc-radius);
	background: var(--pzc-dark);
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	transition: background-color 0.2s ease;
}

.pzc-similar svg {
	color: var(--pzc-gold);
	flex: none;
}

.pzc-similar:hover {
	background: var(--pzc-dark-2);
	color: var(--pzc-gold);
}

/* ---- Shop CTA --------------------------------------------------------------- */

.pzc-cta {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	margin: 40px 0 8px;
	padding: 24px 28px;
	border-radius: var(--pzc-radius);
	background: var(--pzc-dark);
	color: rgba(255, 255, 255, 0.85);
	clear: both;
}

.pzc-cta-icon {
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1px solid rgba(197, 160, 89, 0.5);
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--pzc-gold);
	flex: none;
}

.pzc-cta-copy {
	flex: 1 1 320px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 14px;
	line-height: 1.55;
}

.pzc-cta-copy strong {
	color: var(--pzc-gold);
	font-size: 1.05rem;
}

/* ---- Toast ------------------------------------------------------------------ */

.pzc-toast {
	position: fixed;
	left: 50%;
	bottom: 24px;
	transform: translate(-50%, 20px);
	z-index: 99999;
	display: flex;
	gap: 14px;
	align-items: center;
	max-width: calc(100vw - 32px);
	padding: 14px 20px;
	border-radius: var(--pzc-radius);
	background: var(--pzc-dark);
	color: #fff;
	font-size: 14px;
	box-shadow: var(--pzc-lift);
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s ease, transform 0.25s ease;
}

.pzc-toast.is-visible {
	opacity: 1;
	transform: translate(-50%, 0);
	pointer-events: auto;
}

.pzc-toast a {
	color: var(--pzc-gold);
	font-weight: 700;
	white-space: nowrap;
	text-decoration: none;
}

/* ---- Account pages: shared -------------------------------------------------- */

.pzc-wrap {
	color: var(--pzc-body);
}

.pzc-lead {
	margin: 0 0 20px;
	color: var(--pzc-soft);
	max-width: 640px;
}

.pzc-muted {
	color: var(--pzc-soft);
	font-size: 13px;
}

.pzc-wrap .pz-eyebrow {
	display: inline-block;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-size: 0.7rem;
	font-weight: 700;
	color: var(--pzc-gold-ink);
}

.pzc-tabs {
	display: flex;
	gap: 28px;
	border-bottom: 1px solid var(--pzc-border);
	margin-bottom: 24px;
	flex-wrap: wrap;
}

.pzc-tab {
	display: inline-flex;
	align-items: center;
	min-height: 48px;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	font-size: 0.78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: #767676;
	text-decoration: none;
}

.pzc-tab:hover {
	color: var(--pzc-heading);
}

.pzc-tab.is-active {
	color: var(--pzc-heading);
	border-bottom-color: var(--pzc-gold);
}

.pzc-box {
	background: var(--pzc-card);
	border: 1px solid var(--pzc-border);
	border-radius: var(--pzc-radius);
	padding: 24px;
	margin: 0 0 24px;
}

.pzc-box-title {
	margin: 0 0 16px;
	font-size: 0.78rem;
	text-transform: uppercase;
	letter-spacing: 1.5px;
	color: var(--pzc-heading);
}

.pzc-field-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px 16px;
	margin-bottom: 18px;
}

.pzc-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	min-width: 0;
}

.pzc-field--wide {
	grid-column: 1 / -1;
}

.pzc-alert-form > .pzc-field--wide {
	margin-bottom: 14px;
}

.pzc-field label {
	font-size: 0.8rem;
	font-weight: 700;
	color: var(--pzc-heading);
}

.pzc-field small {
	color: var(--pzc-soft);
	font-size: 12px;
}

.pzc-wrap .pz-input,
.pzc-wrap .pzc-select,
.pzc-wrap select {
	width: 100%;
	min-height: 48px;
	padding: 0 14px;
	border: 1px solid var(--pzc-border-strong);
	border-radius: var(--pz-radius-btn, 4px);
	background: #fff;
	color: var(--pzc-heading);
	font: inherit;
	font-size: 15px;
}

.pzc-wrap textarea.pz-input {
	padding: 12px 14px;
	min-height: 90px;
}

.pzc-wrap .pz-input:focus,
.pzc-wrap .pzc-select:focus {
	outline: none;
	border-color: var(--pzc-gold-dark);
	box-shadow: 0 0 0 3px rgba(197, 160, 89, 0.22);
}

.pzc-wrap .button svg {
	margin-right: 2px;
}

.pzc-mini {
	display: inline-flex;
	align-items: center;
	min-height: 36px;
	padding: 0 12px;
	border: 1px solid var(--pzc-border-strong);
	border-radius: var(--pz-radius-btn, 4px);
	background: #fff;
	color: var(--pzc-heading);
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	text-decoration: none;
	transition: border-color 0.2s ease;
}

.pzc-mini:hover {
	border-color: var(--pzc-heading);
	color: var(--pzc-heading);
}

.pzc-mini--danger:hover {
	border-color: #a1322a;
	color: #a1322a;
}

.pzc-pill {
	display: inline-flex;
	align-items: center;
	height: 26px;
	padding: 0 10px;
	border-radius: 13px;
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
	background: var(--pzc-table);
	color: var(--pzc-body);
}

.pzc-pill--new,
.pzc-pill--stock {
	background: var(--pzc-ok-soft);
	color: var(--pzc-ok);
}

.pzc-pill--watching,
.pzc-pill--auction {
	background: #f6f0e3;
	color: #6e5320;
}

.pzc-section-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
	margin: 32px 0 14px;
}

.pzc-section-head h3 {
	margin: 0;
	font-size: 1.3rem;
}

.pzc-empty {
	text-align: center;
	padding: 40px 20px;
	border: 1px dashed var(--pzc-border-strong);
	border-radius: var(--pzc-radius);
	color: var(--pzc-soft);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 10px;
}

.pzc-empty p {
	margin: 0;
}

.pzc-empty svg {
	color: var(--pzc-gold-dark);
}

.pzc-note {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	background: var(--pzc-card);
	border: 1px solid var(--pzc-border);
	border-radius: var(--pzc-radius);
	padding: 14px 18px;
	font-size: 14px;
	margin: 0 0 20px;
}

.pzc-note svg {
	color: var(--pzc-gold-dark);
	flex: none;
	margin-top: 2px;
}

/* ---- Alerts list ------------------------------------------------------------ */

.pzc-alerts {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pzc-alert {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	padding: 16px 18px;
	margin: 0;
	background: #fff;
	border: 1px solid var(--pzc-border);
	border-radius: var(--pzc-radius);
	box-shadow: var(--pzc-shadow);
}

.pzc-alert.is-paused {
	opacity: 0.6;
}

.pzc-alert-icon {
	color: var(--pzc-gold-dark);
	display: flex;
}

.pzc-alert-main {
	flex: 1 1 240px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.pzc-alert-main strong {
	color: var(--pzc-heading);
	font-size: 1rem;
}

.pzc-alert-main span {
	font-size: 13px;
	color: var(--pzc-soft);
}

.pzc-alert-actions {
	display: flex;
	gap: 8px;
}

.pzc-alert-actions form {
	margin: 0;
}

/* ---- Cards (matches + collection + showcase) --------------------------------- */

.pzc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
	gap: 18px;
}

.pzc-card {
	position: relative;
	display: flex;
	flex-direction: column;
	background: var(--pzc-card);
	border: 1px solid var(--pzc-border);
	border-radius: var(--pzc-radius);
	box-shadow: var(--pzc-shadow);
	padding: 16px;
	color: var(--pzc-body);
	text-decoration: none;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.pzc-card--link:hover {
	transform: translateY(-3px);
	box-shadow: var(--pzc-lift);
	color: var(--pzc-body);
}

.pzc-card-img {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 170px;
	padding: 12px;
	background: #fff;
	border: 1px solid var(--pzc-border);
	border-radius: 6px;
	overflow: hidden;
	margin-bottom: 14px;
}

.pzc-card-img img {
	width: auto;
	height: 100%;
	max-width: 100%;
	object-fit: contain;
}

.pzc-flag,
.pzc-src {
	position: absolute;
	top: 10px;
	left: 10px;
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	padding: 4px 9px;
	border-radius: 3px;
	background: var(--pzc-gold);
	color: #171717;
}

.pzc-flag--sold {
	background: var(--pzc-heading);
	color: #fff;
}

.pzc-src--shop {
	background: var(--pzc-heading);
	color: var(--pzc-gold);
}

.pzc-src--auction {
	background: var(--pzc-gold);
	color: #171717;
}

.pzc-src--own {
	background: #fff;
	color: var(--pzc-body);
	border: 1px solid var(--pzc-border-strong);
}

.pzc-card-body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	flex: 1;
}

.pzc-card-title,
.pzc-card h3 {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.35;
	color: var(--pzc-heading);
}

.pzc-card-title a {
	color: var(--pzc-heading);
	text-decoration: none;
}

.pzc-card-meta {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 8px;
}

.pzc-price {
	color: var(--pzc-gold-ink);
	font-weight: 700;
}

.pzc-matched {
	font-size: 12px;
	color: var(--pzc-soft);
	border-top: 1px solid var(--pzc-border);
	padding-top: 8px;
	margin-top: auto;
}

.pzc-dl {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 3px 12px;
	margin: 4px 0 0;
	font-size: 13px;
}

.pzc-dl dt {
	color: var(--pzc-soft);
	margin: 0;
}

.pzc-dl dd {
	margin: 0;
	text-align: right;
	font-weight: 600;
	color: var(--pzc-heading);
}

.pzc-notes {
	margin: 6px 0 0;
	padding-top: 8px;
	border-top: 1px solid var(--pzc-border);
	font-size: 13px;
	font-style: italic;
	color: var(--pzc-soft);
	white-space: pre-line;
}

.pzc-card-actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: auto;
	padding-top: 12px;
}

.pzc-card-actions form {
	margin: 0;
}

.pzc-edit {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--pzc-border);
}

.pzc-edit .pzc-field-row {
	grid-template-columns: 1fr 1fr;
}

/* List view */
.pzc-collection[data-view="list"] {
	grid-template-columns: 1fr;
	gap: 10px;
}

.pzc-collection[data-view="list"] .pzc-card {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 16px;
}

.pzc-collection[data-view="list"] .pzc-card-img {
	width: 120px;
	height: 90px;
	margin: 0;
	padding: 6px;
	flex: none;
}

.pzc-collection[data-view="list"] .pzc-src {
	display: none;
}

.pzc-collection[data-view="list"] .pzc-card-body {
	flex: 1 1 300px;
}

.pzc-collection[data-view="list"] .pzc-dl {
	grid-template-columns: repeat(4, auto minmax(0, 1fr));
}

.pzc-collection[data-view="list"] .pzc-dl dd {
	text-align: left;
}

.pzc-collection[data-view="list"] .pzc-edit {
	flex-basis: 100%;
}

/* ---- Saved coins ------------------------------------------------------------ */

.pzc-saved {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.pzc-saved-row {
	display: flex;
	align-items: center;
	gap: 18px;
	flex-wrap: wrap;
	padding: 14px;
	margin: 0;
	background: #fff;
	border: 1px solid var(--pzc-border);
	border-radius: var(--pzc-radius);
	box-shadow: var(--pzc-shadow);
}

.pzc-saved-img {
	width: 110px;
	height: 82px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	border: 1px solid var(--pzc-border);
	border-radius: 6px;
	padding: 6px;
	flex: none;
}

.pzc-saved-img img {
	max-height: 100%;
	width: auto;
	object-fit: contain;
}

.pzc-saved-main {
	flex: 1 1 220px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.pzc-saved-title {
	color: var(--pzc-heading);
	font-weight: 700;
	text-decoration: none;
	line-height: 1.35;
}

.pzc-saved-row .pzc-price {
	min-width: 80px;
	text-align: right;
}

.pzc-saved-actions {
	display: flex;
	gap: 8px;
	align-items: center;
}

.pzc-saved-actions form {
	margin: 0;
}

.pzc-saved-actions .button {
	min-height: 40px;
	padding: 0 16px;
	font-size: 0.72rem;
}

/* ---- Collection header + toolbar ------------------------------------------- */

.pzc-band {
	display: flex;
	flex-wrap: wrap;
	gap: 24px 40px;
	align-items: flex-end;
	justify-content: space-between;
	background: var(--pzc-dark);
	background: linear-gradient(120deg, var(--pzc-dark), var(--pzc-dark-2));
	color: rgba(255, 255, 255, 0.85);
	border-radius: var(--pzc-radius);
	padding: 28px 32px;
	margin: 0 0 22px;
}

.pzc-band .pz-eyebrow {
	color: var(--pzc-gold);
}

.pzc-band-copy {
	flex: 1 1 320px;
}

.pzc-band-copy p {
	margin: 8px 0 0;
	color: rgba(255, 255, 255, 0.85);
	font-size: 14px;
	line-height: 1.6;
	max-width: 520px;
}

.pzc-stats {
	display: flex;
	gap: 32px;
	margin: 0;
	flex-wrap: wrap;
}

.pzc-stats div {
	display: flex;
	flex-direction: column-reverse;
}

.pzc-stats dt {
	text-transform: uppercase;
	letter-spacing: 1.5px;
	font-size: 0.68rem;
	font-weight: 700;
	color: var(--pzc-gold);
	margin-top: 4px;
}

.pzc-stats dd {
	margin: 0;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1;
	color: #fff;
}

.pzc-stats dd .woocommerce-Price-amount {
	color: #fff;
}

.pzc-toolbar {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	margin-bottom: 18px;
}

.pzc-chips {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.pzc-chip {
	min-height: 38px;
	padding: 0 16px;
	border-radius: 19px;
	border: 1px solid var(--pzc-border-strong);
	background: #fff;
	color: var(--pzc-heading);
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.pzc-chip.is-active {
	background: var(--pzc-heading);
	border-color: var(--pzc-heading);
	color: #fff;
}

.pzc-toolbar-actions {
	display: flex;
	gap: 10px;
	align-items: center;
	flex-wrap: wrap;
}

.pzc-toolbar-actions .button {
	min-height: 42px;
}

.pzc-seg {
	display: inline-flex;
	border: 1px solid var(--pzc-border-strong);
	border-radius: var(--pz-radius-btn, 4px);
	overflow: hidden;
}

.pzc-seg button {
	width: 44px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: #fff;
	color: var(--pzc-soft);
	cursor: pointer;
	padding: 0;
}

.pzc-seg button.is-active {
	background: var(--pzc-heading);
	color: #fff;
}

.pzc-showcase-box {
	margin-top: 28px;
}

.pzc-check {
	display: flex;
	gap: 10px;
	align-items: center;
	font-size: 14px;
	color: var(--pzc-heading);
}

.pzc-share {
	margin: 12px 0 0;
}

.pzc-consign {
	display: flex;
	gap: 20px 32px;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	margin-top: 28px;
	padding: 28px 32px;
	border-radius: var(--pzc-radius);
	background: var(--pzc-dark);
	color: rgba(255, 255, 255, 0.85);
}

.pzc-consign > div {
	flex: 1 1 320px;
}

.pzc-consign h3 {
	margin: 6px 0;
	color: var(--pzc-gold);
	font-size: 1.4rem;
}

.pzc-consign p {
	margin: 0;
	font-size: 14px;
}

.pzc-consign .pz-eyebrow {
	color: rgba(255, 255, 255, 0.7);
}

/* ---- Public showcase page ----------------------------------------------------- */

.pzc-showcase {
	max-width: var(--pz-max, 1200px);
	margin: 0 auto;
	padding: 40px 24px 72px;
}

.pzc-showcase .pzc-band {
	display: block;
}

.pzc-showcase .pzc-band h1 {
	color: var(--pzc-gold);
	margin: 6px 0;
}

.pzc-showcase .pzc-band p {
	margin: 0;
}

/* ---- Small screens --------------------------------------------------------- */

@media (max-width: 640px) {
	.pzc-band,
	.pzc-consign {
		padding: 22px;
	}

	.pzc-stats {
		gap: 22px;
	}

	.pzc-stats dd {
		font-size: 1.5rem;
	}

	.pzc-edit .pzc-field-row {
		grid-template-columns: 1fr;
	}

	.pzc-collection[data-view="list"] .pzc-dl {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.pzc-saved-row .pzc-price {
		text-align: left;
	}

	.pzc-grid {
		grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
		gap: 12px;
	}

	.pzc-card-img {
		height: 130px;
	}

	/* Collection cards carry more detail: one per row on phones. */
	.pzc-collection[data-view="grid"] {
		grid-template-columns: 1fr;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pzc-heart,
	.pzc-card,
	.pzc-toast {
		transition: none;
	}
}

/* Archived coins */
.pzc-card.is-archived {
	opacity: 0.75;
}

.pzc-card.is-archived .pzc-card-img img {
	filter: grayscale(60%);
}

.pzc-chip--archived {
	border-style: dashed;
}
