/**
 * Phase 5.6 — premium marketplace motion & interaction layer.
 * Lightweight CSS only. Honors prefers-reduced-motion via base.css.
 */

/* —— Unified buttons —— */
.nds-btn {
	position: relative;
	isolation: isolate;
	letter-spacing: 0.01em;
	box-shadow: none;
	transition:
		background var(--nds-dur) var(--nds-ease),
		color var(--nds-dur) var(--nds-ease),
		border-color var(--nds-dur) var(--nds-ease),
		box-shadow var(--nds-dur) var(--nds-ease),
		transform var(--nds-dur) var(--nds-ease);
}

.nds-btn--primary {
	background: linear-gradient(180deg, #117a86 0%, var(--nds-color-teal) 100%);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.18) inset, 0 6px 16px rgba(13, 101, 112, 0.22);
}

.nds-btn--primary:hover,
.nds-btn--primary:focus-visible {
	background: linear-gradient(180deg, #0f6f7a 0%, var(--nds-color-teal-deep) 100%);
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12) inset, 0 10px 22px rgba(8, 72, 80, 0.28);
	transform: translateY(-1px);
	color: #fff;
}

.nds-btn--primary:active {
	transform: translateY(1px);
	box-shadow: 0 2px 8px rgba(8, 72, 80, 0.2);
}

.nds-btn--secondary {
	background: var(--nds-color-surface);
	border-color: var(--nds-color-border-strong);
	box-shadow: var(--nds-shadow-sm);
}

.nds-btn--secondary:hover,
.nds-btn--secondary:focus-visible {
	border-color: var(--nds-color-teal);
	color: var(--nds-color-teal-ink);
	background: #fff;
	box-shadow: var(--nds-shadow-md);
	transform: translateY(-1px);
}

.nds-btn--ghost {
	color: var(--nds-color-teal-ink);
	font-weight: 650;
}

.nds-btn--ghost:hover,
.nds-btn--ghost:focus-visible {
	color: var(--nds-color-teal);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.nds-btn:focus-visible {
	outline: 2px solid var(--nds-color-focus);
	outline-offset: 3px;
}

/* —— Product cards —— */
.nds-product-card {
	border-color: rgba(10, 26, 42, 0.07);
	background: var(--nds-grad-surface);
	box-shadow: var(--nds-shadow-sm);
	border-radius: var(--nds-radius-lg);
	transition:
		transform var(--nds-dur-med) var(--nds-ease-out),
		box-shadow var(--nds-dur-med) var(--nds-ease-out),
		border-color var(--nds-dur) var(--nds-ease);
}

@media (prefers-reduced-motion: no-preference) {
	.nds-product-card:hover,
	.nds-product-card:focus-within {
		transform: translateY(-5px);
		box-shadow: var(--nds-shadow-lift);
		border-color: rgba(13, 101, 112, 0.18);
	}

	.nds-product-card:hover .nds-product-card__media img,
	.nds-product-card:focus-within .nds-product-card__media img {
		transform: scale(1.045);
	}

	.nds-product-card:hover .nds-btn--primary,
	.nds-product-card:focus-within .nds-btn--primary {
		transform: translateY(-1px);
	}
}

.nds-product-card__media {
	background:
		linear-gradient(160deg, #e8eef1 0%, #dfe8ec 100%);
}

.nds-product-card__media img {
	transition: transform var(--nds-dur-slow) var(--nds-ease-out);
}

.nds-product-card__body {
	gap: 0.65rem;
	padding: 1rem 1.05rem 1.1rem;
}

.nds-product-card__badges {
	gap: 0.35rem;
}

.nds-badge {
	padding: 0.22rem 0.6rem;
	border-radius: 999px;
	font-size: 0.68rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border: 1px solid transparent;
}

.nds-badge--subject {
	background: var(--nds-color-teal-soft);
	color: var(--nds-color-teal-ink);
	border-color: rgba(13, 101, 112, 0.12);
}

.nds-product-card__title {
	font-family: var(--nds-font-body);
	font-size: 1.02rem;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: var(--nds-lh-snug);
}

.nds-product-card__meta {
	gap: 0.35rem 0.55rem;
	font-size: 0.78rem;
	line-height: 1.35;
}

.nds-product-card__edition {
	color: var(--nds-color-ink-soft);
}

.nds-product-card__price {
	margin-top: auto;
	font-size: 1.12rem;
	font-weight: 750;
	letter-spacing: -0.02em;
	color: var(--nds-color-ink);
}

.nds-product-card__actions {
	gap: 0.45rem;
}

.nds-product-card__actions .nds-btn {
	flex: 1;
	min-height: 2.55rem;
	font-size: 0.82rem;
}

/* —— Icon family polish —— */
.nds-icon {
	display: inline-block;
	vertical-align: middle;
	transition: transform var(--nds-dur) var(--nds-ease);
}

@media (prefers-reduced-motion: no-preference) {
	.nds-cat-tile:hover .nds-icon,
	.nds-subject-card:hover .nds-icon,
	.nds-trust-strip__item:hover .nds-icon {
		transform: scale(1.08);
	}
}

.nds-cat-tile__disc,
.nds-subject-card__art,
.nds-trust-strip__icon {
	transition: transform var(--nds-dur) var(--nds-ease), box-shadow var(--nds-dur) var(--nds-ease);
}

@media (prefers-reduced-motion: no-preference) {
	.nds-cat-tile:hover .nds-cat-tile__disc,
	.nds-subject-card:hover .nds-subject-card__art {
		transform: translateY(-2px) scale(1.03);
		box-shadow: var(--nds-shadow-md);
	}
}
