body.woocommerce.cx-shop-catalog .page_content_wrap { padding-top:clamp(18px,2.1vw,36px); }
body.woocommerce.cx-shop-catalog .list_products .list_products_header { margin:0 0 clamp(14px,1.35vw,22px); }
body.woocommerce.cx-shop-catalog .list_products .list_products_header .woocommerce-breadcrumb { margin:0 0 .32rem; font-size:.82rem; }
body.woocommerce.cx-shop-catalog .list_products .list_products_header .page-title { font-size:clamp(30px,3.1vw,48px); line-height:1.06; }
/* Keep the shop name available to screen readers while moving the banners up. */
body.woocommerce-shop.cx-shop-catalog:not(.search) .list_products_header .page-title {
	position:absolute;
	width:1px; height:1px;
	padding:0; border:0; margin:0;
	overflow:hidden;
	clip-path:inset(50%);
	white-space:nowrap;
}
body.woocommerce-shop.cx-shop-catalog:not(.search) .page_content_wrap {
	/* Fabric sets the mobile header spacing with !important. */
	padding-top:clamp(8px,.8vw,14px) !important;
}
body.woocommerce-shop.cx-shop-catalog:not(.search) .list_products .list_products_header { margin-bottom:10px; }
body.woocommerce-shop.cx-shop-catalog:not(.search) .list_products .woocommerce-breadcrumb { margin-bottom:0; }
.cx-shop-catalog .cx-shop-tools { margin-bottom:0; }
.cx-shop-catalog .list_products .cx-shop-result-total {
	margin:12px 0 10px; color:#655f55;
	font:500 13px/1.35 var(--theme-font-text_font-family,Arial,sans-serif);
}

/* A compact editorial strip above the live product catalogue. */
.cx-shop-banners, .cx-shop-tools, .cx-shop-banners *, .cx-shop-tools * { box-sizing:border-box; }
.cx-shop-banners {
	display:grid;
	grid-template-columns:minmax(0, 7fr) minmax(0, 3fr);
	grid-template-rows:repeat(2, minmax(0, 1fr));
	gap:clamp(8px, .9vw, 14px);
	height:clamp(212px, 19vw, 284px);
	margin:0 0 clamp(14px, 1.3vw, 22px);
}
.cx-shop-banners[data-cards="1"] { grid-template-columns:1fr; }
.cx-shop-banners[data-cards="2"] .cx-shop-banner-side { grid-row:span 2; }
.cx-shop-banners .cx-shop-banner {
	position:relative;
	isolation:isolate;
	display:flex;
	min-width:0;
	overflow:hidden;
	border-radius:0;
	text-decoration:none !important;
}
.cx-shop-banners .cx-shop-banner-lead {
	grid-row:span 2;
	align-items:flex-end;
	background:#4c433b;
	color:#fffaf2 !important;
}
.cx-shop-banners .cx-shop-banner-image {
	position:absolute;
	inset:0;
	z-index:-2;
	display:block;
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:52% 48%;
	margin:0 !important;
	border-radius:0 !important;
}
.cx-shop-banner-lead::before {
	content:"";
	position:absolute;
	inset:0;
	z-index:-1;
	background:linear-gradient(90deg, rgb(27 23 20 / 84%) 0%, rgb(27 23 20 / 63%) 37%, rgb(27 23 20 / 17%) 73%, rgb(27 23 20 / 6%) 100%);
}
.cx-shop-banner-lead .cx-shop-banner-copy {
	padding:clamp(22px, 3.2vw, 46px);
}
.cx-shop-banners .cx-shop-banner-kicker {
	display:block;
	color:inherit;
	font:700 clamp(9px, .68vw, 11px)/1.3 var(--theme-font-text_font-family, Arial, sans-serif);
	letter-spacing:.12em;
	text-transform:uppercase;
}
.cx-shop-banners h2 {
	margin:5px 0 0 !important;
	color:inherit !important;
	font-family:var(--theme-font-h1_font-family, Georgia, serif);
	font-size:clamp(32px, 3.5vw, 58px);
	font-weight:500;
	line-height:1.04;
	letter-spacing:-.035em;
	text-transform:none;
}
.cx-shop-banners .cx-shop-banner-cta {
	display:inline-flex;
	align-items:center;
	gap:12px;
	margin-top:clamp(15px, 1.4vw, 22px);
	padding-bottom:3px;
	border-bottom:1px solid #f4a14c;
	font:650 13px/1.4 var(--theme-font-text_font-family, Arial, sans-serif);
}
.cx-shop-banners .cx-shop-arrow {
	display:inline-block;
	flex:none;
	width:17px;
	height:17px;
	background-color:currentColor;
	-webkit-mask:url("icons/arrow-right.svg") center / contain no-repeat;
	mask:url("icons/arrow-right.svg") center / contain no-repeat;
}
.cx-shop-banners .cx-shop-banner-side {
	align-items:center;
	background:#ede4d5;
	color:#322920 !important;
}
.cx-shop-banners .cx-shop-banner-side:nth-child(3) {
	background:#352e29;
	color:#fff7e9 !important;
}
.cx-shop-banners .cx-shop-banner-side .cx-shop-banner-image {
	inset:0 0 0 auto;
	width:45%;
}
.cx-shop-banner-side .cx-shop-banner-copy {
	width:55%;
	padding:8px clamp(12px, 1.35vw, 23px);
}
.cx-shop-banners .cx-shop-banner-side h2 { font-size:clamp(22px, 1.9vw, 33px); }
.cx-shop-banners .cx-shop-banner-side .cx-shop-arrow { display:block; width:16px; height:16px; margin-top:5px; }
.cx-shop-banners .cx-shop-banner:hover .cx-shop-banner-cta { border-color:currentColor; }
.cx-shop-banners .cx-shop-banner:focus-visible { outline:3px solid #c36717; outline-offset:3px; }
@media (prefers-reduced-motion:no-preference) {
	.cx-shop-banners .cx-shop-arrow { transition:transform .16s ease-out; }
	.cx-shop-banners .cx-shop-banner:hover .cx-shop-arrow { transform:translateX(3px); }
}

/* The rail scrolls within its column; the filter button always stays in view. */
.cx-shop-tools {
	position:sticky;
	top:var(--cx-shop-sticky-top, 0px);
	z-index:40;
	display:flex;
	align-items:center;
	gap:clamp(8px, 1.1vw, 16px);
	width:100%;
	min-width:0;
	padding:8px 0;
	background:#f7f5ee;
}
.cx-shop-tools .cx-shop-cats {
	display:flex;
	align-items:center;
	flex:1 1 0%;
	min-width:0;
	gap:6px;
	overflow-x:auto;
	overflow-y:hidden;
	overscroll-behavior-x:contain;
	scroll-padding-inline:3px;
	scrollbar-width:thin;
	scrollbar-color:#aca28f transparent;
}
.cx-shop-cats .cx-shop-cat {
	display:inline-flex;
	flex:none;
	align-items:center;
	gap:8px;
	min-height:42px;
	padding:3px 10px 3px 3px;
	border:1px solid #ded9cc;
	border-radius:0;
	background:#fffdf8;
	color:#28231d !important;
	font:600 13px/1.25 var(--theme-font-text_font-family, Arial, sans-serif);
	text-decoration:none !important;
	white-space:nowrap;
}
.cx-shop-cat .cx-shop-cat-photo {
	display:block;
	flex:none;
	width:34px;
	height:34px;
	object-fit:cover;
	margin:0 !important;
	border-radius:0 !important;
}
.cx-shop-cats .cx-shop-cat[aria-current="page"] { border-color:#29241f; background:#29241f; color:#fffaf2 !important; }
.cx-shop-cats .cx-shop-cat:not([aria-current]):hover { border-color:#aa8b67; }
.cx-shop-cats .cx-shop-cat:focus-visible { outline:2px solid #c3691e; outline-offset:-2px; }
.cx-shop-tools button.cx-shop-filter-trigger {
	display:inline-flex;
	flex:none;
	align-items:center;
	justify-content:center;
	gap:7px;
	min-height:44px;
	padding:8px clamp(12px, 1.25vw, 20px);
	margin:0;
	border:0;
	border-radius:0;
	box-shadow:none;
	background:#f4a14c !important;
	color:#000 !important;
	font:700 14px/1.25 var(--theme-font-text_font-family, Arial, sans-serif);
	text-transform:none;
	letter-spacing:normal;
	white-space:nowrap;
}
.cx-shop-tools button.cx-shop-filter-trigger:is(:hover,[aria-expanded="true"]) { background:#ffc079 !important; }
.cx-shop-tools button.cx-shop-filter-trigger:focus-visible { outline:2px solid #a44f0f; outline-offset:2px; }
.cx-shop-tools button.cx-shop-filter-trigger::before,
.cx-shop-tools button.cx-shop-filter-trigger::after { content:none; }
.cx-shop-filter-icon {
	display:block;
	flex:none;
	width:18px;
	height:18px;
	background-color:currentColor;
	-webkit-mask:url("icons/filters.svg") center / contain no-repeat;
	mask:url("icons/filters.svg") center / contain no-repeat;
}
.cx-shop-filter-count {
	min-width:17px;
	padding:2px 4px;
	background:#f4a14c;
	color:#221e18;
	text-align:center;
	font-size:11px;
}
@media (max-width:900px) and (min-width:641px) {
	.cx-shop-banner-side .cx-shop-banner-copy { width:62%; padding-inline:12px; }
	.cx-shop-banners .cx-shop-banner-side .cx-shop-banner-image { width:38%; }
	.cx-shop-banners .cx-shop-banner-side h2 { font-size:20px; }
	.cx-shop-banners .cx-shop-banner-side .cx-shop-banner-kicker { letter-spacing:.07em; }
}
@media (max-width:640px) {
	.cx-shop-banners {
		height:auto;
		grid-template-columns:repeat(2, minmax(0, 1fr));
		grid-template-rows:none;
		gap:7px;
		margin-bottom:12px;
	}
	.cx-shop-banners .cx-shop-banner-lead {
		grid-column:1 / -1;
		grid-row:auto;
		min-height:clamp(158px, 43vw, 218px);
	}
	.cx-shop-banner-lead .cx-shop-banner-copy { padding:20px; }
	.cx-shop-banners .cx-shop-banner-side {
		min-height:72px;
	}
	.cx-shop-banners[data-cards="2"] .cx-shop-banner-side { grid-column:1 / -1; grid-row:auto; }
	.cx-shop-banners .cx-shop-banner-side h2 { margin:0 !important; font-size:clamp(17px, 4.2vw, 23px); }
	.cx-shop-banners .cx-shop-banner-side .cx-shop-banner-image { width:35%; }
	.cx-shop-banner-side .cx-shop-banner-copy { width:65%; padding:8px 10px; }
	.cx-shop-banners .cx-shop-banner-side .cx-shop-banner-kicker { display:none; }
	.cx-shop-banners .cx-shop-banner-side .cx-shop-arrow { width:13px; height:13px; margin-top:3px; }
	.cx-shop-tools { padding-block:5px; }
	.cx-shop-cat .cx-shop-cat-photo { width:30px; height:30px; }
	.cx-shop-cats .cx-shop-cat { min-height:40px; }
	.cx-shop-tools button.cx-shop-filter-trigger { padding-inline:10px; }
}
@media (forced-colors:active) {
	.cx-shop-arrow, .cx-shop-filter-icon { forced-color-adjust:none; background-color:ButtonText !important; }
}

/* The shell, motion, focus outline and backdrop are shared with the header sheets. */
.cx-shop-filter-dialog .cx-filter-fields { padding-block: 22px 30px; }
.cx-shop-filter-dialog .cx-filter-group {
	display: flow-root;
	min-inline-size: 0;
	margin: 0;
	padding: 0;
	border: 0;
}
.cx-shop-filter-dialog .cx-filter-group + .cx-filter-group { margin-block-start: 26px; }
.cx-shop-filter-dialog .cx-filter-group legend,
.cx-shop-filter-dialog .cx-filter-sort-label {
	display: table;
	margin: 0 0 10px;
	padding: 0;
	color: var(--cx-ink);
	font: 650 17px/1.4 var(--theme-font-text_font-family, Arial, sans-serif);
}
.cx-shop-filter-dialog .cx-filter-group legend span { font-weight: 400; color: var(--cx-muted); }
.cx-shop-filter-dialog .cx-filter-sort-control { position: relative; max-width: 500px; }
.cx-shop-filter-dialog .cx-filter-sort-control select {
	display: block;
	width: 100%;
	min-height: 46px;
	margin: 0;
	padding: 8px 42px 8px 12px;
	border: 1px solid #aaa497;
	border-radius: 0;
	appearance: none;
	background: var(--cx-paper);
	color: var(--cx-ink);
	font: inherit;
	cursor: pointer;
}
.cx-shop-filter-dialog .cx-filter-sort-control .select_container::before,
.cx-shop-filter-dialog .cx-filter-sort-control .select_container::after { display: none !important; }
.cx-shop-filter-dialog .cx-filter-sort-control::after {
	content: "";
	position: absolute;
	inset-inline-end: 14px;
	top: 50%;
	width: 17px;
	height: 17px;
	transform: translateY(-50%);
	background-color: currentColor;
	pointer-events: none;
	-webkit-mask: url("icons/sort-chevron.svg") center / contain no-repeat;
	mask: url("icons/sort-chevron.svg") center / contain no-repeat;
	forced-color-adjust: none;
}
.cx-shop-filter-dialog select:focus-visible { outline: 2px solid #8a4c0e; outline-offset: 3px; }
.cx-shop-filter-dialog .cx-filter-prices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	max-width: 500px;
}
.cx-shop-filter-dialog .cx-filter-prices label {
	display: grid;
	gap: 5px;
	margin: 0;
	font-size: 14px;
	color: var(--cx-muted);
}
.cx-shop-filter-dialog .cx-filter-prices input {
	display: block;
	width: 100%;
	min-width: 0;
	min-height: 46px;
	margin: 0;
	padding: 8px 12px;
	border: 1px solid #aaa497;
	border-radius: 0;
	background: var(--cx-paper);
	color: var(--cx-ink);
	font: inherit;
	font-size: 16px;
}
.cx-shop-filter-dialog .cx-filter-options { display: flex; flex-flow: row wrap; column-gap: 22px; }
.cx-shop-filter-dialog label.cx-filter-choice {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 42px;
	margin: 0;
	color: var(--cx-ink);
	cursor: pointer;
}
.cx-shop-filter-dialog .cx-filter-choice input[type="checkbox"] {
	position: static;
	display: inline-block;
	width: 18px;
	height: 18px;
	flex: none;
	margin: 0;
	padding: 0;
	opacity: 1;
	clip: auto;
	appearance: auto;
	accent-color: #9b5714;
	cursor: pointer;
}
.cx-shop-filter-dialog .cx-filter-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}
.cx-shop-filter-dialog .cx-filter-clear {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	color: #75470e;
	font-weight: 550;
	text-decoration: underline;
	text-underline-offset: .18em;
}
.cx-shop-filter-dialog .cx-filter-apply {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	margin: 0;
	padding: 10px clamp(18px, 5vw, 70px);
	border: 0;
	border-radius: 0;
	background: var(--cx-orange) !important;
	color: var(--cx-ink) !important;
	font: 650 16px/1.4 var(--theme-font-text_font-family, Arial, sans-serif);
	cursor: pointer;
}
.cx-shop-filter-dialog .cx-filter-apply:hover { background: #ffc079 !important; }

.cx-shop-tools.is-pinned::after {
	content: "";
	position: absolute;
	top: 100%;
	inset-inline: 0;
	height: 7px;
	pointer-events: none;
	background: linear-gradient(to bottom, rgb(44 36 28 / 11%), transparent);
}

.cx-shop-editorial {
	margin-block:clamp(40px,6vw,86px) clamp(32px,4.7vw,72px);
	color:#322e27;
}
.cx-shop-editorial .cx-shop-guide-label {
	display:block;
	margin-bottom:10px;
	color:#76502a;
	font:700 11px/1.4 var(--theme-font-text_font-family,Arial,sans-serif);
	letter-spacing:.12em;
	text-transform:uppercase;
}
.cx-shop-editorial h1, .cx-shop-editorial h2, .cx-shop-editorial h3 {
	margin:0;
	color:#29251e;
	font-family:var(--theme-font-h1_font-family,Georgia,serif);
	text-transform:none;
}
.cx-shop-editorial h1 { max-width:29ch; font-size:clamp(32px,3.7vw,54px); line-height:1.07; }
.cx-shop-editorial h2 { font-size:clamp(24px,2.35vw,34px); line-height:1.13; }
.cx-shop-editorial p { margin:10px 0 0; max-width:66ch; font-size:clamp(15px,1.05vw,17px); line-height:1.65; }
.cx-shop-editorial .cx-shop-guide-lead p { max-width:74ch; margin-top:16px; font-size:clamp(16px,1.25vw,19px); }
.cx-shop-editorial a { color:#6b421c; text-decoration:underline; text-underline-offset:.18em; }
.cx-shop-editorial a:is(:focus-visible,:hover) { color:#32261a; }
.cx-shop-guide-columns {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:clamp(22px,4.5vw,70px);
	margin-block:clamp(26px,3.3vw,50px) clamp(30px,4vw,62px);
}
.cx-shop-faq {
	display:grid;
	grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);
	gap:clamp(20px,4vw,60px);
	padding:clamp(20px,3.2vw,48px);
	background:#eee9df;
	scroll-margin-top:160px;
}
.cx-shop-faq-items { min-width:0; }
.cx-shop-faq-items details { border-block-end:1px solid #d2cabc; }
.cx-shop-faq-items summary {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	min-height:48px;
	padding-block:11px;
	cursor:pointer;
	list-style:none;
}
.cx-shop-faq-items summary::-webkit-details-marker { display:none; }
.cx-shop-faq-items summary:focus-visible { outline:2px solid #87511d; outline-offset:1px; }
.cx-shop-faq-items summary h3 {
	font:600 clamp(15px,1.12vw,17px)/1.4 var(--theme-font-text_font-family,Arial,sans-serif);
}
.cx-shop-faq-items summary::after {
	content:"";
	flex:none;
	width:16px; height:16px;
	background-color:currentColor;
	-webkit-mask:url("icons/sort-chevron.svg") center / contain no-repeat;
	mask:url("icons/sort-chevron.svg") center / contain no-repeat;
}
.cx-shop-faq-items details[open] summary::after { transform:rotate(180deg); }
.cx-shop-faq-items details p { margin:0 0 16px; }
@media (max-width:720px) {
	.cx-shop-guide-columns, .cx-shop-faq { grid-template-columns:1fr; }
}
@media (forced-colors:active) {
	.cx-shop-faq-items summary::after { forced-color-adjust:none; background-color:ButtonText; }
}

.cx-project-carousel { margin-block:clamp(32px,5vw,72px) 0; }
.cx-project-heading, .cx-project-contact { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.cx-project-heading { margin-bottom:clamp(14px,2vw,24px); }
.cx-project-heading h2, .cx-project-contact h2 { margin:0; font-size:clamp(26px,3.3vw,46px); line-height:1.1; }
.cx-project-heading .cx-project-eyebrow {
	margin:0 0 6px;
	color:#66523c;
	font:650 11px/1.4 var(--theme-font-text_font-family,Arial,sans-serif);
	letter-spacing:.1em;
	text-transform:uppercase;
}
.cx-project-controls { display:flex; align-items:center; flex:none; gap:6px; }
.cx-project-controls[hidden] { display:none; }
.cx-project-controls button {
	display:inline-grid; place-items:center;
	width:44px; height:44px; padding:0;
	border:1px solid #d1c7b7; border-radius:0;
	background:transparent !important; color:#26221d !important; box-shadow:none;
}
.cx-project-controls button:hover:not([aria-disabled="true"]) { border-color:#26221d; background:#f4a14c !important; }
.cx-project-controls button[aria-disabled="true"] { opacity:.41; cursor:default; }
.cx-project-arrow {
	display:inline-block; flex:none; width:18px; height:18px; background:currentColor;
	-webkit-mask:url("icons/arrow-right.svg") center / contain no-repeat;
	mask:url("icons/arrow-right.svg") center / contain no-repeat;
}
.cx-project-controls [data-cx-project-prev] .cx-project-arrow { transform:rotate(180deg); }
.cx-project-carousel ul.cx-project-track {
	display:grid; grid-auto-flow:column; grid-auto-columns:calc((100% - var(--cx-project-gap) * 2) / 3);
	--cx-project-gap:clamp(8px,1.2vw,18px);
	gap:var(--cx-project-gap); margin:0; padding:0;
	overflow-x:auto; overscroll-behavior-x:contain;
	scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:#a89986 transparent; list-style:none;
}
.cx-project-track .cx-project-slide { min-width:0; margin:0; padding:0; list-style:none; scroll-snap-align:start; }
.cx-project-slide::before { content:none !important; }
.cx-project-slide a { display:block; position:relative; text-decoration:none; }
.cx-project-slide .cx-project-image {
	display:block; width:100%; height:auto; aspect-ratio:1.5; object-fit:cover;
	background:#e6e0d5;
}
.cx-project-caption { display:grid; gap:3px; padding:10px 0; }
.cx-project-category { color:#685c4b; font-size:12px; line-height:1.35; }
.cx-project-name { color:#28231f; font-weight:600; font-size:clamp(14px,1.15vw,18px); line-height:1.35; }
.cx-project-slide a:hover .cx-project-name { text-decoration:underline; text-underline-offset:3px; }
.cx-project-all { display:inline-flex; align-items:center; gap:8px; margin-top:12px; color:#29231d !important; text-decoration:underline; text-underline-offset:4px; }
.cx-project-contact { margin-top:clamp(28px,4vw,54px); padding:clamp(22px,3.8vw,55px); background:#2b2824; color:#fff9ee; }
.cx-project-contact h2 { color:inherit; }
.cx-project-contact p { margin:8px 0 0; color:#e5dacf; }
.cx-project-contact a.cx-project-quote {
	display:inline-flex; flex:none; align-items:center; justify-content:center; gap:12px;
	padding:13px 23px; border-radius:0; color:#17120c !important; background:#f4a14c; font-weight:650; text-decoration:none;
}
.cx-project-contact a.cx-project-quote:hover { background:#ffc079; }
.cx-project-carousel :is(a,button,ul):focus-visible, .cx-project-contact a:focus-visible { outline:2px solid currentColor; outline-offset:2px; }
.cx-project-track .cx-project-slide a:focus-visible { outline-offset:-3px; outline-color:#a74800; }
@media (max-width:950px) {
	.cx-project-carousel ul.cx-project-track { grid-auto-columns:calc((100% - var(--cx-project-gap)) / 2); }
}
@media (max-width:600px) {
	.cx-project-carousel ul.cx-project-track { grid-auto-columns:86%; }
	.cx-project-heading { gap:10px; }
	.cx-project-controls { gap:3px; }
	.cx-project-contact { display:grid; justify-content:start; justify-items:start; gap:18px; }
}
@media (forced-colors:active) { .cx-project-arrow { forced-color-adjust:none; background:ButtonText; } }
