/* I Wallpaper Interiors — product page layout.
   Tokens and treatments lifted from the approved Phase 5 prototype
   (05-design-prototype/product-page-calculator-prototype.html). */

:root {
	--bsc-bone: #ffffff;
	--bsc-bone-2: #fbfaf8;
	--bsc-paper: #ffffff;
	--bsc-graphite: #1a1714;
	--bsc-graphite-2: #3d3833;
	--bsc-muted: #7a736a;
	--bsc-line: #ece8e1;
	--bsc-line-2: #ddd7cc;
	--bsc-amber: #9a7b3f;
	--bsc-amber-soft: #f6f1e6;
	--bsc-amber-tint: #f6f1e6;
	--bsc-brass-deep: #806233;
	--bsc-teal: #2e5d57;
	--bsc-teal-tint: #eaf1ef;
	--bsc-shadow: 0 18px 44px rgba(26, 23, 20, 0.13);
	--bsc-ok: #3c6e47;
	--bsc-danger: #b23a2e;
	--bsc-radius: 4px;
	--bsc-radius-lg: 10px;
	--bsc-maxw: 1240px;
	--bsc-shadow-sm: 0 1px 2px rgba(33, 29, 24, 0.06);
	--bsc-font-display: "Fraunces", Georgia, serif;
	--bsc-font-ui: "Manrope", system-ui, sans-serif;
}

/* ---------- Orientation strip (site-wide) ---------- */

.bsc-orient {
	background: var(--bsc-amber-soft);
	color: var(--bsc-graphite-2);
	border-bottom: 1px solid var(--bsc-line-2);
	font-family: var(--bsc-font-ui);
	font-size: 13px;
	letter-spacing: 0.02em;
}

.bsc-orient__wrap {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	display: flex;
	gap: 28px;
	align-items: center;
	justify-content: center;
	padding: 9px 24px;
	flex-wrap: wrap;
}

.bsc-orient span {
	display: inline-flex;
	gap: 8px;
	align-items: center;
	white-space: nowrap;
}

.bsc-orient svg {
	width: 15px;
	height: 15px;
	stroke: var(--bsc-amber);
	fill: none;
	flex: none;
}

.bsc-orient b {
	font-weight: 600;
	color: var(--bsc-graphite);
}

.bsc-orient a {
	color: inherit;
	text-decoration: none;
}

.bsc-orient a:hover b {
	color: var(--bsc-brass-deep);
}

/* ---------- Page canvas ---------- */

body.bsc-shop-body {
	background: var(--bsc-bone);
	color: var(--bsc-graphite);
	font-family: var(--bsc-font-ui);
}

.bsc-shop__wrap-unused {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	padding: 0 24px;
}

/* ---------- Product grid (kills Woo's float layout) ---------- */

body.bsc-shop-body div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(360px, 460px);
	gap: 56px;
	padding: 24px 0 64px;
	align-items: start;
}

body.bsc-shop-body div.product .woocommerce-product-gallery,
body.bsc-shop-body div.product div.summary {
	float: none;
	width: auto;
	margin: 0;
}

body.bsc-shop-body div.product > *:not(.woocommerce-product-gallery):not(.summary) {
	grid-column: 1 / -1;
}

@media (max-width: 900px) {
	body.bsc-shop-body div.product {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}

/* ---------- Gallery ---------- */

.woocommerce-product-gallery {
	position: sticky;
	top: 24px;
}

.woocommerce-product-gallery .woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery .flex-viewport {
	border: 1px solid var(--bsc-line);
	border-radius: var(--bsc-radius-lg);
	overflow: hidden;
	background: var(--bsc-paper);
	box-shadow: var(--bsc-shadow-sm);
}

.woocommerce-product-gallery img {
	display: block;
	width: 100%;
	height: auto;
}

.woocommerce-product-gallery .flex-control-thumbs {
	display: flex;
	gap: 12px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
}

.woocommerce-product-gallery .flex-control-thumbs li {
	width: 78px;
	float: none;
	margin: 0;
}

.woocommerce-product-gallery .flex-control-thumbs img {
	border: 1.5px solid var(--bsc-line);
	border-radius: var(--bsc-radius);
	background: var(--bsc-paper);
	opacity: 1;
	transition: border-color 0.2s;
}

.woocommerce-product-gallery .flex-control-thumbs img:hover {
	border-color: var(--bsc-line-2);
}

.woocommerce-product-gallery .flex-control-thumbs img.flex-active {
	border-color: var(--bsc-graphite);
}

.woocommerce-product-gallery .onsale {
	position: absolute;
	z-index: 5;
	left: 14px;
	top: 14px;
	background: var(--bsc-amber);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 6px 11px;
	border-radius: 3px;
}

/* ---------- Buy box ---------- */

body.bsc-shop-body div.summary .product_title {
	font-family: var(--bsc-font-display);
	font-weight: 600;
	font-size: 40px;
	line-height: 1.08;
	letter-spacing: -0.01em;
	color: var(--bsc-graphite);
	margin: 0 0 10px;
}

body.bsc-shop-body div.summary .price {
	font-family: var(--bsc-font-display);
	font-size: 28px;
	font-weight: 600;
	color: var(--bsc-graphite);
	margin: 4px 0 6px;
	display: block;
}

body.bsc-shop-body div.summary .price del {
	opacity: 0.45;
	font-size: 0.75em;
}

body.bsc-shop-body div.summary .price ins {
	text-decoration: none;
}

body.bsc-shop-body .woocommerce-product-details__short-description {
	font-size: 15px;
	line-height: 1.6;
	color: var(--bsc-graphite-2);
	margin: 18px 0 22px;
	max-width: 46ch;
}

/* Variations */

body.bsc-shop-body table.variations {
	border: 0;
	margin: 0 0 8px;
	width: 100%;
}

body.bsc-shop-body table.variations td,
body.bsc-shop-body table.variations th {
	border: 0;
	padding: 0 0 14px;
	background: none;
	vertical-align: middle;
	text-align: left;
}

body.bsc-shop-body table.variations label {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--bsc-graphite);
	margin: 0;
}

body.bsc-shop-body table.variations select {
	width: 100%;
	min-height: 48px;
	padding: 0.5rem 2.4rem 0.5rem 0.8rem;
	font-family: var(--bsc-font-ui);
	font-size: 15px;
	color: var(--bsc-graphite);
	background-color: var(--bsc-paper);
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
	appearance: none;
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23211d18' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.8rem center;
	background-size: 14px;
}

body.bsc-shop-body table.variations select:focus-visible {
	outline: 2px solid var(--bsc-amber);
	outline-offset: 1px;
}

body.bsc-shop-body .reset_variations {
	font-size: 12.5px;
	color: var(--bsc-muted);
}

body.bsc-shop-body .woocommerce-variation-price {
	margin-bottom: 10px;
}

/* Quantity + add to cart */

body.bsc-shop-body form.cart {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	align-items: stretch;
	margin: 8px 0 0;
}

body.bsc-shop-body form.cart .variations_button,
body.bsc-shop-body form.cart .woocommerce-variation-add-to-cart {
	display: flex;
	gap: 12px;
	width: 100%;
}

body.bsc-shop-body form.cart div.quantity {
	flex: none;
	margin: 0;
}

body.bsc-shop-body form.cart input.qty {
	width: 72px;
	height: 54px;
	text-align: center;
	font-family: var(--bsc-font-ui);
	font-size: 17px;
	font-weight: 700;
	color: var(--bsc-graphite);
	background: var(--bsc-paper);
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
}

body.bsc-shop-body form.cart .single_add_to_cart_button {
	flex: 1;
	min-height: 54px;
	background: var(--bsc-graphite);
	color: #fff;
	border: 0;
	border-radius: var(--bsc-radius);
	font-family: var(--bsc-font-ui);
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.01em;
	cursor: pointer;
	transition: background 0.2s, transform 0.1s;
}

body.bsc-shop-body form.cart .single_add_to_cart_button:hover {
	background: #000;
}

body.bsc-shop-body form.cart .single_add_to_cart_button:active {
	transform: translateY(1px);
}

body.bsc-shop-body form.cart .single_add_to_cart_button.disabled {
	background: var(--bsc-line-2);
	color: var(--bsc-graphite-2);
	cursor: not-allowed;
}

/* Meta row */

body.bsc-shop-body .product_meta {
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--bsc-line);
	font-size: 13px;
	color: var(--bsc-muted);
	line-height: 1.9;
}

body.bsc-shop-body .product_meta a {
	color: var(--bsc-graphite-2);
	text-decoration: none;
}

body.bsc-shop-body .product_meta a:hover {
	color: var(--bsc-amber);
}

/* Tabs / description / related */

body.bsc-shop-body .woocommerce-tabs ul.tabs {
	padding: 0;
	margin: 0 0 20px;
	border-bottom: 1px solid var(--bsc-line);
	display: flex;
	gap: 4px;
}

body.bsc-shop-body .woocommerce-tabs ul.tabs li {
	background: none;
	border: 0;
	border-radius: 0;
	margin: 0;
	padding: 0;
}

body.bsc-shop-body .woocommerce-tabs ul.tabs li a {
	display: inline-block;
	padding: 10px 16px;
	font-weight: 700;
	font-size: 14px;
	color: var(--bsc-muted);
	text-decoration: none;
	border-bottom: 2px solid transparent;
}

body.bsc-shop-body .woocommerce-tabs ul.tabs li.active a {
	color: var(--bsc-graphite);
	border-bottom-color: var(--bsc-amber);
}

body.bsc-shop-body .woocommerce-tabs ul.tabs::before,
body.bsc-shop-body .woocommerce-tabs ul.tabs li::before,
body.bsc-shop-body .woocommerce-tabs ul.tabs li::after {
	display: none;
}

body.bsc-shop-body .woocommerce-Tabs-panel {
	font-size: 15px;
	line-height: 1.65;
	color: var(--bsc-graphite-2);
	max-width: 72ch;
}

body.bsc-shop-body .woocommerce-Tabs-panel h2,
body.bsc-shop-body section.related > h2,
body.bsc-shop-body section.upsells > h2 {
	font-family: var(--bsc-font-display);
	font-weight: 600;
	font-size: 26px;
	color: var(--bsc-graphite);
}

body.bsc-shop-body section.related ul.products,
body.bsc-shop-body section.upsells ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin: 20px 0 0;
	padding: 0;
	list-style: none;
}

@media (max-width: 900px) {
	body.bsc-shop-body section.related ul.products,
	body.bsc-shop-body section.upsells ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

body.bsc-shop-body ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	background: var(--bsc-paper);
	border: 1px solid var(--bsc-line);
	border-radius: var(--bsc-radius-lg);
	overflow: hidden;
	box-shadow: var(--bsc-shadow-sm);
	display: block;
	padding: 0 0 14px;
}

body.bsc-shop-body ul.products li.product img {
	width: 100%;
	height: auto;
	display: block;
	margin: 0 0 10px;
}

body.bsc-shop-body ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--bsc-font-display);
	font-size: 17px;
	font-weight: 600;
	color: var(--bsc-graphite);
	padding: 0 14px;
}

body.bsc-shop-body ul.products li.product .price {
	font-family: var(--bsc-font-ui);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--bsc-graphite-2);
	padding: 0 14px;
}

/* ---------- Buy box components (prototype pass 2) ---------- */

.bsc-kicker {
	font-size: 12.5px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--bsc-muted);
	font-weight: 600;
	margin: 0 0 8px;
}

.bsc-specline {
	font-size: 14px;
	color: var(--bsc-muted);
	margin: 2px 0 6px;
	font-variant-numeric: tabular-nums;
}

/* Swatches (replaces the first variation dropdown) */

.bsc-swatches {
	margin: 6px 0 18px;
}

.bsc-swatches__label {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	color: var(--bsc-graphite);
	margin: 0 0 10px;
}

.bsc-swatches__val {
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	color: var(--bsc-muted);
	font-size: 14px;
}

.bsc-swatches__row {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.bsc-swatch {
	width: 56px;
	height: 56px;
	border-radius: 8px;
	border: 1.5px solid var(--bsc-line-2);
	padding: 0;
	background-color: var(--bsc-paper);
	background-size: cover;
	background-position: center;
	cursor: pointer;
	transition: transform 0.15s, box-shadow 0.15s, border-color 0.15s;
}

.bsc-swatch:hover {
	transform: translateY(-2px);
}

.bsc-swatch[aria-pressed="true"] {
	border-color: var(--bsc-graphite);
	box-shadow: 0 0 0 1.5px var(--bsc-graphite);
}

.bsc-swatch:focus-visible {
	outline: 2px solid var(--bsc-amber);
	outline-offset: 2px;
}

.bsc-hidden-row {
	display: none !important;
}

/* Assurance rows */

.bsc-assure {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--bsc-line);
	display: grid;
	gap: 13px;
}

.bsc-assure__row {
	display: flex;
	gap: 12px;
	font-size: 14px;
	color: var(--bsc-graphite-2);
	margin: 0;
	line-height: 1.5;
}

.bsc-assure__row svg {
	width: 20px;
	height: 20px;
	stroke: var(--bsc-amber);
	fill: none;
	flex: none;
	margin-top: 1px;
}

.bsc-assure__row b {
	color: var(--bsc-graphite);
	font-weight: 700;
}

.bsc-assure__row a {
	color: var(--bsc-amber);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Sample row */

.bsc-sample {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 20px;
	padding: 16px;
	background: var(--bsc-paper);
	border: 1px solid var(--bsc-line);
	border-radius: var(--bsc-radius-lg);
}

.bsc-sample svg {
	width: 26px;
	height: 26px;
	stroke: var(--bsc-graphite-2);
	fill: none;
	flex: none;
}

.bsc-sample p {
	margin: 0;
	font-size: 14px;
	color: var(--bsc-graphite-2);
	line-height: 1.45;
}

.bsc-sample p b {
	color: var(--bsc-graphite);
}

.bsc-sample__btn {
	margin-left: auto;
	white-space: nowrap;
	background: var(--bsc-paper);
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
	font-weight: 700;
	font-size: 14px;
	padding: 11px 16px;
	color: var(--bsc-graphite);
	text-decoration: none;
	transition: border-color 0.2s;
}

.bsc-sample__btn:hover {
	border-color: var(--bsc-graphite);
}

/* ---------- Shop canvas: wrapper, breadcrumb, header neutralising ---------- */

body.bsc-shop-body {
	background: var(--bsc-bone);
	color: var(--bsc-graphite);
	font-family: var(--bsc-font-ui);
}

.bsc-shop__wrap {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	padding: 0 24px 64px;
}

body.bsc-shop-body .header-one__accent {
	display: none;
}

.bsc-crumb {
	font-size: 13px;
	color: var(--bsc-muted);
	padding: 16px 0 4px;
	font-family: var(--bsc-font-ui);
}

.bsc-crumb a {
	color: var(--bsc-muted);
	text-decoration: none;
}

.bsc-crumb a:hover {
	color: var(--bsc-amber);
}

.bsc-crumb__sep {
	margin: 0 8px;
	opacity: 0.5;
}

/* Single product grid no longer needs its own max-width (template wrap does it) */

body.bsc-shop-body div.product {
	max-width: none;
}

/* ---------- Shop archive ---------- */

body.bsc-shop-body .woocommerce-products-header__title,
body.bsc-shop-body h1.page-title {
	font-family: var(--bsc-font-display);
	font-weight: 600;
	font-size: 40px;
	letter-spacing: -0.01em;
	color: var(--bsc-graphite);
	margin: 18px 0 6px;
}

body.bsc-shop-body .woocommerce-result-count {
	font-size: 13.5px;
	color: var(--bsc-muted);
	margin: 0 0 4px;
}

body.bsc-shop-body .woocommerce-ordering {
	float: right;
	margin: -28px 0 18px;
}

body.bsc-shop-body .woocommerce-ordering select {
	min-height: 44px;
	padding: 0.4rem 2.2rem 0.4rem 0.8rem;
	font-family: var(--bsc-font-ui);
	font-size: 14px;
	color: var(--bsc-graphite);
	background-color: var(--bsc-paper);
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
	appearance: none;
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23211d18' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.7rem center;
	background-size: 13px;
}

/* Product cards (archive + related + upsells) */

body.bsc-shop-body ul.products {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 22px;
	margin: 20px 0 36px;
	padding: 0;
	list-style: none;
	clear: both;
}

@media (max-width: 1000px) {
	body.bsc-shop-body ul.products {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (max-width: 700px) {
	body.bsc-shop-body ul.products {
		grid-template-columns: repeat(2, 1fr);
		gap: 14px;
	}
}

body.bsc-shop-body ul.products li.product {
	float: none;
	width: auto;
	margin: 0;
	background: var(--bsc-paper);
	border: 1px solid var(--bsc-line);
	border-radius: var(--bsc-radius-lg);
	overflow: hidden;
	box-shadow: var(--bsc-shadow-sm);
	display: flex;
	flex-direction: column;
	padding: 0 0 16px;
	position: relative;
	transition: box-shadow 0.2s, transform 0.2s;
}

body.bsc-shop-body ul.products li.product:hover {
	box-shadow: 0 10px 30px rgba(33, 29, 24, 0.12);
	transform: translateY(-2px);
}

body.bsc-shop-body ul.products li.product img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
	margin: 0 0 12px;
}

body.bsc-shop-body ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--bsc-font-display);
	font-size: 18px;
	font-weight: 600;
	color: var(--bsc-graphite);
	padding: 0 16px;
	margin: 0 0 2px;
}

body.bsc-shop-body ul.products li.product .price {
	font-family: var(--bsc-font-ui);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--bsc-graphite-2);
	padding: 0 16px;
	margin: 0 0 10px;
}

body.bsc-shop-body ul.products li.product .price del {
	opacity: 0.45;
}

body.bsc-shop-body ul.products li.product .price ins {
	text-decoration: none;
}

body.bsc-shop-body ul.products li.product .button {
	margin: auto 16px 0;
	text-align: center;
	background: var(--bsc-paper);
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
	color: var(--bsc-graphite);
	font-family: var(--bsc-font-ui);
	font-weight: 700;
	font-size: 14px;
	padding: 11px 16px;
	text-decoration: none;
	transition: border-color 0.2s;
}

body.bsc-shop-body ul.products li.product .button:hover {
	border-color: var(--bsc-graphite);
}

body.bsc-shop-body ul.products li.product .onsale {
	position: absolute;
	z-index: 5;
	left: 12px;
	top: 12px;
	background: var(--bsc-amber);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	padding: 5px 10px;
	border-radius: 3px;
	min-height: 0;
	min-width: 0;
	line-height: 1.4;
}

/* Pagination */

body.bsc-shop-body .woocommerce-pagination {
	text-align: center;
	margin: 8px 0 40px;
}

body.bsc-shop-body .woocommerce-pagination ul {
	display: inline-flex;
	gap: 8px;
	list-style: none;
	padding: 0;
	border: 0;
	margin: 0;
}

body.bsc-shop-body .woocommerce-pagination li {
	border: 0;
	float: none;
}

body.bsc-shop-body .woocommerce-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 10px;
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
	background: var(--bsc-paper);
	color: var(--bsc-graphite);
	font-weight: 700;
	font-size: 14px;
	text-decoration: none;
}

body.bsc-shop-body .woocommerce-pagination .page-numbers.current {
	background: var(--bsc-graphite);
	border-color: var(--bsc-graphite);
	color: #fff;
}

body.bsc-shop-body .woocommerce-pagination .page-numbers:hover:not(.current) {
	border-color: var(--bsc-graphite);
}

/* ---------- Concept port: canvas + buy box refinements ---------- */

body.bsc-shop-body.single-product {
	background: var(--bsc-bone-2); /* paper showcase canvas */
}

body.bsc-shop-body div.summary .product_title {
	font-size: 46px;
	font-weight: 500;
}

.bsc-price-unit {
	font-family: var(--bsc-font-ui);
	font-size: 14px;
	font-weight: 600;
	color: var(--bsc-muted);
}

/* Stepper around Woo's qty input (buttons injected by JS) */

body.bsc-shop-body form.cart div.quantity {
	display: flex;
	align-items: center;
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
	background: var(--bsc-paper);
}

body.bsc-shop-body form.cart div.quantity .bsc-step {
	width: 44px;
	height: 50px;
	background: none;
	border: 0;
	font-size: 19px;
	color: var(--bsc-graphite);
	cursor: pointer;
}

body.bsc-shop-body form.cart div.quantity .bsc-step:hover {
	color: var(--bsc-amber);
}

body.bsc-shop-body form.cart input.qty {
	width: 48px;
	height: 50px;
	border: 0;
	background: none;
	-moz-appearance: textfield;
}

body.bsc-shop-body form.cart input.qty::-webkit-inner-spin-button,
body.bsc-shop-body form.cart input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Manual add-to-cart becomes the ghost button (the dark CTA lives in the calculator) */

body.bsc-shop-body form.cart .single_add_to_cart_button {
	background: var(--bsc-paper);
	border: 1.5px solid var(--bsc-graphite);
	color: var(--bsc-graphite);
	min-height: 50px;
}

body.bsc-shop-body form.cart .single_add_to_cart_button:hover {
	background: var(--bsc-graphite);
	color: #fff;
}

body.bsc-shop-body form.cart .single_add_to_cart_button.disabled {
	border-color: var(--bsc-line-2);
	color: var(--bsc-muted);
	background: var(--bsc-paper);
}

/* Spec table */

.bsc-spec-table {
	margin-top: 22px;
	border-top: 1px solid var(--bsc-line);
	padding-top: 18px;
	font-size: 13.5px;
}

.bsc-spec-table h3 {
	font-family: var(--bsc-font-ui);
	font-size: 12px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--bsc-muted);
	font-weight: 700;
	margin: 0 0 10px;
}

.bsc-spec-table dl {
	display: grid;
	grid-template-columns: 140px 1fr;
	gap: 8px 14px;
	margin: 0;
}

.bsc-spec-table dt {
	color: var(--bsc-muted);
}

.bsc-spec-table dd {
	margin: 0;
	color: var(--bsc-graphite-2);
	font-weight: 600;
}

/* Afterpay, demoted */

details.bsc-ap {
	margin-top: 16px;
	border-top: 1px solid var(--bsc-line);
	padding-top: 13px;
}

details.bsc-ap summary {
	list-style: none;
	cursor: pointer;
	font-size: 13px;
	color: var(--bsc-muted);
	display: flex;
	gap: 8px;
	align-items: center;
}

details.bsc-ap summary::-webkit-details-marker {
	display: none;
}

details.bsc-ap .bsc-ap__body {
	font-size: 13px;
	color: var(--bsc-muted);
	padding-top: 9px;
}

.bsc-ap__logo {
	font-weight: 800;
	color: #0f1111;
	background: #b2fce4;
	padding: 2px 7px;
	border-radius: 4px;
	font-size: 12px;
}

/* ---------- Archive cards, concept style (image tile + text below, no card box) ---------- */

body.bsc-shop-body ul.products li.product {
	background: none;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	overflow: visible;
	padding: 0;
}

body.bsc-shop-body ul.products li.product:hover {
	box-shadow: none;
	transform: none;
}

body.bsc-shop-body ul.products li.product img {
	border-radius: var(--bsc-radius-lg);
	border: 1px solid var(--bsc-line);
	background: var(--bsc-bone-2);
	box-shadow: var(--bsc-shadow-sm);
	margin: 0 0 12px;
	transition: box-shadow 0.25s;
}

body.bsc-shop-body ul.products li.product:hover img {
	box-shadow: var(--bsc-shadow);
}

body.bsc-shop-body ul.products li.product .woocommerce-loop-product__title {
	font-weight: 500;
	padding: 0;
}

body.bsc-shop-body ul.products li.product .price {
	padding: 0;
}

body.bsc-shop-body ul.products li.product .button {
	display: none; /* concept: the card itself is the link */
}

body.bsc-shop-body .woocommerce-products-header__title,
body.bsc-shop-body h1.page-title {
	font-weight: 500;
	font-size: 34px;
	border-bottom: 1px solid var(--bsc-line);
	padding-bottom: 18px;
}

/* ---------- Neutralise the starter's default header (red fallback bar) ---------- */

.site-header--default {
	background: var(--bsc-paper);
	border-bottom: 1px solid var(--bsc-line);
	font-family: var(--bsc-font-ui);
}

.site-header--default .site-header__nav {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	padding: 0 24px;
}

.site-header--default ul {
	list-style: none;
	display: flex;
	gap: 24px;
	align-items: center;
	margin: 0;
	padding: 14px 0;
	flex-wrap: wrap;
}

.site-header--default li {
	margin: 0;
}

.site-header--default a {
	color: var(--bsc-graphite-2);
	text-decoration: none;
	font-size: 14.5px;
	font-weight: 600;
}

.site-header--default a:hover {
	color: var(--bsc-amber);
}

/* Text chips for dimension-type variation options (e.g. Choose Length) */

.bsc-chip {
	min-height: 44px;
	padding: 0 18px;
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
	background: var(--bsc-paper);
	color: var(--bsc-graphite);
	font-family: var(--bsc-font-ui);
	font-size: 14.5px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	cursor: pointer;
	transition: border-color 0.15s, background 0.15s;
}

.bsc-chip:hover {
	border-color: var(--bsc-graphite);
}

.bsc-chip[aria-pressed="true"] {
	background: var(--bsc-graphite);
	border-color: var(--bsc-graphite);
	color: #fff;
}

.bsc-chip:focus-visible {
	outline: 2px solid var(--bsc-amber);
	outline-offset: 2px;
}

/* ---------- Site header + mega menu (Phase 2 nav) ---------- */

.bsc-header {
	background: var(--bsc-paper);
	border-bottom: 1px solid var(--bsc-line);
	font-family: var(--bsc-font-ui);
	position: relative;
	z-index: 60;
}

.bsc-header__wrap {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	padding: 0 24px;
	display: flex;
	align-items: center;
	gap: 26px;
	min-height: 68px;
}

.bsc-header__logo {
	font-family: var(--bsc-font-display);
	font-weight: 600;
	font-size: 21px;
	letter-spacing: -0.02em;
	color: var(--bsc-graphite);
	text-decoration: none;
	white-space: nowrap;
	line-height: 1;
}

.bsc-header__logo small {
	display: block;
	font-family: var(--bsc-font-ui);
	font-weight: 600;
	font-size: 9.5px;
	letter-spacing: 0.32em;
	color: var(--bsc-muted);
	margin-top: 1px;
}

.bsc-nav__list {
	display: flex;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
	align-items: center;
}

.bsc-nav__item {
	margin: 0;
}

.bsc-nav__link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: 0;
	padding: 24px 10px;
	font-family: var(--bsc-font-ui);
	font-size: 14.5px;
	font-weight: 600;
	color: var(--bsc-graphite-2);
	text-decoration: none;
	cursor: pointer;
}

.bsc-nav__link svg {
	width: 13px;
	height: 13px;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	transition: transform 0.2s;
}

.bsc-nav__link:hover,
.bsc-nav__item--mega:hover > .bsc-nav__link,
.bsc-nav__link[aria-expanded="true"] {
	color: var(--bsc-amber);
}

.bsc-nav__link[aria-expanded="true"] svg {
	transform: rotate(180deg);
}

/* Plain dropdown for nav items with children (Installation, Projects, Ideas & Advice) */

.bsc-nav__item--sub {
	position: relative;
}

.bsc-subnav {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 230px;
	margin: 0;
	padding: 8px 0;
	list-style: none;
	background: var(--bsc-paper);
	border: 1px solid var(--bsc-line);
	border-radius: 6px;
	box-shadow: var(--bsc-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.18s ease-out, transform 0.18s ease-out, visibility 0.18s;
	z-index: 70;
}

.bsc-nav__item--sub:hover .bsc-subnav,
.bsc-nav__item--sub:focus-within .bsc-subnav {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.bsc-nav__item--sub:hover > .bsc-nav__link {
	color: var(--bsc-amber);
}

.bsc-subnav li {
	margin: 0;
}

.bsc-subnav a {
	display: block;
	padding: 9px 18px;
	font-size: 14px;
	font-weight: 600;
	color: var(--bsc-graphite-2);
	text-decoration: none;
	white-space: nowrap;
}

.bsc-subnav a:hover {
	color: var(--bsc-amber);
	background: var(--bsc-amber-soft);
}

@media (max-width: 960px) {
	/* Drawer: children render inline, indented, always visible */
	.bsc-subnav {
		position: static;
		min-width: 0;
		padding: 0 0 4px;
		border: 0;
		border-radius: 0;
		box-shadow: none;
		background: none;
		opacity: 1;
		visibility: visible;
		transform: none;
		transition: none;
	}

	.bsc-subnav a {
		padding: 11px 24px 11px 40px;
		font-size: 14px;
		color: var(--bsc-muted);
	}

	.bsc-nav__item--sub > .bsc-nav__link svg {
		display: none; /* children are already visible; the chevron would promise a toggle */
	}
}

/* Mega panel */

.bsc-mega {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--bsc-paper);
	border-bottom: 1px solid var(--bsc-line);
	box-shadow: var(--bsc-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity 0.2s ease-out, transform 0.2s ease-out, visibility 0.2s;
}

.bsc-nav__item--mega:hover .bsc-mega,
.bsc-nav__item--mega:focus-within .bsc-mega,
.bsc-nav__link[aria-expanded="true"] + .bsc-mega {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.bsc-mega__inner {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	padding: 28px 24px 30px;
	display: grid;
	grid-template-columns: 1.2fr 1fr 0.7fr;
	gap: 40px;
}

.bsc-mega__head {
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bsc-amber);
	margin: 0 0 12px;
}

.bsc-mega ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bsc-mega li {
	margin: 0;
}

.bsc-mega a {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 5px 0;
	font-size: 14px;
	font-weight: 500;
	color: var(--bsc-graphite-2);
	text-decoration: none;
}

.bsc-mega a:hover {
	color: var(--bsc-amber);
}

.bsc-mega__cols2 {
	columns: 2;
	column-gap: 28px;
}

.bsc-mega__colours {
	columns: 2;
	column-gap: 28px;
}

.bsc-mega__colours i {
	width: 14px;
	height: 14px;
	border-radius: 50%;
	border: 1px solid rgba(0, 0, 0, 0.12);
	flex: none;
}

.bsc-mega__all {
	display: inline-block;
	margin-top: 14px;
	font-weight: 700;
	color: var(--bsc-amber) !important;
}

.bsc-mega__col--aside {
	border-left: 1px solid var(--bsc-line);
	padding-left: 32px;
}

/* Cart */

.bsc-header__right {
	margin-left: auto;
}

.bsc-header__cart {
	position: relative;
	display: inline-flex;
	padding: 8px;
	color: var(--bsc-graphite);
}

.bsc-header__cart svg {
	width: 22px;
	height: 22px;
	stroke: currentColor;
	fill: none;
	stroke-width: 1.6;
}

.bsc-header__cart-n {
	position: absolute;
	top: 0;
	right: -2px;
	background: var(--bsc-graphite);
	color: #fff;
	border-radius: 100px;
	min-width: 18px;
	height: 18px;
	font-size: 11px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 5px;
}

/* Mobile */

.bsc-header__toggle {
	display: none;
	background: none;
	border: 0;
	width: 44px;
	height: 44px;
	padding: 10px;
	cursor: pointer;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
}

.bsc-header__toggle span[aria-hidden] {
	display: block;
	height: 2px;
	background: var(--bsc-graphite);
	border-radius: 2px;
}

@media (max-width: 960px) {
	.bsc-header__toggle {
		display: flex;
		order: 3;
		margin-left: auto;
	}

	.bsc-header__right {
		margin-left: 0;
		order: 2;
	}

	.bsc-nav {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		background: var(--bsc-paper);
		border-bottom: 1px solid var(--bsc-line);
		box-shadow: var(--bsc-shadow);
		max-height: calc(100vh - 110px);
		overflow: auto;
	}

	.bsc-nav.bsc-open {
		display: block;
	}

	.bsc-nav__list {
		flex-direction: column;
		align-items: stretch;
		padding: 8px 0 16px;
	}

	.bsc-nav__link {
		width: 100%;
		padding: 13px 24px;
		justify-content: space-between;
	}

	.bsc-mega {
		position: static;
		opacity: 1;
		visibility: hidden;
		transform: none;
		box-shadow: none;
		display: none;
		border: 0;
	}

	.bsc-nav__link[aria-expanded="true"] + .bsc-mega {
		display: block;
		visibility: visible;
	}

	.bsc-mega__inner {
		grid-template-columns: 1fr;
		gap: 22px;
		padding: 4px 24px 18px;
	}

	.bsc-mega__col--aside {
		border-left: 0;
		padding-left: 0;
	}
}

.bsc-mega__cols2 a { text-transform: capitalize; }

/* Header search */

.bsc-header__right {
	display: flex;
	align-items: center;
	gap: 14px;
}

.bsc-header__search {
	display: flex;
	align-items: center;
	gap: 8px;
	border: 1.5px solid var(--bsc-line-2);
	border-radius: 100px;
	background: var(--bsc-paper);
	padding: 0 14px;
	height: 42px;
	transition: border-color 0.2s;
}

.bsc-header__search:focus-within {
	border-color: var(--bsc-graphite);
}

.bsc-header__search svg {
	width: 16px;
	height: 16px;
	stroke: var(--bsc-muted);
	fill: none;
	stroke-width: 2;
	flex: none;
}

.bsc-header__search input[type="search"] {
	border: 0;
	outline: 0;
	background: none;
	font-family: var(--bsc-font-ui);
	font-size: 14px;
	color: var(--bsc-graphite);
	width: 170px;
	transition: width 0.25s ease-out;
}

.bsc-header__search input[type="search"]:focus {
	width: 220px;
}

@media (max-width: 1120px) {
	.bsc-header__search input[type="search"] {
		width: 120px;
	}
}

@media (max-width: 960px) {
	.bsc-header__search {
		display: none; /* mobile search lives in the nav drawer, next pass */
	}
}

/* Real logo */

.bsc-header__logo img {
	height: 64px;
	width: auto;
	display: block;
}

/* Mega promo image panel */

.bsc-mega__inner {
	grid-template-columns: 265px 1.2fr 1fr 0.7fr;
}

.bsc-mega__promo {
	position: relative;
	display: block;
	border-radius: var(--bsc-radius-lg);
	overflow: hidden;
	background-size: cover;
	background-position: center;
	min-height: 240px;
	border: 1px solid var(--bsc-line);
}

.bsc-mega__promo-cap {
	position: absolute;
	inset: auto 0 0 0;
	padding: 40px 16px 14px;
	background: linear-gradient(180deg, transparent, rgba(26, 23, 20, 0.82));
	color: #fff;
	font-size: 13px;
	line-height: 1.45;
}

.bsc-mega__promo-cap b {
	display: block;
	font-family: var(--bsc-font-display);
	font-size: 19px;
	font-weight: 500;
}

@media (max-width: 1080px) {
	.bsc-mega__inner {
		grid-template-columns: 1.2fr 1fr 0.7fr;
	}
	.bsc-mega__promo {
		display: none;
	}
}

@media (max-width: 960px) {
	.bsc-header__logo img {
		height: 46px;
	}
}

/* Logo lock-up: mark + typeset wordmark */

.bsc-header__logo {
	display: inline-flex;
	align-items: center;
	gap: 11px;
}

.bsc-header__logo img {
	height: 40px !important;
	width: auto;
}

.bsc-header__logotype {
	font-family: var(--bsc-font-display);
	font-weight: 600;
	font-size: 20px;
	letter-spacing: -0.02em;
	color: var(--bsc-graphite);
	line-height: 1;
	white-space: nowrap;
}

.bsc-header__logotype small {
	display: block;
	font-family: var(--bsc-font-ui);
	font-weight: 600;
	font-size: 9px;
	letter-spacing: 0.32em;
	color: var(--bsc-muted);
	margin-top: 2px;
}

.bsc-mega__promo {
	transition: background-image 0.25s ease;
}

/* Orientation strip: visible link affordance on hover/focus
   (light-strip palette: graphite text, deep-brass accent for AA on #f6f1e6) */
.bsc-orient a {
	color: inherit;
	text-decoration: none;
	transition: color 0.15s ease;
}
.bsc-orient a:hover,
.bsc-orient a:focus-visible {
	color: var(--bsc-graphite);
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-color: var(--bsc-amber);
}
.bsc-orient a:hover b,
.bsc-orient a:focus-visible b {
	color: var(--bsc-brass-deep);
}

/* Woo's clearfix pseudo-elements become ghost cells in a grid; remove them */
body.bsc-shop-body ul.products::before,
body.bsc-shop-body ul.products::after {
	content: none;
	display: none;
}

/* Sale badge: small pill top-left (Woo pins right:0, stretching it full-width) */
body.bsc-shop-body ul.products li.product .onsale {
	right: auto;
	width: auto;
	margin: 0;
}

/* Logo: mark only, slightly larger now the wordmark is gone */
.bsc-header__logo img {
	height: 48px !important;
}

/* ---------- Woo notices, on brand tokens ---------- */

body.bsc-shop-body .woocommerce-message,
body.bsc-shop-body .woocommerce-info,
body.bsc-shop-body .woocommerce-error {
	border: 1px solid var(--bsc-line-2);
	border-left: 3px solid var(--bsc-teal, #2e5d57);
	border-radius: var(--bsc-radius);
	background: var(--bsc-teal-tint, #eaf1ef);
	color: var(--bsc-graphite);
	font-family: var(--bsc-font-ui);
	font-size: 14.5px;
	padding: 14px 18px;
	margin: 0 0 22px;
	list-style: none;
}
body.bsc-shop-body .woocommerce-info {
	border-left-color: var(--bsc-amber);
	background: var(--bsc-amber-tint, #f6f1e6);
}
body.bsc-shop-body .woocommerce-error {
	border-left-color: #a03123;
	background: #f9edeb;
}
body.bsc-shop-body .woocommerce-error li {
	margin: 0;
}
body.bsc-shop-body .woocommerce-message .button,
body.bsc-shop-body .woocommerce-info .button,
body.bsc-shop-body .woocommerce-error .button {
	float: right;
	background: none;
	border: 0;
	padding: 0;
	color: var(--bsc-graphite);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.wc-block-components-notice-banner {
	border-radius: var(--bsc-radius) !important;
	font-family: var(--bsc-font-ui) !important;
}

/* ---------- Spec table: ruled rows ---------- */

.bsc-spec-table dl {
	gap: 0 14px;
}
.bsc-spec-table dt,
.bsc-spec-table dd {
	padding: 9px 0;
	border-bottom: 1px solid var(--bsc-line);
}
.bsc-spec-table dt:last-of-type,
.bsc-spec-table dd:last-of-type {
	border-bottom: 0;
}

/* ---------- Short description + related section ---------- */

body.bsc-shop-body .woocommerce-product-details__short-description {
	font-size: 15px;
	line-height: 1.6;
	color: var(--bsc-graphite-2);
	margin: 14px 0 4px;
	max-width: 60ch;
}
body.bsc-shop-body section.related > h2,
body.bsc-shop-body section.upsells > h2 {
	font-family: var(--bsc-font-display);
	font-size: 26px;
	font-weight: 600;
	color: var(--bsc-graphite);
	margin: 44px 0 4px;
}

/* Woo buttons while disabled: tokens, not Woo grey */
body.bsc-shop-body .button.disabled,
body.bsc-shop-body .button:disabled,
body.bsc-shop-body button.single_add_to_cart_button.disabled {
	background: var(--bsc-line-2);
	color: var(--bsc-graphite-2);
	opacity: 1;
	cursor: not-allowed;
}

/* ---------- Filter bar (shop + category archives) ---------- */

.bsc-filters {
	display: flex;
	align-items: flex-end;
	gap: 14px;
	flex-wrap: wrap;
	margin: 6px 0 4px;
	font-family: var(--bsc-font-ui);
}
.bsc-filters__field span {
	display: block;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--bsc-muted);
	margin-bottom: 5px;
}
.bsc-filters select {
	appearance: none;
	-webkit-appearance: none;
	border: 1.5px solid var(--bsc-line-2);
	border-radius: 100px;
	background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a736a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 14px;
	padding: 9px 34px 9px 16px;
	font-family: var(--bsc-font-ui);
	font-size: 14px;
	font-weight: 600;
	color: var(--bsc-graphite);
	cursor: pointer;
	min-width: 150px;
}
.bsc-filters select:focus-visible {
	outline: 2px solid var(--bsc-amber);
	outline-offset: 1px;
}
.bsc-filters__clear {
	font-size: 13px;
	font-weight: 700;
	color: var(--bsc-muted);
	text-decoration: underline;
	text-underline-offset: 3px;
	padding-bottom: 11px;
}
.bsc-filters__clear:hover {
	color: var(--bsc-graphite);
}

/* ---------- Colourway swatches on cards ---------- */

body.bsc-shop-body ul.products li.product .bsc-card-sw {
	display: flex;
	align-items: center;
	gap: 5px;
	padding: 0 16px;
	margin: -2px 0 8px;
}
body.bsc-shop-body ul.products li.product .bsc-card-sw i {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background-size: cover;
	background-position: center;
	border: 1px solid rgba(26, 23, 20, 0.18);
	flex: none;
}
body.bsc-shop-body ul.products li.product .bsc-card-sw em {
	font-style: normal;
	font-size: 11.5px;
	font-weight: 700;
	color: var(--bsc-muted);
}

/* Category archive intro text */
body.bsc-shop-body .term-description {
	max-width: 68ch;
	color: var(--bsc-graphite-2);
	font-size: 15px;
	line-height: 1.6;
	margin: -6px 0 10px;
}

/* ---------- Site footer (storefront) ---------- */

.bsc-footer {
	background: var(--bsc-amber-soft);
	color: var(--bsc-graphite-2);
	border-top: 1px solid var(--bsc-line-2);
	font-size: 14px;
	font-family: var(--bsc-font-ui);
	margin-top: 56px;
}
.bsc-footer__wrap {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr;
	gap: 34px;
	padding: 54px 24px 44px;
}
.bsc-footer__logo {
	font-family: var(--bsc-font-display);
	font-size: 20px;
	color: var(--bsc-graphite);
}
.bsc-footer__logo small {
	display: block;
	font-family: var(--bsc-font-ui);
	font-size: 9px;
	letter-spacing: 0.32em;
	color: var(--bsc-muted);
	margin-top: 2px;
}
.bsc-footer__about {
	font-size: 13px;
	line-height: 1.6;
	color: var(--bsc-muted);
	margin: 12px 0 0;
	max-width: 30ch;
}
.bsc-footer h4 {
	font-size: 11.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bsc-graphite);
	font-weight: 700;
	margin: 0 0 14px;
	font-family: var(--bsc-font-ui);
}
.bsc-footer ul {
	list-style: none;
	margin: 0;
	padding: 0;
}
.bsc-footer li {
	margin: 0 0 9px;
}
.bsc-footer a {
	color: var(--bsc-graphite-2);
	text-decoration: none;
}
.bsc-footer a:hover {
	color: var(--bsc-brass-deep);
}
.bsc-footer__bar {
	border-top: 1px solid var(--bsc-line-2);
}
.bsc-footer__bar-inner {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 8px 16px;
	padding: 18px 24px;
	font-size: 12.5px;
	color: var(--bsc-muted);
}
@media (max-width: 900px) {
	.bsc-footer__wrap {
		grid-template-columns: 1fr 1fr;
		gap: 28px;
	}
}
@media (max-width: 480px) {
	.bsc-footer__wrap {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 40px 24px 32px;
	}
}
body.bsc-shop-body .bsc-footer {
	margin-top: 0;
}

/* ---------- Cart + checkout (Woo blocks) ---------- */

body.bsc-shop-body .wp-block-woocommerce-cart,
body.bsc-shop-body .wp-block-woocommerce-checkout {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	padding: 28px 24px 70px;
	font-family: var(--bsc-font-ui);
}
body.bsc-shop-body .wc-block-components-product-name {
	font-family: var(--bsc-font-display);
	font-size: 17px;
	font-weight: 600;
	color: var(--bsc-graphite);
}
body.bsc-shop-body .wc-block-components-button:not(.is-link) {
	background: var(--bsc-graphite);
	color: #fff;
	border-radius: var(--bsc-radius);
	font-family: var(--bsc-font-ui);
	font-weight: 700;
	transition: background 0.2s;
}
body.bsc-shop-body .wc-block-components-button:not(.is-link):hover {
	background: #000;
}
body.bsc-shop-body .wc-block-cart__sidebar {
	background: #fff;
	border: 1px solid var(--bsc-line);
	border-radius: var(--bsc-radius-lg);
	padding: 8px 20px 20px;
	height: fit-content;
	box-shadow: var(--bsc-shadow-sm);
}
body.bsc-shop-body .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.bsc-shop-body .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: var(--bsc-font-display);
	font-size: 22px;
	font-weight: 600;
}
body.bsc-shop-body .wc-block-components-quantity-selector {
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
}
body.bsc-shop-body .wc-block-components-text-input input,
body.bsc-shop-body .wc-block-components-combobox .components-combobox-control__input,
body.bsc-shop-body .wc-block-components-form .wc-block-components-select .components-custom-select-control__button {
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
	font-family: var(--bsc-font-ui);
}
body.bsc-shop-body .wc-block-components-text-input input:focus,
body.bsc-shop-body .wc-block-components-combobox .components-combobox-control__input:focus {
	border-color: var(--bsc-amber);
	box-shadow: 0 0 0 1px var(--bsc-amber);
}
body.bsc-shop-body .wc-block-components-checkout-step__heading,
body.bsc-shop-body .wp-block-woocommerce-cart h2,
body.bsc-shop-body .wc-block-cart__empty-cart__title {
	font-family: var(--bsc-font-display);
	font-weight: 600;
	color: var(--bsc-graphite);
}
body.bsc-shop-body .wc-block-components-sidebar .wc-block-components-panel__button,
body.bsc-shop-body .wc-block-components-totals-coupon-link {
	color: var(--bsc-brass-deep, #806233);
}
body.bsc-shop-body .wc-block-checkout__sidebar .wc-block-components-panel {
	font-family: var(--bsc-font-ui);
}

/* ---------- My account + classic forms ---------- */

body.bsc-shop-body .woocommerce-form-login,
body.bsc-shop-body .woocommerce-form-register {
	max-width: 440px;
	background: #fff;
	border: 1px solid var(--bsc-line);
	border-radius: var(--bsc-radius-lg);
	padding: 26px;
	box-shadow: var(--bsc-shadow-sm);
}
body.bsc-shop-body form .form-row input.input-text,
body.bsc-shop-body form .form-row textarea,
body.bsc-shop-body form .form-row select {
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
	padding: 10px 12px;
	font-family: var(--bsc-font-ui);
	background: #fff;
}
body.bsc-shop-body form .form-row input.input-text:focus,
body.bsc-shop-body form .form-row textarea:focus,
body.bsc-shop-body form .form-row select:focus {
	outline: none;
	border-color: var(--bsc-amber);
}
body.bsc-shop-body .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
body.bsc-shop-body .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 8px 16px;
	border: 1.5px solid var(--bsc-line-2);
	border-radius: 100px;
	font-family: var(--bsc-font-ui);
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bsc-graphite);
	text-decoration: none;
}
body.bsc-shop-body .woocommerce-MyAccount-navigation li.is-active a,
body.bsc-shop-body .woocommerce-MyAccount-navigation a:hover {
	border-color: var(--bsc-graphite);
	background: var(--bsc-graphite);
	color: #fff;
}

/* ---------- Mobile refinements ---------- */

.bsc-nav__search {
	display: none;
}
@media (max-width: 960px) {
	/* logo left; cart + burger together on the right */
	.bsc-header__right {
		margin-left: auto;
		order: 2;
	}
	.bsc-header__toggle {
		margin-left: 6px;
	}
	/* search lives at the top of the drawer */
	.bsc-nav__search {
		display: flex;
		align-items: center;
		gap: 8px;
		margin: 12px 24px 4px;
		border: 1.5px solid var(--bsc-line-2);
		border-radius: 100px;
		padding: 9px 14px;
		background: #fff;
	}
	.bsc-nav__search svg {
		width: 16px;
		height: 16px;
		stroke: var(--bsc-muted);
		fill: none;
		flex: none;
	}
	.bsc-nav__search input[type="search"] {
		border: 0;
		outline: 0;
		background: none;
		font-family: var(--bsc-font-ui);
		font-size: 14px;
		width: 100%;
		color: var(--bsc-graphite);
	}
}
@media (max-width: 700px) {
	/* orientation strip: one quiet scrollable line instead of stacking */
	.bsc-orient {
		font-size: 12px;
		position: relative;
	}
	.bsc-orient__wrap {
		flex-wrap: nowrap;
		overflow-x: auto;
		justify-content: flex-start;
		gap: 22px;
		padding: 8px 16px;
		scrollbar-width: none;
	}
	.bsc-orient__wrap::-webkit-scrollbar {
		display: none;
	}
	/* right-edge fade: hints that the line keeps scrolling; matches the
	   strip's --bsc-amber-soft background */
	.bsc-orient::after {
		content: "";
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		width: 36px;
		background: linear-gradient(90deg, rgba(246, 241, 230, 0), #f6f1e6 80%);
		pointer-events: none;
	}
}

/* ---------- Mobile fixes from the 390px audit ---------- */

/* alignwide on the cart/checkout blocks breaks out of small viewports */
body.bsc-shop-body .wp-block-woocommerce-cart.alignwide,
body.bsc-shop-body .wp-block-woocommerce-checkout.alignwide {
	width: auto;
	max-width: var(--bsc-maxw);
	margin-left: auto;
	margin-right: auto;
}
@media (max-width: 700px) {
	body.bsc-shop-body .wp-block-woocommerce-cart,
	body.bsc-shop-body .wp-block-woocommerce-checkout {
		padding: 18px 16px 48px;
	}
	/* result count and sort dropdown stack instead of colliding */
	body.bsc-shop-body .woocommerce-result-count,
	body.bsc-shop-body .woocommerce-ordering {
		float: none;
		margin: 0 0 10px;
	}
	body.bsc-shop-body .woocommerce-ordering select {
		width: 100%;
		border: 1.5px solid var(--bsc-line-2);
		border-radius: var(--bsc-radius);
		padding: 9px 12px;
		font-family: var(--bsc-font-ui);
		background: #fff;
	}
}

/* Pagination must wrap on small screens */
body.bsc-shop-body .woocommerce-pagination ul {
	flex-wrap: wrap;
	justify-content: center;
	row-gap: 8px;
}

/* ---------- Swatch dots v2: no more "empty" light dots + preview affordance ---------- */

body.bsc-shop-body ul.products li.product .bsc-card-sw i {
	width: 18px;
	height: 18px;
	background-color: var(--bsc-line-2);
	background-size: 135%;
	background-position: center;
	box-shadow: inset 0 0 0 1px rgba(26, 23, 20, 0.12);
	border: 1px solid rgba(26, 23, 20, 0.22);
	cursor: pointer;
	transition: transform 0.12s ease, border-color 0.12s ease;
}
body.bsc-shop-body ul.products li.product .bsc-card-sw i:hover {
	transform: scale(1.18);
	border-color: var(--bsc-graphite);
}

/* Breathing room between the filter row and the grid */
.bsc-filters {
	margin: 6px 0 18px;
}
body.bsc-shop-body .woocommerce-result-count {
	color: var(--bsc-muted);
	font-family: var(--bsc-font-ui);
	font-size: 13.5px;
	margin: 0 0 6px;
}
body.bsc-shop-body ul.products {
	margin-top: 28px;
}

/* Swatch row aligns with the borderless card's title/price (both padding 0) */
body.bsc-shop-body ul.products li.product .bsc-card-sw {
	padding: 0;
}

/* ============================================================
   Mobile pass 10/07/2026 — 375x667 (iPhone SE) audit.
   Appended last so these win over the late unconstrained
   mega-promo rules that were beating the 960px drawer styles.
   ============================================================ */

/* ---------- Mega drawer at phone widths ---------- */
@media (max-width: 960px) {
	/* the drawer is one column; the late 4-col/3-col rules above lose here */
	.bsc-mega__inner {
		grid-template-columns: 1fr;
		gap: 20px;
	}
	.bsc-mega__inner > * {
		min-width: 0;
	}
	/* promo becomes a short full-width banner instead of a 64px sliver */
	.bsc-mega__promo {
		display: block;
		min-height: 0;
		height: 84px;
		border-radius: var(--bsc-radius-lg);
	}
	.bsc-mega__promo-cap {
		padding: 34px 14px 10px;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
		font-size: 12.5px;
	}
	.bsc-mega__promo-cap b {
		display: inline;
		font-size: 15.5px;
		margin-right: 8px;
	}
	/* style/colour links: roomier tap targets, no mid-name wraps now the
	   column is full width (two CSS columns of ~150px each) */
	.bsc-mega a {
		padding: 8px 0;
		white-space: nowrap;
	}
	.bsc-mega__cols2,
	.bsc-mega__colours {
		column-gap: 18px;
	}
	.bsc-mega__all {
		margin-top: 10px;
	}
}

/* ---------- Shop archive at 375: compact 2x2 filter grid ---------- */
@media (max-width: 700px) {
	/* starter style.css adds main{padding:0 10px} at 600px; the wrap
	   already carries the gutter */
	body.bsc-shop-body main {
		padding: 0;
	}
	.bsc-shop__wrap {
		padding: 0 16px 48px;
	}

	/* archives: reorder so the sort select can join the filter grid
	   (filters -> sorting -> result count -> grid -> pagination) */
	body.post-type-archive-product .bsc-shop__wrap,
	body.tax-product_cat .bsc-shop__wrap {
		display: flex;
		flex-direction: column;
	}
	body.post-type-archive-product .bsc-shop__wrap > *,
	body.tax-product_cat .bsc-shop__wrap > * {
		min-width: 0;
	}
	body.post-type-archive-product .bsc-shop__wrap .bsc-filters,
	body.tax-product_cat .bsc-shop__wrap .bsc-filters {
		order: 1;
	}
	body.post-type-archive-product .bsc-shop__wrap .woocommerce-ordering,
	body.tax-product_cat .bsc-shop__wrap .woocommerce-ordering {
		order: 2;
	}
	body.post-type-archive-product .bsc-shop__wrap .woocommerce-result-count,
	body.tax-product_cat .bsc-shop__wrap .woocommerce-result-count {
		order: 3;
	}
	body.post-type-archive-product .bsc-shop__wrap ul.products,
	body.tax-product_cat .bsc-shop__wrap ul.products {
		order: 4;
	}
	body.post-type-archive-product .bsc-shop__wrap .woocommerce-pagination,
	body.tax-product_cat .bsc-shop__wrap .woocommerce-pagination {
		order: 5;
	}

	/* the filter form itself: Style + Colour row, Price on row 2 */
	.bsc-filters {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 10px;
		margin: 4px 0 0;
	}
	.bsc-filters__field {
		min-width: 0;
	}
	.bsc-filters__field span {
		margin-bottom: 4px;
	}
	.bsc-filters select {
		width: 100%;
		min-width: 0;
		min-height: 44px;
		padding: 9px 30px 9px 14px;
	}
	.bsc-filters__clear {
		grid-column: 1 / -1;
		justify-self: start;
		padding: 2px 0 0;
	}

	/* Woo's sort select fills the empty cell next to Price: same width as a
	   grid cell, pulled up over the form's last row (select is 44px tall) */
	body.bsc-shop-body .bsc-filters ~ .woocommerce-ordering {
		width: calc(50% - 5px);
		align-self: flex-end;
		margin: -44px 0 0;
	}
	body.bsc-shop-body .bsc-filters ~ .woocommerce-ordering select {
		width: 100%;
		min-height: 44px;
		appearance: none;
		-webkit-appearance: none;
		border: 1.5px solid var(--bsc-line-2);
		border-radius: 100px;
		background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237a736a' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 14px;
		padding: 9px 30px 9px 14px;
		font-family: var(--bsc-font-ui);
		font-size: 14px;
		font-weight: 600;
		color: var(--bsc-graphite);
	}

	/* result count: one quiet line above the grid */
	body.bsc-shop-body .woocommerce-result-count {
		font-size: 12.5px;
		margin: 12px 0 0;
	}
	body.bsc-shop-body ul.products {
		margin-top: 14px;
	}

	/* archive title: tighter at phone widths */
	body.bsc-shop-body .woocommerce-products-header__title,
	body.bsc-shop-body h1.page-title {
		font-size: 27px;
		margin: 12px 0 4px;
		padding-bottom: 12px;
	}

	/* cards: tighter type block under the image tile */
	body.bsc-shop-body ul.products li.product img {
		margin: 0 0 9px;
	}
	body.bsc-shop-body ul.products li.product .woocommerce-loop-product__title {
		font-size: 16px;
	}
	body.bsc-shop-body ul.products li.product .price {
		font-size: 13.5px;
		margin: 0 0 6px;
	}
}

/* Woo's smallscreen stylesheet floats cards at width:48% inside our grid
   track (cards rendered 79px wide); this outranks it */
@media (max-width: 768px) {
	body.bsc-shop-body ul.products[class*="columns-"] li.product,
	body.bsc-shop-body ul.products li.product {
		width: auto;
		float: none;
		margin: 0;
		clear: none;
	}
}

/* ---------- Product page at 375 ---------- */
@media (max-width: 700px) {
	/* 46px desktop display size overwhelms a 375px buy box */
	body.bsc-shop-body div.summary .product_title {
		font-size: 34px;
	}
	body.bsc-shop-body div.summary .price {
		font-size: 24px;
	}
	/* related/upsell heading breathing room matches the tighter rhythm */
	body.bsc-shop-body section.related > h2,
	body.bsc-shop-body section.upsells > h2 {
		font-size: 23px;
		margin: 32px 0 2px;
	}
}

/* Header cart icon: 38px tap box at phone widths; nudge to 42px */
@media (max-width: 960px) {
	.bsc-header__cart {
		padding: 10px;
	}
}

/* ---------- Content-page bands (Installation, Showroom, About, etc.) ---------- */

.bsc-page-hero {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	padding: 56px 24px 8px;
}
.bsc-page-hero h1 {
	font-family: var(--bsc-font-display);
	font-size: clamp(30px, 4.4vw, 44px);
	font-weight: 600;
	letter-spacing: -0.015em;
	line-height: 1.06;
	color: var(--bsc-graphite);
	margin: 0 0 14px;
	max-width: 18ch;
}
.bsc-eyebrow {
	font-family: var(--bsc-font-ui);
	font-size: 11.5px;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--bsc-amber);
	font-weight: 700;
	margin: 0 0 10px;
}
.bsc-sub {
	font-family: var(--bsc-font-ui);
	font-size: 17px;
	line-height: 1.6;
	color: var(--bsc-graphite-2);
	max-width: 58ch;
	margin: 0;
}
.bsc-band {
	max-width: var(--bsc-maxw);
	margin: 52px auto;
	padding: 0 24px;
	font-family: var(--bsc-font-ui);
}
.bsc-band h2 {
	font-family: var(--bsc-font-display);
	font-size: 28px;
	font-weight: 600;
	color: var(--bsc-graphite);
	margin: 0 0 14px;
}
.bsc-band h3 {
	font-family: var(--bsc-font-display);
	font-size: 19px;
	font-weight: 600;
	color: var(--bsc-graphite);
	margin: 0 0 8px;
}
.bsc-band p {
	font-size: 15.5px;
	line-height: 1.65;
	color: var(--bsc-graphite-2);
	max-width: 68ch;
}
.bsc-band--tint {
	background: var(--bsc-amber-tint);
	border: 1px solid var(--bsc-line);
	border-radius: var(--bsc-radius-lg);
	padding: 30px 32px;
	max-width: calc(var(--bsc-maxw) - 48px);
}
.bsc-band .wp-block-button__link,
.bsc-page-hero .wp-block-button__link {
	background: var(--bsc-graphite);
	color: #fff;
	border-radius: var(--bsc-radius);
	font-family: var(--bsc-font-ui);
	font-size: 15px;
	font-weight: 700;
	padding: 13px 22px;
	text-decoration: none;
	transition: background 0.2s;
}
.bsc-band .wp-block-button__link:hover,
.bsc-page-hero .wp-block-button__link:hover {
	background: #000;
}
.bsc-band .is-style-outline .wp-block-button__link,
.bsc-page-hero .is-style-outline .wp-block-button__link {
	background: transparent;
	border: 1.5px solid var(--bsc-line-2);
	color: var(--bsc-graphite);
}
.bsc-band .is-style-outline .wp-block-button__link:hover,
.bsc-page-hero .is-style-outline .wp-block-button__link:hover {
	border-color: var(--bsc-graphite);
	background: transparent;
}
.bsc-cards .wp-block-column {
	background: #fff;
	border: 1px solid var(--bsc-line);
	border-radius: var(--bsc-radius-lg);
	padding: 22px;
	box-shadow: var(--bsc-shadow-sm);
}
.bsc-cards .wp-block-column p {
	font-size: 14.5px;
}
.bsc-steps {
	counter-reset: bsc-step;
}
.bsc-steps .wp-block-column {
	counter-increment: bsc-step;
}
.bsc-steps .wp-block-column h3::before {
	content: counter(bsc-step) '. ';
	color: var(--bsc-amber);
}
@media (max-width: 700px) {
	.bsc-page-hero {
		padding: 36px 16px 4px;
	}
	.bsc-band {
		margin: 36px auto;
		padding: 0 16px;
	}
	.bsc-band--tint {
		padding: 22px 18px;
		margin-left: 16px;
		margin-right: 16px;
	}
	.bsc-band h2 {
		font-size: 23px;
	}
}

/* ---------- Woo notice banners (new markup with inline svg icon) ---------- */

body.bsc-shop-body .wc-block-components-notice-banner,
body.bsc-shop-body .woocommerce-notices-wrapper .wc-block-components-notice-banner {
	border: 1px solid var(--bsc-line-2) !important;
	border-left: 3px solid var(--bsc-teal) !important;
	background: var(--bsc-teal-tint) !important;
	color: var(--bsc-graphite) !important;
	border-radius: var(--bsc-radius) !important;
	font-family: var(--bsc-font-ui);
	font-size: 14.5px;
	padding: 14px 18px 14px 46px !important;
	margin: 0 0 22px;
	position: relative;
}
body.bsc-shop-body .wc-block-components-notice-banner:focus,
body.bsc-shop-body .wc-block-components-notice-banner:focus-visible {
	outline: 2px solid var(--bsc-amber);
	outline-offset: 2px;
}
body.bsc-shop-body .wc-block-components-notice-banner > svg {
	position: absolute;
	left: 15px;
	top: 16px;
	width: 19px;
	height: 19px;
	background: none !important;
	fill: var(--bsc-teal);
	color: var(--bsc-teal);
	padding: 0 !important;
	margin: 0 !important;
}
body.bsc-shop-body .wc-block-components-notice-banner.is-error {
	border-left-color: #a03123 !important;
	background: #f9edeb !important;
}
body.bsc-shop-body .wc-block-components-notice-banner.is-error > svg {
	fill: #a03123;
	color: #a03123;
}
body.bsc-shop-body .wc-block-components-notice-banner.is-info {
	border-left-color: var(--bsc-amber) !important;
	background: var(--bsc-amber-tint) !important;
}
body.bsc-shop-body .wc-block-components-notice-banner.is-info > svg {
	fill: var(--bsc-amber);
	color: var(--bsc-amber);
}
body.bsc-shop-body .wc-block-components-notice-banner__content {
	font-family: var(--bsc-font-ui);
}
body.bsc-shop-body .wc-block-components-notice-banner a.wc-forward {
	float: right;
	font-weight: 700;
	color: var(--bsc-graphite);
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Imported posts: the starter's single template carries a -32px right margin
 * that overflows phones; and images must never exceed the column */
@media (max-width: 700px) {
	.single-post-content {
		margin-right: 0;
		max-width: 100%;
		box-sizing: border-box;
	}
	.single-post-entry img {
		max-width: 100%;
		height: auto;
	}
}

/* ---------- Single post: editorial design pass ---------- */

.single-post-hero {
	height: clamp(280px, 38vw, 520px);
}
.single-post-header {
	max-width: 760px;
	margin: 0 auto 34px;
}
.single-post-eyebrow {
	display: inline-block;
	font-family: var(--bsc-font-ui);
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--bsc-amber);
	text-decoration: none;
	margin: 0 0 12px;
}
.single-post-eyebrow:hover {
	text-decoration: underline;
	text-underline-offset: 3px;
}
.single-post-title {
	font-family: var(--bsc-font-display) !important;
	font-size: clamp(30px, 4.6vw, 44px) !important;
	font-weight: 600 !important;
	letter-spacing: -0.015em;
	line-height: 1.08 !important;
	color: var(--bsc-graphite) !important;
	margin: 0 0 12px !important;
}
.single-post-meta {
	font-family: var(--bsc-font-ui);
	font-size: 13.5px;
	color: var(--bsc-muted);
	margin: 0;
}
.single-post-entry {
	max-width: 760px !important;
	margin: 0 auto !important;
	font-family: var(--bsc-font-ui);
	font-size: 17px;
	line-height: 1.75;
	color: var(--bsc-graphite-2);
}
.single-post-entry p,
.single-post-entry ul,
.single-post-entry ol {
	font-size: 17px;
	line-height: 1.75;
}
.single-post-entry h2,
.single-post-entry h3,
.single-post-entry h4 {
	font-family: var(--bsc-font-display) !important;
	font-weight: 600 !important;
	color: var(--bsc-graphite) !important;
	line-height: 1.15;
	margin-top: 1.6em;
	margin-bottom: 0.5em;
}
.single-post-entry h2 {
	font-size: 28px;
}
.single-post-entry h3 {
	font-size: 22px;
}
.single-post-entry a {
	color: var(--bsc-graphite);
	text-decoration: underline;
	text-decoration-color: var(--bsc-amber);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
}
.single-post-entry a:hover {
	color: var(--bsc-amber);
}
.single-post-entry .wp-block-image,
.single-post-entry figure {
	margin: 28px 0;
}
.single-post-entry img {
	border-radius: var(--bsc-radius-lg);
}
.single-post-entry figcaption,
.single-post-entry .wp-element-caption {
	font-size: 13px;
	color: var(--bsc-muted);
	text-align: center;
	margin-top: 8px;
}
.single-post-entry blockquote,
.single-post-entry .wp-block-quote {
	border-left: 3px solid var(--bsc-amber);
	margin: 28px 0;
	padding: 4px 0 4px 22px;
	font-family: var(--bsc-font-display);
	font-style: italic;
	font-size: 19px;
	color: var(--bsc-graphite);
}
.single-post-entry iframe {
	max-width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	width: 100%;
	border-radius: var(--bsc-radius-lg);
}
.single-post-entry .wp-block-separator {
	border: 0;
	border-top: 1px solid var(--bsc-line-2);
	margin: 36px auto;
	max-width: 120px;
}

/* Keep reading */
.bsc-related {
	border-top: 1px solid var(--bsc-line);
	background: var(--bsc-paper);
	padding: 44px 0 56px;
}
.bsc-related__wrap {
	max-width: var(--bsc-maxw);
	margin: 0 auto;
	padding: 0 24px;
}
.bsc-related__wrap h2 {
	font-family: var(--bsc-font-display) !important;
	font-size: 26px !important;
	font-weight: 600 !important;
	color: var(--bsc-graphite) !important;
	margin: 0 0 18px !important;
}
.bsc-related__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.bsc-related__card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--bsc-line);
	border-radius: var(--bsc-radius-lg);
	overflow: hidden;
	text-decoration: none;
	box-shadow: var(--bsc-shadow-sm);
	transition: box-shadow 0.2s, transform 0.2s;
}
.bsc-related__card:hover {
	box-shadow: 0 10px 30px rgba(33, 29, 24, 0.12);
	transform: translateY(-2px);
}
.bsc-related__img {
	display: block;
	aspect-ratio: 16 / 10;
	background-size: cover;
	background-position: center;
	background-color: var(--bsc-line);
}
.bsc-related__t {
	font-family: var(--bsc-font-display);
	font-size: 17px;
	font-weight: 600;
	color: var(--bsc-graphite);
	line-height: 1.3;
	padding: 14px 16px 18px;
}
@media (max-width: 700px) {
	.bsc-related__grid {
		grid-template-columns: 1fr;
	}
	.single-post-entry {
		font-size: 16px;
	}
}

/* ---------- Image mosaic (showroom) ---------- */

.bsc-mosaic {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	grid-auto-rows: 215px;
	gap: 14px;
}
.bsc-mosaic .wp-block-image {
	margin: 0;
}
.bsc-mosaic .wp-block-image:first-child {
	grid-row: span 2;
}
.bsc-mosaic .wp-block-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--bsc-radius-lg);
	display: block;
}
@media (max-width: 700px) {
	.bsc-mosaic {
		grid-template-columns: 1fr 1fr;
		grid-auto-rows: 150px;
	}
}

/* ---------- Project gallery ---------- */

.bsc-gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.bsc-gallery .wp-block-image {
	margin: 0;
}
.bsc-gallery .wp-block-image:first-child {
	grid-column: span 2;
}
.bsc-gallery .wp-block-image img {
	width: 100%;
	height: 300px;
	object-fit: cover;
	border-radius: var(--bsc-radius-lg);
	display: block;
}
.bsc-gallery .wp-block-image figcaption {
	font-family: var(--bsc-font-ui);
	font-size: 12.5px;
	color: var(--bsc-muted);
	margin-top: 7px;
	text-align: left;
}
@media (max-width: 700px) {
	.bsc-gallery {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}
	.bsc-gallery .wp-block-image img {
		height: 180px;
	}
}

/* ---------- Gravity Forms inside content bands ---------- */

.bsc-band .gform_wrapper label.gfield_label {
	font-family: var(--bsc-font-ui);
	font-size: 13px;
	font-weight: 700;
	color: var(--bsc-graphite);
}
.bsc-band .gform_wrapper input:not([type='submit']),
.bsc-band .gform_wrapper select,
.bsc-band .gform_wrapper textarea {
	border: 1.5px solid var(--bsc-line-2);
	border-radius: var(--bsc-radius);
	background: #fff;
	font-family: var(--bsc-font-ui);
	font-size: 15px;
	padding: 11px 12px;
}
.bsc-band .gform_wrapper input:focus,
.bsc-band .gform_wrapper select:focus,
.bsc-band .gform_wrapper textarea:focus {
	outline: none;
	border-color: var(--bsc-amber);
	box-shadow: 0 0 0 1px var(--bsc-amber);
}
.bsc-band .gform_wrapper .gform_button {
	background: var(--bsc-graphite);
	color: #fff;
	border: 0;
	border-radius: var(--bsc-radius);
	font-family: var(--bsc-font-ui);
	font-size: 15px;
	font-weight: 700;
	padding: 13px 26px;
	cursor: pointer;
	transition: background 0.2s;
}
.bsc-band .gform_wrapper .gform_button:hover {
	background: #000;
}
.bsc-band .gform_wrapper .gfield_validation_message,
.bsc-band .gform_wrapper .validation_message {
	color: #a03123;
	font-size: 13px;
}
.bsc-band .gform_confirmation_message {
	background: var(--bsc-teal-tint);
	border-left: 3px solid var(--bsc-teal);
	border-radius: var(--bsc-radius);
	padding: 16px 18px;
	font-family: var(--bsc-font-ui);
}

/* Core galleries inside posts: on-brand radius + spacing */
.single-post-entry .wp-block-gallery {
	gap: 12px;
	margin: 28px 0;
}
.single-post-entry .wp-block-gallery img {
	border-radius: var(--bsc-radius-lg);
}

/* ---------- Single post v2: no full-bleed hero, wider measure, TOC card ---------- */

.single-post-header,
.single-post-entry {
	max-width: 820px !important;
}
.single-post-feature {
	max-width: 880px;
	margin: 0 auto 36px;
}
.single-post-feature__img {
	width: 100%;
	height: auto;
	max-height: 560px;
	object-fit: cover;
	border-radius: var(--bsc-radius-lg);
	display: block;
}
.single-post-content {
	padding-top: clamp(2.2rem, 4.5vw, 3.5rem);
}

/* Jump-link lists become a quiet contents card */
.single-post-entry ul.bsc-toc {
	list-style: none;
	background: var(--bsc-amber-tint, #f6f1e6);
	border: 1px solid var(--bsc-line);
	border-radius: var(--bsc-radius-lg);
	padding: 20px 24px;
	margin: 24px 0 32px;
	columns: 2;
	column-gap: 32px;
}
.single-post-entry ul.bsc-toc li {
	margin: 0 0 9px;
	break-inside: avoid;
	font-size: 15px;
}
.single-post-entry ul.bsc-toc a {
	text-decoration-color: var(--bsc-line-2);
}
.single-post-entry ul.bsc-toc a:hover {
	text-decoration-color: var(--bsc-amber);
}
@media (max-width: 600px) {
	.single-post-entry ul.bsc-toc {
		columns: 1;
	}
}

/* Sample-needs-a-colourway nudge */
.bsc-sample-warn {
	display: block;
	font-family: var(--bsc-font-ui);
	font-size: 12.5px;
	color: #a03123;
	margin-top: 6px;
}

/* ---------- QA pass: content-page link styling + post list hygiene ---------- */

/* Links inside bands and cards were falling back to browser blue */
.bsc-band a:not(.wp-block-button__link),
.bsc-cards a,
.bsc-page-hero a:not(.wp-block-button__link) {
	color: var(--bsc-graphite);
	font-weight: 600;
	text-decoration: underline;
	text-decoration-color: var(--bsc-amber);
	text-decoration-thickness: 1.5px;
	text-underline-offset: 3px;
}
.bsc-band a:not(.wp-block-button__link):hover,
.bsc-cards a:hover,
.bsc-page-hero a:not(.wp-block-button__link):hover {
	color: var(--bsc-amber);
}

/* Empty list items left over from Elementor icon-lists render as lone bullets */
.single-post-entry li:empty {
	display: none;
}
.single-post-entry ul:empty,
.single-post-entry ol:empty {
	display: none;
}

/* ---------- FIX: classic themes inject .wp-block-group__inner-container
 * inside group blocks, so grid must live on the inner wrapper ---------- */

.bsc-mosaic,
.bsc-gallery {
	display: block;
}
.bsc-mosaic > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	grid-auto-rows: 215px;
	gap: 14px;
}
.bsc-mosaic > .wp-block-group__inner-container > .wp-block-image:first-child {
	grid-row: span 2;
}
.bsc-gallery > .wp-block-group__inner-container {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
.bsc-gallery > .wp-block-group__inner-container > .wp-block-image:first-child {
	grid-column: span 2;
}
@media (max-width: 700px) {
	.bsc-mosaic > .wp-block-group__inner-container {
		grid-template-columns: 1fr 1fr;
		grid-auto-rows: 150px;
	}
	.bsc-gallery > .wp-block-group__inner-container {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}
}

/* Portrait images in posts: constrained and centred instead of full-column */
.single-post-entry .bsc-img-portrait {
	max-width: min(480px, 100%);
	margin-left: auto;
	margin-right: auto;
}

/* Post galleries: keep two-column pairs balanced and cropped consistently */
.single-post-entry .wp-block-gallery.columns-2 .wp-block-image img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Mobile: comfier tap areas for breadcrumb + product-meta links */
@media (max-width: 700px) {
	.bsc-crumb a,
	body.bsc-shop-body .posted_in a,
	body.bsc-shop-body .sku_wrapper a {
		display: inline-block;
		padding: 5px 2px;
	}
}

/* Gravity Forms Orbital theme: pin brand tokens over its defaults */
.bsc-band .gform_wrapper {
	--gf-ctrl-btn-bg-color-primary: var(--bsc-graphite);
	--gf-ctrl-btn-border-color-primary: var(--bsc-graphite);
	--gf-ctrl-btn-color-primary: #ffffff;
	--gf-ctrl-btn-radius: 4px;
	--gf-color-primary: var(--bsc-amber);
	--gf-ctrl-border-color: var(--bsc-line-2);
	--gf-ctrl-radius: 4px;
}
.bsc-band .gform_wrapper input[type='submit'],
.bsc-band .gform_wrapper .gform_button {
	background: var(--bsc-graphite) !important;
	border: 1px solid var(--bsc-graphite) !important;
	color: #fff !important;
	border-radius: var(--bsc-radius) !important;
	font-family: var(--bsc-font-ui) !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	padding: 13px 26px !important;
	min-height: 48px;
	transition: background 0.2s;
}
.bsc-band .gform_wrapper input[type='submit']:hover,
.bsc-band .gform_wrapper .gform_button:hover {
	background: #000 !important;
}
.bsc-band .gform_wrapper .gfield_required {
	color: var(--bsc-muted) !important;
	font-weight: 400;
	font-size: 12px;
}

/* Mobile mosaic: odd fourth image takes the full row instead of an orphan cell */
@media (max-width: 700px) {
	.bsc-mosaic > .wp-block-group__inner-container > .wp-block-image:last-child:nth-child(even) {
		grid-column: span 2;
	}
}

/* FAQ accordions inside content bands: align flush left with the band
   heading instead of centring at 1024px (client pass 27/07/2026) */
.bsc-band .wp-block-blacksheep-faq-accordion .faq {
	margin-inline: 0;
	max-width: none;
}

/* FAQ page interstitial images: full band width, rounded, no stray margins */
.bsc-faq-img figure {
	margin: 0;
}

.bsc-faq-img img {
	width: 100%;
	height: auto;
	border-radius: 10px;
	display: block;
}

/* Sub-footer credit: quiet, on-scheme; hyperlinked on the homepage only */
.bsc-footer__credit a {
	color: var(--bsc-graphite-2);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid var(--bsc-line-2);
}

.bsc-footer__credit a:hover {
	color: var(--bsc-brass-deep);
	border-color: var(--bsc-brass-deep);
}

/* Project/service card grids: uniform image crops (client pass 29/07) */
.bsc-cards .wp-block-image img,
.bsc-cards figure img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 6px;
}

/* Page heroes: air between the sub line and the CTA buttons (Rom, 12/08) */
.bsc-page-hero .wp-block-buttons {
	margin-top: 26px;
}
