.cbc-shop {
	*, *::before, *::after { box-sizing: border-box; }
	.cbc-container { margin-inline: auto; max-width: var(--wp--custom--layout--max); width: 100%; }
	.cbc-shop__hero {
		padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--lg);
		text-align: left;
		h1 { font-size: var(--wp--preset--font-size--heading); max-width: none; margin: 0; }
		.cbc-eyebrow { margin-bottom: var(--wp--preset--spacing--sm); }
		p:not(.cbc-eyebrow) { color: var(--wp--custom--color--text-muted); font-size: var(--wp--preset--font-size--medium); max-width: 65ch; margin: var(--wp--preset--spacing--sm) 0 0; }
		.cbc-shop__example-note { color: var(--wp--custom--color--text) !important; font-size: var(--wp--preset--font-size--caption) !important; font-weight: 700; }
		p.cbc-shop__starting-price {
			align-items: baseline;
			display: flex;
			flex-wrap: wrap;
			gap: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
			margin-top: var(--wp--preset--spacing--md);

			.cbc-shop__starting-price-value { color: var(--wp--custom--color--text); font-size: var(--wp--preset--font-size--small); font-weight: 700; }
			.cbc-shop__starting-price-value strong { font-size: var(--wp--preset--font-size--large); }
			.cbc-shop__starting-price-note { color: var(--wp--custom--color--text-muted); font-size: var(--wp--preset--font-size--caption); font-weight: 400; }
		}
	}
	.cbc-shop__catalogue { padding: 0 var(--wp--preset--spacing--lg) var(--wp--preset--spacing--3-xl); }

	.cbc-shop__toolbar {
		align-items: end;
		border-bottom: 1px solid var(--wp--custom--color--line);
		display: flex;
		gap: var(--wp--preset--spacing--md);
		justify-content: space-between;
		padding-bottom: var(--wp--preset--spacing--md);
	}

	.cbc-shop__tags {
		border: 0;
		display: flex;
		flex-wrap: wrap;
		gap: var(--wp--preset--spacing--sm);
		margin: 0;
		padding: 0;

		legend { font-size: var(--wp--preset--font-size--caption); color: var(--wp--custom--color--text-muted); margin-bottom: var(--wp--preset--spacing--sm); width: 100%; }
	}

	.cbc-shop__filter,
	.cbc-shop__pagination a {
		border: 1px solid var(--wp--custom--color--line);
		border-radius: var(--wp--custom--radius--control);
		color: var(--wp--custom--color--text);
		display: inline-flex;
		align-items: center;
		gap: var(--wp--preset--spacing--xs);
		min-height: 44px;
		font-size: var(--wp--preset--font-size--caption);
		padding: var(--wp--preset--spacing--sm) var(--wp--preset--spacing--md);
		text-decoration: none;

		&:hover,
		&:focus-visible,
		&.is-active,
		&.is-current { background: var(--wp--custom--color--text); color: var(--wp--custom--color--surface); }
		span { font-size: var(--wp--preset--font-size--caption); opacity: .72; }
	}

	.cbc-shop__sort {
		align-items: center;
		display: flex;
		gap: var(--wp--preset--spacing--xs);
		white-space: nowrap;
		font-size: var(--wp--preset--font-size--caption);

		select {
			font: inherit;
			color: inherit;
			min-height: 44px;
			background: var(--wp--custom--color--surface);
			border: 1px solid var(--wp--custom--color--line);
			border-radius: var(--wp--custom--radius--control);
			padding: var(--wp--preset--spacing--xs) 0;
		}
	}

	.cbc-shop__count { color: var(--wp--custom--color--text-muted); margin-block: var(--wp--preset--spacing--md); }

	.cbc-shop__grid {
		display: grid;
		gap: var(--wp--preset--spacing--lg);
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.cbc-shop-card {
		background: var(--wp--custom--color--surface);
		border: 1px solid var(--wp--custom--color--line);
		box-shadow: var(--wp--custom--shadow--soft);
		display: flex;
		flex-direction: column;
		border-radius: var(--wp--custom--radius--card);
		overflow: hidden;
		transition: box-shadow 160ms var(--wp--custom--motion--ease), transform 160ms var(--wp--custom--motion--ease);

		&:hover { box-shadow: var(--wp--custom--shadow--card); transform: translateY(-2px); }
	}

	.cbc-shop-card__image {
		background: var(--wp--custom--color--surface-alt);
		border-radius: var(--wp--custom--radius--card);
		display: block;
		overflow: hidden;
		position: relative;

		&:focus-visible { box-shadow: inset 0 0 0 3px var(--wp--custom--color--focus); outline: 0; }
		img { aspect-ratio: 3 / 4; display: block; height: auto; object-fit: cover; width: 100%; }
	}

	.cbc-shop-card__badge {
		border-radius: var(--wp--custom--radius--pill);
		font-size: var(--wp--preset--font-size--caption);
		font-weight: 700;
		padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--sm);
		position: absolute;
		right: var(--wp--preset--spacing--sm);
		top: var(--wp--preset--spacing--sm);
		z-index: 1;

		&.cbc-shop-card__badge--popular { background: var(--wp--preset--color--accent-yellow); color: var(--wp--custom--color--text); }
		&.cbc-shop-card__badge--new { background: var(--wp--preset--color--primary-light); color: var(--wp--custom--color--text); }
	}

	.cbc-shop-card__example-label {
		background: var(--wp--custom--color--surface-glass);
		border: 1px solid var(--wp--custom--color--line);
		border-radius: var(--wp--custom--radius--control);
		bottom: var(--wp--preset--spacing--sm);
		color: var(--wp--custom--color--text-muted);
		font-size: var(--wp--preset--font-size--micro);
		font-weight: 400;
		left: var(--wp--preset--spacing--sm);
		padding: var(--wp--preset--spacing--xs) var(--wp--preset--spacing--sm);
		position: absolute;
		z-index: 1;
	}

	.cbc-shop-card__body {
		display: flex;
		flex: 1;
		flex-direction: column;
		gap: var(--wp--preset--spacing--sm);
		padding: var(--wp--preset--spacing--md);
		.cbc-button { margin-top: auto; font-size: var(--wp--preset--font-size--caption); min-height: var(--wp--preset--spacing--2-xl); width: 100%; }

		h2 { font-size: var(--wp--preset--font-size--large); max-width: none; margin: 0; }
		p { font-size: var(--wp--preset--font-size--small); color: var(--wp--custom--color--text-muted); margin: 0; }
	}

	.cbc-shop-card__heading {
		display: grid;
		gap: var(--wp--preset--spacing--xs);
	}

	.cbc-shop-card__personalisation {
		font-size: var(--wp--preset--font-size--caption) !important;
		font-weight: 700;
	}

	.cbc-shop-card__tags {
		display: flex;
		flex-wrap: wrap;
		gap: var(--wp--preset--spacing--xs);

		span {
			color: var(--wp--custom--color--text-muted);
			border-radius: var(--wp--custom--radius--control);
			font-size: var(--wp--preset--font-size--caption);
			padding: var(--wp--preset--spacing--xs) 0;
		}
	}

	.cbc-shop__empty { padding-block: var(--wp--preset--spacing--xl); text-align: center; }
	.cbc-shop__pagination { display: flex; gap: var(--wp--preset--spacing--xs); justify-content: center; margin-top: var(--wp--preset--spacing--xl); }

	@media (max-width: 1000px) {
		.cbc-shop__toolbar { align-items: stretch; flex-direction: column; }
		.cbc-shop__sort { justify-content: space-between; }
		.cbc-shop__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	}

	@media (max-width: 520px) {
		.cbc-shop__hero { padding-block: var(--wp--preset--spacing--lg); }
		.cbc-shop__tags { flex-wrap: nowrap; overflow-x: auto; min-width: 0; padding-bottom: var(--wp--preset--spacing--sm); }
		.cbc-shop__filter { flex: 0 0 auto; }
		.cbc-shop__grid { gap: var(--wp--preset--spacing--md); }
		.cbc-shop-card__body {
			padding: var(--wp--preset--spacing--sm);
			h2 { font-size: var(--wp--preset--font-size--medium); }
			.cbc-button { padding: var(--wp--preset--spacing--sm); }
		}
	}
}

@media (prefers-reduced-motion: reduce) {
	.cbc-shop {
		.cbc-shop-card { transition: none; }
	}
}

.cbc-shop {
	.cbc-shop-card__body {
		h2, h3 {
			a { color: inherit; text-decoration: none; &:hover { text-decoration: underline; } }
		}
	}
	&.cbc-cover-page {
		padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--lg) var(--wp--preset--spacing--3-xl);
		h1 { font-size: var(--wp--preset--font-size--display); max-width: none; margin: 0; }
		h2 { font-size: var(--wp--preset--font-size--heading); max-width: none; margin: 0; }
		h3 { font-size: var(--wp--preset--font-size--large); max-width: none; margin: 0; }
		p { color: var(--wp--custom--color--text-muted); margin: 0; }
		.cbc-cover-page__breadcrumb { font-size: var(--wp--preset--font-size--caption); margin-bottom: var(--wp--preset--spacing--lg); a { color: inherit; } }
		.cbc-cover-page__overview { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: var(--wp--preset--spacing--3-xl); }
		.cbc-cover-page__artwork {
			margin: 0;
			padding: var(--wp--preset--spacing--lg);
			background: var(--wp--custom--color--surface-alt);
			border-radius: var(--wp--custom--radius--panel);
			text-align: center;
			a { display: block; }
			img { display: block; width: 100%; height: 440px; object-fit: contain; }
			figcaption { margin-top: var(--wp--preset--spacing--md); color: var(--wp--custom--color--text-muted); font-size: var(--wp--preset--font-size--caption); }
		}
		.cbc-cover-page__gallery-controls {
			display: grid;
			gap: var(--wp--preset--spacing--sm);
			grid-template-columns: repeat(4, minmax(0, 1fr));
			margin-top: var(--wp--preset--spacing--md);
		}
		.cbc-cover-page__gallery-thumb {
			background: var(--wp--custom--color--surface);
			border: 1px solid var(--wp--custom--color--line);
			border-radius: var(--wp--custom--radius--card);
			color: var(--wp--custom--color--text);
			cursor: pointer;
			font: inherit;
			min-width: 0;
			padding: var(--wp--preset--spacing--xs);
			text-align: center;

			&:hover,
			&:focus-visible,
			&[aria-pressed="true"] {
				border-color: var(--wp--custom--color--line-action);
				box-shadow: var(--wp--custom--shadow--soft);
			}

			&:focus-visible {
				outline: 2px solid var(--wp--custom--color--focus);
				outline-offset: 2px;
			}

			img {
				aspect-ratio: 3 / 4;
				height: auto;
				object-fit: contain;
				width: 100%;
			}

		}
		.cbc-cover-page__copy { display: grid; gap: var(--wp--preset--spacing--md); justify-items: start; }
		.cbc-cover-page__subtitle { font-size: var(--wp--preset--font-size--medium); }
		.cbc-cover-page__price {
			color: var(--wp--custom--color--text);
			strong { font-size: var(--wp--preset--font-size--modal-heading); }
			span:not(.woocommerce-Price-amount, .woocommerce-Price-currencySymbol) { display: block; font-size: var(--wp--preset--font-size--caption); color: var(--wp--custom--color--text-muted); }
		}
		.cbc-cover-page__note { font-size: var(--wp--preset--font-size--caption); }
		.cbc-cover-page__reassurance { margin: 0; padding-left: var(--wp--preset--spacing--md); font-size: var(--wp--preset--font-size--caption); li { padding-block: var(--wp--preset--spacing--xs); } }
		.cbc-cover-page__included {
			display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--wp--preset--spacing--lg);
			margin-block: var(--wp--preset--spacing--3-xl); padding-block: var(--wp--preset--spacing--xl); border-block: 1px solid var(--wp--custom--color--line);
			h2 { grid-column: 1 / -1; }
			p { font-size: var(--wp--preset--font-size--small); margin-top: var(--wp--preset--spacing--sm); }
		}
		.cbc-cover-page__related {
			h2 { margin-bottom: var(--wp--preset--spacing--lg); }
			.cbc-shop__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
			.cbc-shop-card__image img { max-height: 280px; }
		}
		@media (max-width: 760px) {
			.cbc-cover-page__overview { grid-template-columns: 1fr; gap: var(--wp--preset--spacing--lg); }
			.cbc-cover-page__artwork img { height: 300px; }
			.cbc-cover-page__copy { .cbc-button { width: 100%; } }
			.cbc-cover-page__included { grid-template-columns: 1fr; margin-block: var(--wp--preset--spacing--xl); }
			.cbc-cover-page__related { .cbc-shop__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
		}
	}
}
