/* Craven Watches — site layout on the Horologium tokens.
   Loaded after tokens.css and components.css. Tokens only: no raw colours, radii or shadows.
   Breakpoints: 900px and 560px. */

/* base */
*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
	font-size: 15px;
	line-height: 23px;
}

.cw-main { flex: 1 0 auto; }

img,
svg { max-width: 100%; height: auto; }

a { color: inherit; }

button,
input,
select,
textarea { font: inherit; color: inherit; }

.cw-container {
	width: 100%;
	max-width: calc(1200px + 2 * var(--space-4));
	margin: 0 auto;
	padding: 0 var(--space-4);
}

.cw-container--narrow { max-width: calc(720px + 2 * var(--space-4)); }

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	border: 0;
	word-wrap: normal !important;
}

.skip-link:focus {
	position: absolute !important;
	top: var(--space-2);
	left: var(--space-2);
	z-index: 100000;
	width: auto;
	height: auto;
	margin: 0;
	padding: var(--space-3) var(--space-4);
	clip: auto;
	clip-path: none;
	background: var(--surface-raised);
	color: var(--ink);
	border: 1px solid var(--ink);
	border-radius: var(--radius-md);
	text-decoration: none;
	box-shadow: var(--focus-ring);
}

:focus-visible { outline: none; box-shadow: var(--focus-ring); }

.h-btn[disabled] { opacity: 0.4; cursor: default; }
.h-btn[disabled]:hover { opacity: 0.4; background: var(--surface-raised); }

.cw-empty { color: var(--ink-muted); margin: var(--space-6) 0 0; }

/* header */
.cw-header {
	background: var(--surface-100);
	border-bottom: 1px solid var(--line-strong);
}

.cw-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-5);
	min-height: 80px;
	padding-top: var(--space-4);
	padding-bottom: var(--space-4);
}

.cw-brand {
	display: flex;
	flex-direction: column;
	gap: var(--space-1);
	color: var(--ink);
	text-decoration: none;
}

.cw-brand__name.display-md {
	font-size: 24px;
	line-height: 28px;
}

.cw-brand__tagline {
	color: var(--brass-strong);
	text-transform: uppercase;
}

.cw-nav__list {
	display: flex;
	align-items: center;
	gap: var(--space-5);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cw-nav__list a {
	display: inline-block;
	padding: var(--space-2) 0;
	color: var(--ink-muted);
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: color 140ms ease, border-color 140ms ease;
}

.cw-nav__list a:hover,
.cw-nav__list .current-menu-item > a,
.cw-nav__list .current_page_item > a {
	color: var(--ink);
	border-bottom-color: var(--brass);
}

.cw-nav__toggle { display: none; }

@media (max-width: 900px) {
	.cw-header__inner { flex-wrap: wrap; }
	.cw-nav__toggle { display: inline-flex; }
	.cw-nav {
		display: none;
		flex-basis: 100%;
		padding-top: var(--space-4);
		border-top: 1px solid var(--line);
	}
	.cw-nav.is-open { display: block; }
	.cw-nav__list { flex-direction: column; align-items: stretch; gap: 0; }
	.cw-nav__list a { display: block; padding: var(--space-3) 0; border-bottom: 1px solid var(--line); }
	.cw-nav__list li:last-child a { border-bottom-color: transparent; }
}

@media (max-width: 560px) {
	.cw-header__inner { gap: var(--space-3); }
	.cw-brand { min-width: 0; }
	.cw-brand__name.display-md { font-size: 22px; line-height: 26px; }
	.cw-nav__toggle { width: 44px; padding: 0; }
	.cw-nav__toggle span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); }
}

/* hero */
.cw-hero {
	position: relative;
	background: var(--surface-ink);
	color: var(--on-ink);
	padding: var(--space-9) 0;
}

/* Photographic hero: image fills the band, a scrim keeps the copy readable
   (darker at the left where the text sits). */
.cw-hero--image {
	background-size: cover;
	background-position: center right;
	background-repeat: no-repeat;
}
.cw-hero__scrim {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(15, 12, 8, 0.85) 0%, rgba(15, 12, 8, 0.55) 45%, rgba(15, 12, 8, 0.15) 100%),
		linear-gradient(180deg, rgba(15, 12, 8, 0.25) 0%, rgba(15, 12, 8, 0.35) 100%);
}
.cw-hero--image .cw-hero__inner { position: relative; z-index: 1; }
.cw-hero--image .cw-hero__title { max-width: 18ch; }

.cw-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--space-8);
	align-items: center;
}

.cw-hero__copy { display: flex; flex-direction: column; align-items: flex-start; }

.cw-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--brass);
	text-transform: uppercase;
}

.cw-hero__eyebrow::before { content: ""; width: 22px; height: 1px; background: var(--brass); }

.cw-hero__title {
	margin: var(--space-5) 0 0;
	max-width: 14ch;
	color: var(--on-ink);
}

.cw-hero__rule {
	display: block;
	width: 64px;
	height: 1px;
	margin: var(--space-6) 0;
	background: var(--brass);
}

.cw-hero .h-btn--primary {
	background: var(--on-ink);
	color: var(--surface-ink);
	border-color: var(--on-ink);
}


.cw-hero__art {
	justify-self: end;
	width: min(100%, 340px);
	color: var(--brass);
}

.cw-hero__dial { display: block; width: 100%; height: auto; }

@media (max-width: 900px) {
	.cw-hero__inner { grid-template-columns: minmax(0, 1fr); }
	.cw-hero__art { display: none; }
	.cw-hero__title.display-xl { font-size: 52px; line-height: 54px; letter-spacing: -0.015em; }
}

@media (max-width: 560px) {
	.cw-hero__title.display-xl { font-size: 34px; line-height: 40px; letter-spacing: -0.01em; }
}

/* sections */
.cw-band { padding: var(--space-9) 0; }

.cw-band + .cw-band:not(.cw-section--raised):not(.cw-hero) { padding-top: 0; }

.cw-band + .cw-section--raised { margin-top: 0; }

.cw-section--raised {
	background: var(--surface-raised);
	border-top: 1px solid var(--line-strong);
	border-bottom: 1px solid var(--line-strong);
}

.cw-section--raised + .cw-band { padding-top: var(--space-9); }

.cw-section .h-head + .cw-section__content { margin-top: var(--space-6); }

.cw-section__content > p { max-width: 65ch; }

/* zebra — alternating bands on the landing page. Odd bands (hero, latest, gallery)
   are dark: we re-scope the Horologium tokens to the Lume palette on the subtree so
   every component inside (cards, rules, prices, badges, buttons) recolours itself.
   Even bands (categories, about, how-to-buy) stay on the light cream surface. */
.cw-home > .cw-band:nth-child(odd):not(.cw-hero) {
	--surface-100: #17130e;
	--surface-200: #201a13;
	--surface-raised: #262019;
	--surface-ink: #0f0c08;
	--ink: #f0e6d4;
	--ink-muted: #b6a488;
	--ink-subtle: #8a7a61;
	--on-ink: #f0e6d4;
	--brass: #c69a51;
	--brass-strong: #d9b473;
	--oxblood: #cf8077;
	--patina: #86b4a2;
	--brass-soft: #33291a;
	--oxblood-soft: #3a211d;
	--patina-soft: #1f2f2a;
	--line: #3a3226;
	--line-strong: #55492f;
	--rule-ink: #8a7a61;
	--shadow-raised: 1px 1px 0 0 #0b0906;
	--shadow-hover: 2px 3px 0 0 #060504;
	--shadow-panel: 3px 4px 0 0 rgba(0, 0, 0, 0.55);
	--shadow-inset: inset 0 0 0 1px #2c251b, inset 0 0 0 3px #221c14;
	--focus-ring: 0 0 0 2px #17130e, 0 0 0 3px #d9b473;
	background: var(--surface-100);
	color: var(--ink);
}
/* Even bands (categories, about, how-to-buy) are pinned to the Daylight palette so
   the zebra stays fixed — a light stripe with dark text — even when the visitor's OS
   is in dark mode. */
.cw-home > .cw-band:nth-child(even) {
	--surface-100: #f4ecdd;
	--surface-200: #ebe1cd;
	--surface-raised: #fbf7ee;
	--surface-ink: #211c16;
	--ink: #2a2118;
	--ink-muted: #6a5c48;
	--ink-subtle: #8a7a62;
	--on-ink: #f4ecdd;
	--brass: #9c7b3f;
	--brass-strong: #7c5f28;
	--oxblood: #7a2e2b;
	--patina: #3f6155;
	--brass-soft: #efe4cd;
	--oxblood-soft: #f0dcd3;
	--patina-soft: #dde6df;
	--line: #d3c4a6;
	--line-strong: #bda884;
	--rule-ink: #4a3d2c;
	--shadow-raised: 1px 1px 0 0 #cbbc9d;
	--shadow-hover: 2px 3px 0 0 #b7a582;
	--shadow-panel: 3px 4px 0 0 rgba(42, 33, 24, 0.16);
	--shadow-inset: inset 0 0 0 1px #f7f1e5, inset 0 0 0 3px #f7f1e5;
	--focus-ring: 0 0 0 2px #f4ecdd, 0 0 0 3px #7c5f28;
	background: var(--surface-100);
	color: var(--ink);
}
/* Even stripes on the landing page keep symmetric padding so each colour block
   frames its content (overrides the global adjacent-band top-padding collapse). */
.cw-home > .cw-band + .cw-band:not(.cw-section--raised):not(.cw-hero) { padding-top: var(--space-9); }

@media (max-width: 900px) {
	.cw-band { padding: var(--space-7) 0; }
	.cw-hero { padding: var(--space-8) 0; }
	.cw-section--raised + .cw-band { padding-top: var(--space-7); }
	.cw-home > .cw-band + .cw-band:not(.cw-section--raised):not(.cw-hero) { padding-top: var(--space-7); }
}

/* bento */
.cw-bento {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: minmax(200px, auto);
	gap: var(--space-5);
	margin-top: var(--space-7);
}

.cw-bento__tile {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	min-height: 200px;
	padding: var(--space-5);
	overflow: hidden;
	background: var(--surface-raised);
	color: var(--ink);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-raised);
	text-decoration: none;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.cw-bento__tile:hover { border-color: var(--ink); box-shadow: var(--shadow-hover); }
.cw-bento__tile:focus-visible { border-color: var(--ink); box-shadow: var(--focus-ring); }

.cw-bento__tile:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 3; }
.cw-bento__tile:nth-child(2) { grid-column: 3 / 4; grid-row: 1 / 2; }
.cw-bento__tile:nth-child(3) { grid-column: 4 / 5; grid-row: 1 / 2; }
.cw-bento__tile:nth-child(4) { grid-column: 3 / 4; grid-row: 2 / 3; }
.cw-bento__tile:nth-child(5) { grid-column: 4 / 5; grid-row: 2 / 3; }

.cw-bento__tile--feature { background: var(--surface-200); padding: var(--space-6); }

.cw-bento__title { margin: 0; }
.cw-bento__note { color: var(--ink-muted); max-width: 32ch; }

/* Image tiles: photo fills the tile, a scrim keeps the text legible. */
.cw-bento__tile--image {
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	/* Keep the standard adaptive keyline (var(--line-strong) from the base rule)
	   so image tiles match every other card and stay visible in both themes. */
}
.cw-bento__scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 12, 8, 0.15) 0%, rgba(15, 12, 8, 0.35) 45%, rgba(15, 12, 8, 0.85) 100%);
}
/* Category photos read black-and-white at rest and gain full colour on hover/focus.
   All foreground text on image tiles is achromatic (--on-ink / neutral scrim), so a
   filter on the whole tile only affects the photograph. */
.cw-bento__tile--image { filter: grayscale(1); transition: border-color 160ms ease, box-shadow 160ms ease, filter 240ms ease; }
.cw-bento__tile--image:hover,
.cw-bento__tile--image:focus-visible { filter: grayscale(0); }
@media (prefers-reduced-motion: reduce) {
	.cw-bento__tile--image { transition: border-color 160ms ease, box-shadow 160ms ease; }
}
.cw-bento__tile--image > :not(.cw-bento__scrim) { position: relative; z-index: 1; }
.cw-bento__tile--image .cw-bento__title { color: var(--on-ink); }
.cw-bento__tile--image .cw-bento__note { color: var(--on-ink); opacity: 0.88; }
.cw-bento__tile--image .cw-bento__cta { color: var(--on-ink); }
.cw-bento__tile--image:hover .cw-bento__cta { color: var(--on-ink); }
.cw-bento__cta {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	margin-top: auto;
	padding-top: var(--space-4);
	font-family: var(--font-sans);
	font-size: 13px;
	font-weight: 600;
	color: var(--brass-strong);
}
.cw-bento__arrow { transition: transform 140ms ease; }
.cw-bento__tile:hover .cw-bento__cta { color: var(--brass); }
.cw-bento__tile:hover .cw-bento__arrow { transform: translateX(3px); }

.cw-bento__art {
	position: absolute;
	right: -8%;
	bottom: -14%;
	width: 52%;
	height: auto;
	color: var(--ink);
	opacity: 0.08;
	pointer-events: none;
}

.cw-bento__tile--feature .cw-bento__title.display-md { font-size: 52px; line-height: 54px; letter-spacing: -0.015em; font-weight: 340; }

@media (max-width: 900px) {
	.cw-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; }
	.cw-bento__tile:nth-child(1) { grid-column: 1 / 3; grid-row: 1 / 2; min-height: 240px; }
	.cw-bento__tile:nth-child(2) { grid-column: 1 / 2; grid-row: 2 / 3; }
	.cw-bento__tile:nth-child(3) { grid-column: 2 / 3; grid-row: 2 / 3; }
	.cw-bento__tile:nth-child(4) { grid-column: 1 / 2; grid-row: 3 / 4; }
	.cw-bento__tile:nth-child(5) { grid-column: 2 / 3; grid-row: 3 / 4; }
	.cw-bento__tile--feature .cw-bento__title.display-md { font-size: 34px; line-height: 40px; }
}

@media (max-width: 560px) {
	.cw-bento { grid-template-columns: minmax(0, 1fr); margin-top: var(--space-6); }
	.cw-bento__tile:nth-child(n) { grid-column: auto; grid-row: auto; min-height: 0; }
	.cw-bento__tile:nth-child(1) { min-height: 200px; }
}

/* slider */
.cw-slider { margin-top: var(--space-7); }

.cw-slider__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(280px, 31%);
	gap: var(--space-5);
	margin: calc(-1 * var(--space-1));
	padding: var(--space-1);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}

.cw-slider__track::-webkit-scrollbar { display: none; }

.cw-slider__item { display: flex; scroll-snap-align: start; }
.cw-slider__item .h-card { width: 100%; }

.cw-slider__controls {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-4);
	margin-top: var(--space-5);
}

.cw-slider__buttons { display: flex; gap: var(--space-2); }
.cw-slider__buttons .h-btn { width: 44px; padding: 0; }

@media (max-width: 900px) {
	.cw-slider__track { grid-auto-columns: minmax(260px, 46%); }
}

@media (max-width: 560px) {
	.cw-slider { margin-top: var(--space-6); }
	.cw-slider__track { grid-auto-columns: 84%; gap: var(--space-4); }
}

/* "At the bench" photo slider — reuses .cw-slider, shows photographs in framed cards. */
.cw-bench__item {
	width: 100%;
	margin: 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--surface-200);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-raised);
}
.cw-bench__item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cw-bench__controls { justify-content: flex-end; }

/* about */
.cw-about__inner {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: var(--space-8);
	align-items: start;
}

.cw-about__portrait {
	position: relative;
	aspect-ratio: 4 / 5;
	display: grid;
	place-items: center;
	overflow: hidden;
	background: var(--surface-200);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-raised);
}

.cw-about__portrait img { width: 100%; height: 100%; object-fit: cover; display: block; }

.cw-about__portrait--empty { align-content: center; gap: var(--space-4); }
.cw-about__glyph { width: 45%; color: var(--ink-muted); }
.cw-about__caption { color: var(--ink-muted); }

.cw-about__text .h-head + .cw-prose { margin-top: var(--space-6); }

@media (max-width: 900px) {
	.cw-about__inner { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
	.cw-about__portrait { max-width: 420px; }
}

/* books */
.cw-books { margin-top: var(--space-7); }

.cw-books__title { margin: 0 0 var(--space-4); color: var(--ink); }

.cw-books__list {
	margin: 0;
	padding: 0;
	list-style: none;
	border-top: 1px solid var(--rule-ink);
	border-bottom: 1px solid var(--rule-ink);
}

.cw-book {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: var(--space-2) var(--space-6);
	padding: var(--space-4) 0;
	margin: 0;
	border-bottom: 1px solid var(--line);
}

.cw-book:last-child { border-bottom: 0; }

.cw-book__head { display: flex; flex-direction: column; gap: var(--space-1); }
.cw-book__title { font-weight: 600; color: var(--ink); }
.cw-book__author { color: var(--ink-muted); }
.cw-book__note { margin: 0; color: var(--ink-muted); }

.cw-prose .cw-books__list { margin: 0; padding: 0; }
.cw-prose .cw-book { margin: 0; }
.cw-prose .cw-book::marker { content: none; }

@media (max-width: 560px) {
	.cw-book { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
}

/* gallery */
.cw-section .wp-block-gallery.has-nested-images {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-4);
	margin: 0 0 var(--space-5);
}

.cw-section .wp-block-gallery.has-nested-images figure.wp-block-image {
	width: auto;
	margin: 0;
	display: block;
}

.cw-section .wp-block-gallery.has-nested-images figure.wp-block-image img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-raised);
}

.cw-section .wp-block-gallery.has-nested-images figure.wp-block-image figcaption {
	position: static;
	margin: 0;
	padding: var(--space-2) 0 0;
	background: none;
	color: var(--ink-muted);
	font-family: var(--font-sans);
	font-size: 12px;
	line-height: 16px;
	font-weight: 500;
	text-align: left;
}

.cw-section .wp-block-gallery.has-nested-images:empty { display: none; }

@media (max-width: 900px) {
	.cw-section .wp-block-gallery.has-nested-images { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.cw-section .wp-block-gallery.has-nested-images { grid-template-columns: minmax(0, 1fr); }
}

/* how to buy */
.cw-buy-section__inner {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--space-8);
	align-items: start;
}

.cw-buy-section__intro { margin: var(--space-5) 0 0; color: var(--ink-muted); max-width: 52ch; }
.cw-buy-section__text .cw-prose { margin-top: var(--space-5); }

.cw-buy {
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
	padding: var(--space-6) var(--space-5);
	background: var(--surface-raised);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-inset);
}

.cw-buy__label,
.cw-buy__title {
	margin: 0;
	padding-bottom: var(--space-3);
	border-bottom: 1px solid var(--rule-ink);
	color: var(--ink);
}

.cw-buy__label { color: var(--brass-strong); text-transform: uppercase; }

.cw-buy__actions { display: flex; flex-direction: column; gap: var(--space-2); }
.cw-buy__actions .h-btn { width: 100%; }
.cw-buy__note { margin: 0; color: var(--ink-muted); }
.cw-buy__note code { color: var(--ink); white-space: nowrap; }

@media (max-width: 900px) {
	.cw-buy-section__inner { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
}

/* theme utilities — pin a subtree to a fixed Horologium palette regardless of the
   visitor's OS theme. Values mirror the Lume/Daylight blocks in tokens.css. */
.cw-theme-dark {
	--surface-100: #17130e;
	--surface-200: #201a13;
	--surface-raised: #262019;
	--surface-ink: #0f0c08;
	--ink: #f0e6d4;
	--ink-muted: #b6a488;
	--ink-subtle: #8a7a61;
	--on-ink: #f0e6d4;
	--brass: #c69a51;
	--brass-strong: #d9b473;
	--oxblood: #cf8077;
	--patina: #86b4a2;
	--brass-soft: #33291a;
	--oxblood-soft: #3a211d;
	--patina-soft: #1f2f2a;
	--line: #3a3226;
	--line-strong: #55492f;
	--rule-ink: #8a7a61;
	--shadow-raised: 1px 1px 0 0 #0b0906;
	--shadow-hover: 2px 3px 0 0 #060504;
	--shadow-panel: 3px 4px 0 0 rgba(0, 0, 0, 0.55);
	--shadow-inset: inset 0 0 0 1px #2c251b, inset 0 0 0 3px #221c14;
	--focus-ring: 0 0 0 2px #17130e, 0 0 0 3px #d9b473;
	color: var(--ink);
}
.cw-theme-light {
	--surface-100: #f4ecdd;
	--surface-200: #ebe1cd;
	--surface-raised: #fbf7ee;
	--surface-ink: #211c16;
	--ink: #2a2118;
	--ink-muted: #6a5c48;
	--ink-subtle: #8a7a62;
	--on-ink: #f4ecdd;
	--brass: #9c7b3f;
	--brass-strong: #7c5f28;
	--oxblood: #7a2e2b;
	--patina: #3f6155;
	--brass-soft: #efe4cd;
	--oxblood-soft: #f0dcd3;
	--patina-soft: #dde6df;
	--line: #d3c4a6;
	--line-strong: #bda884;
	--rule-ink: #4a3d2c;
	--shadow-raised: 1px 1px 0 0 #cbbc9d;
	--shadow-hover: 2px 3px 0 0 #b7a582;
	--shadow-panel: 3px 4px 0 0 rgba(42, 33, 24, 0.16);
	--shadow-inset: inset 0 0 0 1px #f7f1e5, inset 0 0 0 3px #f7f1e5;
	--focus-ring: 0 0 0 2px #f4ecdd, 0 0 0 3px #7c5f28;
	color: var(--ink);
}

/* collection archive */
.cw-archive { padding: var(--space-8) 0 var(--space-9); background: var(--surface-100); color: var(--ink); }

/* full-width category bar on top: chips left, sort right */
.cw-catbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-5);
	flex-wrap: wrap;
	margin-top: var(--space-6);
	padding-bottom: var(--space-4);
	border-bottom: 1px solid var(--line);
}
.cw-catbar .h-chips { gap: var(--space-2); }
.cw-catbar__sort { display: inline-flex; align-items: center; gap: var(--space-2); }
.cw-catbar__sort label { color: var(--ink-muted); }

.cw-collection {
	display: grid;
	grid-template-columns: 288px minmax(0, 1fr);
	gap: var(--space-6);
	align-items: start;
	margin-top: var(--space-6);
}

.cw-collection__aside { align-self: start; }
.cw-filterpanel {
	background: var(--surface-raised);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-inset);
	padding: var(--space-6) var(--space-5);
	display: flex;
	flex-direction: column;
	gap: var(--space-6);
}
.cw-filterpanel__clear { color: var(--brass-strong); text-decoration: underline; text-underline-offset: 3px; }
.cw-filterpanel__clear:hover { color: var(--brass); }

.cw-filters { display: flex; flex-direction: column; gap: var(--space-6); }
.cw-filters fieldset { margin: 0; padding: 0; border: 0; display: flex; flex-direction: column; gap: var(--space-3); }
.cw-filters legend { padding: 0; }

.h-chips a.h-chip { display: inline-flex; align-items: center; text-decoration: none; }

/* price range slider (dual thumb) */
.cw-priceslider { position: relative; }
.cw-priceslider__rail { position: relative; height: 4px; border-radius: var(--radius-sm); background: var(--line-strong); }
.cw-priceslider__fill { position: absolute; top: 0; height: 100%; border-radius: var(--radius-sm); background: var(--brass); }
.cw-priceslider__thumb {
	-webkit-appearance: none;
	appearance: none;
	position: absolute;
	top: -6px;
	left: 0;
	width: 100%;
	height: 16px;
	margin: 0;
	background: transparent;
	pointer-events: none;
}
.cw-priceslider__thumb::-webkit-slider-runnable-track { background: transparent; border: 0; }
.cw-priceslider__thumb::-moz-range-track { background: transparent; border: 0; }
.cw-priceslider__thumb::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	pointer-events: auto;
	width: 16px;
	height: 16px;
	border-radius: var(--radius-sm);
	background: var(--surface-raised);
	border: 1px solid var(--brass);
	box-shadow: var(--shadow-raised);
	cursor: pointer;
}
.cw-priceslider__thumb::-moz-range-thumb {
	pointer-events: auto;
	width: 16px;
	height: 16px;
	border-radius: var(--radius-sm);
	background: var(--surface-raised);
	border: 1px solid var(--brass);
	box-shadow: var(--shadow-raised);
	cursor: pointer;
}
.cw-priceslider__thumb:focus-visible { outline: none; }
.cw-priceslider__thumb:focus-visible::-webkit-slider-thumb { box-shadow: var(--focus-ring); }
.cw-priceslider__thumb:focus-visible::-moz-range-thumb { box-shadow: var(--focus-ring); }
.cw-priceslider .h-range__vals { margin-top: var(--space-4); }

.cw-filters__actions { display: flex; flex-direction: column; gap: var(--space-2); }

.cw-collection__count { margin: var(--space-3) 0 0; color: var(--ink-subtle); }

.cw-grid {
	display: grid;
	gap: var(--space-5);
	margin-top: var(--space-6);
}

.cw-grid--cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cw-collection__main .cw-grid--cards { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }

.h-card__badge { display: flex; flex-direction: column; align-items: flex-end; gap: var(--space-1); }
.h-card__image { width: 100%; height: 100%; object-fit: cover; display: block; }
.h-card__body { flex: 1 1 auto; }
.h-card__foot { margin-top: auto; padding-top: var(--space-3); }
.h-card:focus-visible { border-color: var(--ink); }

@media (max-width: 900px) {
	.cw-archive { padding: var(--space-7) 0 var(--space-8); }
	.cw-collection { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
	.cw-collection__aside { position: static; max-height: none; overflow: visible; }
	.cw-grid--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
	.cw-grid--cards { grid-template-columns: minmax(0, 1fr); }
}

/* single listing */
.cw-listing {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: var(--space-8);
	align-items: start;
	padding: var(--space-8) 0;
}

.cw-listing__well {
	aspect-ratio: 1 / 1;
	display: grid;
	place-items: center;
	overflow: hidden;
	background: var(--surface-200);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-raised);
}

.cw-listing__image { width: 100%; height: 100%; object-fit: contain; display: block; }
.cw-listing__art { width: 55%; color: var(--ink-muted); }

.cw-listing__number { margin: 0 0 var(--space-2); color: var(--ink-subtle); }
.cw-listing__title { margin: 0; color: var(--ink); }
.cw-listing__badges { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }

.cw-listing__price.title {
	margin: var(--space-4) 0 0;
	font-family: var(--font-mono);
	font-weight: 400;
	letter-spacing: 0.04em;
	color: var(--brass-strong);
}

.cw-spec { margin-top: var(--space-6); }
.cw-spec .h-spec__group { display: contents; }
.cw-spec dd { margin: 0; }
.cw-spec .h-spec__row:last-child { border-bottom: 0; }

.cw-listing__content { margin-top: var(--space-6); }
.cw-listing .cw-buy { margin-top: var(--space-6); }

.cw-listing ~ .cw-comments { max-width: 720px; }

.cw-listing-nav,
.cw-post-nav {
	display: flex;
	justify-content: space-between;
	gap: var(--space-4);
	padding: var(--space-5) 0;
	border-top: 1px solid var(--line);
	color: var(--ink-muted);
}

.cw-listing-nav a,
.cw-post-nav a { color: var(--brass-strong); text-decoration: underline; text-underline-offset: 3px; }
.cw-listing-nav__next,
.cw-post-nav__next { text-align: right; margin-left: auto; }

@media (max-width: 900px) {
	.cw-listing { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); padding: var(--space-7) 0; }
}

/* blog */
.cw-blog { padding: var(--space-8) 0 var(--space-9); }

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

.cw-post-card {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: var(--space-2);
	padding: var(--space-5);
	background: var(--surface-raised);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-raised);
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.cw-post-card:hover { border-color: var(--ink); box-shadow: var(--shadow-hover); }
.cw-post-card:focus-within { border-color: var(--ink); box-shadow: var(--focus-ring); }

.cw-post-card__date { margin: 0; color: var(--ink-subtle); }
.cw-post-card__title { margin: 0; color: var(--ink); }
.cw-post-card__title a { text-decoration: none; }
.cw-post-card__title a::after { content: ""; position: absolute; inset: 0; }
.cw-post-card__title a:focus-visible { box-shadow: none; }
.cw-post-card__excerpt { margin: 0; color: var(--ink-muted); }
.cw-post-card__more { align-self: flex-start; margin-top: var(--space-2); padding: 0; }

.cw-post { padding: 0 0 var(--space-9); }
.cw-post__banner {
	position: relative;
	display: flex;
	align-items: flex-end;
	min-height: 420px;
	padding: var(--space-8) 0;
	background-color: var(--surface-ink);
	background-size: cover;
	background-position: center;
	background-repeat: no-repeat;
	border-bottom: 1px solid var(--line-strong);
}
/* Default cover already carries its own artwork; don't dim it as heavily. */
.cw-post__banner--default { background-position: center; }
.cw-post__banner-scrim {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 12, 8, 0.25) 0%, rgba(15, 12, 8, 0.72) 100%);
}
.cw-post__banner--default .cw-post__banner-scrim { background: linear-gradient(180deg, rgba(15, 12, 8, 0.30) 0%, rgba(15, 12, 8, 0.78) 100%); }
.cw-post__banner-inner { position: relative; z-index: 1; }
.cw-post__banner .cw-post__meta { color: var(--on-ink); opacity: 0.85; }
.cw-post__banner .cw-post__meta a { color: var(--on-ink); }
.cw-post__banner .cw-post__title { color: var(--on-ink); }
.cw-post__meta { margin: 0 0 var(--space-3); color: var(--ink-subtle); }
.cw-post__meta a { color: inherit; text-decoration: none; }
.cw-post__meta a:hover { color: var(--brass-strong); }
.cw-post__byline { white-space: nowrap; }
.cw-post__author { color: inherit; }
.cw-post__title { margin: 0; color: var(--ink); }
.cw-post__content { margin-top: var(--space-7); }
.cw-post__tags { margin: var(--space-5) 0 0; color: var(--ink-muted); }
.cw-post__tags a { color: var(--brass-strong); text-decoration: underline; text-underline-offset: 3px; }
.cw-post-nav { margin-top: var(--space-6); }

.cw-search__form { max-width: 560px; margin-top: var(--space-6); }
.cw-404__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }

@media (max-width: 900px) {
	.cw-blog { padding: var(--space-7) 0 var(--space-8); }
	.cw-post { padding: 0 0 var(--space-8); }
	.cw-post__banner { min-height: 300px; padding: var(--space-7) 0; }
	.cw-post__title.display-lg { font-size: 34px; line-height: 40px; letter-spacing: -0.01em; }
}

@media (max-width: 560px) {
	.cw-grid--posts { grid-template-columns: minmax(0, 1fr); }
}

/* comments */
.cw-comments {
	margin-top: var(--space-8);
	padding-top: var(--space-6);
	border-top: 1px solid var(--rule-ink);
}

.cw-comments__title { margin: 0 0 var(--space-5); color: var(--ink); }

.cw-comment-list,
.cw-comment-list .children { margin: 0; padding: 0; list-style: none; }
.cw-comment-list .children { padding-left: var(--space-6); border-left: 1px solid var(--line); }

.cw-comment { padding: var(--space-4) 0; border-bottom: 1px solid var(--line); }

.cw-comment__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-3); }
.cw-comment__author { font-weight: 600; color: var(--ink); }
.cw-comment__author a { text-decoration: none; }
.cw-comment__date { color: var(--ink-subtle); text-decoration: none; }
.cw-comment__date:hover { color: var(--brass-strong); }
.cw-comment__pending { color: var(--ink-muted); }
.cw-comment__body { margin-top: var(--space-2); color: var(--ink); }
.cw-comment__body p { margin: 0 0 var(--space-3); }
.cw-comment__body p:last-child { margin-bottom: 0; }
.cw-comment__reply { margin-top: var(--space-2); }
.cw-comment__reply .comment-reply-link { font-size: 13px; }

.comment-navigation { margin-top: var(--space-4); }
.comment-navigation .nav-links { display: flex; justify-content: space-between; gap: var(--space-4); }
.comment-navigation a { color: var(--brass-strong); }

.cw-comments__closed { color: var(--ink-muted); }

.comment-respond { margin-top: var(--space-6); }
.comment-reply-title { margin: 0 0 var(--space-4); color: var(--ink); }
.comment-reply-title small { margin-left: var(--space-3); font-size: 13px; font-weight: 400; }
.comment-reply-title small a { color: var(--brass-strong); }
.comment-notes,
.logged-in-as { margin: 0 0 var(--space-4); color: var(--ink-muted); }
.logged-in-as a { color: var(--brass-strong); }

.cw-comment-form p { margin: 0 0 var(--space-4); }
.cw-comment-form label.label { display: block; margin-bottom: var(--space-2); color: var(--ink-muted); text-transform: uppercase; }
.cw-comment-form .required { color: var(--oxblood); }

.cw-input {
	width: 100%;
	height: 44px;
	padding: 0 var(--space-4);
	background: var(--surface-raised);
	color: var(--ink);
	border: 1px solid var(--ink-subtle);
	border-radius: var(--radius-md);
	font-family: var(--font-sans);
	font-size: 15px;
	transition: border-color 140ms ease, box-shadow 140ms ease;
}

.cw-input--textarea { height: auto; min-height: 140px; padding: var(--space-3) var(--space-4); resize: vertical; line-height: 23px; }
.cw-input::placeholder { color: var(--ink-subtle); }
.cw-input:focus-visible { border-color: var(--brass); box-shadow: var(--focus-ring); }

.comment-form-cookies-consent { display: flex; align-items: flex-start; gap: var(--space-2); color: var(--ink-muted); }
.comment-form-cookies-consent input { margin: 3px 0 0; accent-color: var(--brass); }
.form-submit { margin-top: var(--space-2); }

/* prose */
.cw-prose { color: var(--ink); }
.cw-prose > *:first-child { margin-top: 0; }
.cw-prose > *:last-child { margin-bottom: 0; }

.cw-prose p,
.cw-prose ul,
.cw-prose ol,
.cw-prose blockquote,
.cw-prose figure,
.cw-prose pre,
.cw-prose table { margin: 0 0 var(--space-4); }

.cw-prose ul,
.cw-prose ol { padding-left: var(--space-5); }
.cw-prose li { margin-bottom: var(--space-2); }
.cw-prose li::marker { color: var(--brass-strong); font-family: var(--font-mono); font-size: 13px; }

.cw-prose a { color: var(--brass-strong); text-decoration: underline; text-underline-offset: 3px; }
.cw-prose a:hover { color: var(--brass); }

.cw-prose h2,
.cw-prose h3,
.cw-prose h4 { margin: var(--space-7) 0 var(--space-3); color: var(--ink); }

.cw-prose h2 { font-family: var(--font-display); font-size: 34px; line-height: 40px; font-weight: 400; letter-spacing: -0.01em; }
.cw-prose h3 { font-family: var(--font-sans); font-size: 19px; line-height: 26px; font-weight: 600; letter-spacing: -0.005em; }
.cw-prose h4 { font-family: var(--font-sans); font-size: 15px; line-height: 23px; font-weight: 600; }

.cw-prose blockquote {
	padding: var(--space-1) 0 var(--space-1) var(--space-5);
	border-left: 2px solid var(--brass);
	color: var(--ink-muted);
	font-family: var(--font-display);
	font-size: 25px;
	line-height: 34px;
	font-weight: 380;
	font-style: italic;
}

.cw-prose blockquote p { margin: 0; }
.cw-prose blockquote cite { display: block; margin-top: var(--space-3); font-family: var(--font-sans); font-size: 13px; line-height: 20px; font-style: normal; }

.cw-prose img { max-width: 100%; height: auto; }
.cw-prose figcaption { margin-top: var(--space-2); color: var(--ink-muted); font-size: 12px; line-height: 16px; font-weight: 500; }

.cw-prose code { font-family: var(--font-mono); font-size: 13px; }
.cw-prose pre { padding: var(--space-4); overflow-x: auto; background: var(--surface-200); border: 1px solid var(--line); border-radius: var(--radius-md); font-family: var(--font-mono); font-size: 13px; line-height: 20px; }

.cw-prose hr { margin: var(--space-6) 0; border: 0; border-top: 1px solid var(--line-strong); }

.cw-prose table { width: 100%; border-collapse: collapse; }
.cw-prose th,
.cw-prose td { padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--line); text-align: left; }
.cw-prose th { color: var(--ink-muted); font-weight: 600; }

.cw-page-links { margin-top: var(--space-5); color: var(--ink-muted); }

/* pagination */
.cw-pagination { margin-top: var(--space-7); }
.cw-pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.cw-pagination .screen-reader-text { display: none; }

.cw-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 var(--space-3);
	color: var(--ink-muted);
	border: 1px solid var(--line-strong);
	border-radius: var(--radius-sm);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 140ms ease, color 140ms ease;
}

.cw-pagination a.page-numbers:hover { background: var(--surface-200); color: var(--ink); }
.cw-pagination .page-numbers.current { background: var(--ink); color: var(--surface-100); border-color: var(--ink); }
.cw-pagination .page-numbers.dots { border-color: transparent; }

/* footer */
.cw-footer {
	margin-top: auto;
	padding: var(--space-8) 0 var(--space-6);
	background: var(--surface-200);
	border-top: 1px solid var(--line-strong);
	color: var(--ink);
}

.cw-footer__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--space-6);
}

.cw-footer__name {
	display: inline-block;
	color: var(--ink);
	text-decoration: none;
}

.cw-footer__name.display-md { font-size: 24px; line-height: 28px; }
.cw-footer__text { margin: var(--space-3) 0 0; max-width: 32ch; color: var(--ink-muted); }
.cw-footer__heading { margin: 0 0 var(--space-3); color: var(--brass-strong); text-transform: uppercase; }

.cw-footer__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: var(--space-2); }
.cw-footer__list a { color: var(--ink-muted); text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--line-strong); }
.cw-footer__list a:hover { color: var(--ink); text-decoration-color: var(--brass); }

.cw-footer__bottom {
	margin-top: var(--space-7);
	padding-top: var(--space-4);
	border-top: 1px solid var(--line);
	color: var(--ink-subtle);
}

@media (max-width: 900px) {
	.cw-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cw-footer__col:first-child { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
	.cw-footer { padding-top: var(--space-7); }
	.cw-footer__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
}
