:root {
	--pwc-space-0: 0;
	--pwc-space-025: 2px;
	--pwc-space-05: 4px;
	--pwc-space-1: 8px;
	--pwc-space-2: 16px;
	--pwc-space-3: 24px;
	--pwc-space-4: 32px;
	--pwc-space-5: 40px;
	--pwc-space-6: 48px;
	--pwc-space-7: 56px;
	--pwc-space-9: 72px;
	--pwc-color-surface: #fff;
	--pwc-color-surface-warm: #f7f1e8;
	--pwc-color-surface-hover: #f8f1e9;
	--pwc-color-surface-muted: #eee4d8;
	--pwc-color-surface-placeholder-start: #f5ede2;
	--pwc-color-surface-placeholder-end: #dfd1c2;
	--pwc-color-border: #ded1c3;
	--pwc-color-border-hover: #cdbdaa;
	--pwc-color-border-card: rgba(122, 102, 78, .24);
	--pwc-color-border-card-hover: rgba(229, 112, 48, .45);
	--pwc-color-focus-ring: rgba(231, 111, 50, .35);
	--pwc-color-text: #1f1d1a;
	--pwc-color-text-muted: #695f55;
	--pwc-color-text-filter: #3d342b;
	--pwc-color-text-heading: #171717;
	--pwc-color-text-placeholder: #746657;
	--pwc-color-accent: #e76f32;
	--pwc-color-accent-hover: #d85f24;
	--pwc-color-on-accent: #fff;
	--pwc-border-thin: 1px;
	--pwc-radius-pill: 999px;
	--pwc-radius-card: 24px;
	--pwc-shadow-card: 0 16px 32px rgba(71, 52, 34, .12);
	--pwc-shadow-card-hover: 0 24px 40px rgba(71, 52, 34, .18);
	--pwc-shadow-card-focus: 0 0 0 4px rgba(231, 111, 50, .2), var(--pwc-shadow-card);
	--pwc-duration-fast: .2s;
}

.post-type-archive-catalog #primary {
	background: var(--pwc-color-surface-warm);
	padding-block: var(--pwc-border-thin) var(--pwc-space-7);
}

.catalog-filter {
	display: flex;
	flex-wrap: nowrap;
	gap: var(--pwc-space-1);
	margin-block: var(--pwc-space-4) var(--pwc-space-0);
	overflow-x: auto;
	overscroll-behavior-inline: contain;
	padding-block: var(--pwc-space-025) var(--pwc-space-1);
	scroll-padding-inline: var(--pwc-space-2);
	scroll-snap-type: x proximity;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.catalog-filter::-webkit-scrollbar {
	display: none;
}

.catalog-filter-link {
	align-items: center;
	background: var(--pwc-color-surface);
	border: var(--pwc-border-thin) solid var(--pwc-color-border);
	border-radius: var(--pwc-radius-pill);
	box-sizing: border-box;
	color: var(--pwc-color-text-filter);
	display: inline-flex;
	font-size: 1rem;
	font-weight: 500;
	justify-content: center;
	line-height: 1.25;
	min-block-size: var(--pwc-space-5);
	padding: var(--pwc-space-1) var(--pwc-space-2);
	scroll-margin-inline: var(--pwc-space-2);
	scroll-snap-align: start;
	text-decoration: none;
	transition: background-color var(--pwc-duration-fast) ease, border-color var(--pwc-duration-fast) ease, color var(--pwc-duration-fast) ease;
	white-space: nowrap;
	flex: 0 0 auto;
}

.catalog-filter-link:visited {
	color: var(--pwc-color-text-filter);
}

.catalog-filter-link:hover,
.catalog-filter-link:focus {
	background: var(--pwc-color-surface-hover);
	border-color: var(--pwc-color-border-hover);
	color: var(--pwc-color-text);
	text-decoration: none;
}

.catalog-filter-link.is-active,
.catalog-filter-link.is-active:visited,
.catalog-filter-link.is-active:hover,
.catalog-filter-link.is-active:focus {
	background: var(--pwc-color-accent);
	border-color: var(--pwc-color-accent);
	color: var(--pwc-color-on-accent);
	font-weight: 600;
}

.catalog-filter-link:focus-visible {
	outline: 2px solid var(--pwc-color-focus-ring);
	outline-offset: var(--pwc-space-025);
}

.catalog-list {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: var(--pwc-space-4);
	margin-block: var(--pwc-space-6);
	row-gap: var(--pwc-space-4);
}

.catalog-list .catalog-card {
	margin-block: var(--pwc-space-0);
	background: var(--pwc-color-surface);
	border: var(--pwc-border-thin) solid var(--pwc-color-border-card);
	border-radius: var(--pwc-radius-card);
	box-shadow: var(--pwc-shadow-card);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	transition: border-color var(--pwc-duration-fast) ease, box-shadow var(--pwc-duration-fast) ease, transform var(--pwc-duration-fast) ease;
}

.catalog-list .catalog-card:hover {
	border-color: var(--pwc-color-border-card-hover);
	box-shadow: var(--pwc-shadow-card-hover);
	transform: translateY(calc(var(--pwc-space-05) * -1));
}

.catalog-list .catalog-card:focus-within {
	border-color: var(--pwc-color-accent);
	box-shadow: var(--pwc-shadow-card-focus);
}

.catalog-card-media {
	aspect-ratio: 768 / 1085;
	background: var(--pwc-color-surface-muted);
	color: inherit;
	display: block;
	overflow: hidden;
	text-decoration: none;
}

.catalog-card-media img,
.catalog-card-placeholder {
	block-size: 100%;
	inline-size: 100%;
}

.catalog-card-media img {
	display: block;
	object-fit: cover;
	transition: transform .25s ease;
}

.catalog-list .catalog-card:hover .catalog-card-media img {
	transform: scale(1.03);
}

.catalog-card-placeholder {
	align-items: center;
	background: linear-gradient(135deg, var(--pwc-color-surface-placeholder-start) 0%, var(--pwc-color-surface-placeholder-end) 100%);
	color: var(--pwc-color-text-placeholder);
	display: flex;
	font-size: 1rem;
	font-weight: 600;
	justify-content: center;
	padding: var(--pwc-space-3);
	text-align: center;
}

.catalog-card-content {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: var(--pwc-space-3);
}

.catalog-card-kicker,
.catalog-card-title {
	margin: 0;
}

.catalog-card-kicker {
	color: var(--pwc-color-text-muted);
	font-size: .875rem;
	line-height: 1.4;
}

.catalog-card-title {
	color: var(--pwc-color-text-heading);
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.25;
	margin-block-end: var(--pwc-space-3);
}

.catalog-card-actions {
	display: grid;
	gap: var(--pwc-space-2);
	grid-template-columns: 1fr;
	margin-top: auto;
	margin-block-start: auto;
}

.catalog-card-button {
	align-items: center;
	border: var(--pwc-border-thin) solid var(--pwc-color-border);
	border-radius: var(--pwc-radius-pill);
	display: inline-flex;
	font-size: .875rem;
	font-weight: 700;
	justify-content: center;
	line-height: 1.2;
	min-block-size: var(--pwc-space-6);
	min-inline-size: var(--pwc-space-0);
	padding: var(--pwc-space-1) var(--pwc-space-2);
	text-align: center;
	text-decoration: none;
	transition: background-color var(--pwc-duration-fast) ease, border-color var(--pwc-duration-fast) ease, color var(--pwc-duration-fast) ease, transform var(--pwc-duration-fast) ease;
	white-space: nowrap;
}

.catalog-card-button:only-child {
	grid-column: 1 / -1;
}

.catalog-card-button-primary,
.catalog-card-button-primary:visited {
	background: var(--pwc-color-accent);
	border-color: var(--pwc-color-accent);
	color: var(--pwc-color-on-accent);
}

.catalog-card-button-secondary,
.catalog-card-button-secondary:visited {
	background: var(--pwc-color-surface);
	color: var(--pwc-color-text);
}

.catalog-card-button:hover,
.catalog-card-button:focus {
	text-decoration: none;
	transform: translateY(calc(var(--pwc-border-thin) * -1));
}

.catalog-card-button-primary:hover,
.catalog-card-button-primary:focus {
	background: var(--pwc-color-accent-hover);
	border-color: var(--pwc-color-accent-hover);
	color: var(--pwc-color-on-accent);
}

.catalog-card-button-secondary:hover,
.catalog-card-button-secondary:focus {
	background: var(--pwc-color-surface-hover);
	border-color: var(--pwc-color-border-hover);
	color: var(--pwc-color-text);
}

@media ( min-width: 768px ) {
	.catalog-filter {
		flex-wrap: wrap;
		overflow-x: visible;
		padding-block: var(--pwc-space-0);
		scroll-snap-type: none;
	}

	.catalog-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media ( min-width: 360px ) {
	.catalog-card-actions {
		gap: var(--pwc-space-1);
		grid-template-columns: minmax(0, 1.6fr) minmax(var(--pwc-space-9), .85fr);
	}
}

@media ( min-width: 1200px ) {
	.catalog-list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
