/*
Theme Name:  BW Photographics
Description: Child theme for Kadence — Black & White Photographics, Adelaide
Template:    kadence
Version:     1.0.0
Author:      Black & White Photographics
*/

/* ─── Design Tokens ─────────────────────────────────────────────────────── */

:root {
	--black:     #080808;
	--off-black: #111111;
	--surface:   #161616;
	--border:    rgba(255, 255, 255, 0.09);
	--text:      #ece8e0;
	--muted:     rgba(236, 232, 224, 0.55);
	--accent:    #c8b89a;

	--font-serif: 'Cormorant Garamond', Georgia, serif;
	--font-mono:  'DM Mono', 'Courier New', monospace;
}

/* ─── Global Reset ───────────────────────────────────────────────────────── */

html,
body {
	background-color: var(--black);
	color: var(--text);
}

body {
	font-family: var(--font-serif);
}

/* ─── Kadence Body / Page Overrides ─────────────────────────────────────── */

.site,
#page,
.wp-site-blocks {
	background-color: var(--black);
}

.content-bg,
.kadence-inner-column-inner,
.wp-block-group {
	background-color: transparent;
}

/* ─── Typography ─────────────────────────────────────────────────────────── */

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-serif);
	color: var(--text);
	font-weight: 300;
	letter-spacing: 0.04em;
}

p, li, td, th, blockquote {
	color: var(--text);
}

a {
	color: var(--accent);
	text-decoration: none;
}

a:hover {
	color: var(--text);
}

code,
pre,
.wp-block-code {
	font-family: var(--font-mono);
	font-size: 0.85em;
	color: var(--muted);
}

/* ─── Borders & Surfaces ─────────────────────────────────────────────────── */

hr,
.wp-block-separator {
	border-color: var(--border);
}

.wp-block-group,
.entry-content .wp-block-group__inner-container {
	border-color: var(--border);
}

/* ─── Header ─────────────────────────────────────────────────────────────── */

/*
 * Kadence injects background via inline <style> from the Customizer, so these
 * need !important to win the specificity race.
 */

/* Fixed header — position: sticky fails inside Kadence's overflow:clip wrapper.
 * JS (in footer) measures the real height and sets --bwp-header-height so the
 * content area below gets an exact matching padding-top offset. */
#masthead,
header.site-header,
#masthead.site-header {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	width: 100% !important;
	z-index: 1000 !important;
	background: rgba(8, 8, 8, 0.95) !important;
	backdrop-filter: blur(12px) !important;
	-webkit-backdrop-filter: blur(12px) !important;
	border-bottom: 0.5px solid var(--border) !important;
}

/* Push content below the fixed header */
#inner-wrap {
	padding-top: var(--bwp-header-height, 64px);
}

/* Slide admin-bar users' header down the exact WP admin bar height */
body.admin-bar #masthead,
body.admin-bar header.site-header {
	top: 32px !important;
}
@media screen and (max-width: 782px) {
	body.admin-bar #masthead,
	body.admin-bar header.site-header {
		top: 46px !important;
	}
}

/* Main header row — where Kadence actually paints the background */
.site-main-header-wrap .site-header-row-container-inner,
.site-top-header-wrap .site-header-row-container-inner,
.site-bottom-header-wrap .site-header-row-container-inner {
	background-color: transparent !important;
}

/* Sticky header states — keep transparent so the shell blur shows through */
.site-header-inner-wrap,
.site-header-upper-inner-wrap,
.kadence-sticky-header,
.kadence-sticky-header.item-is-fixed {
	background-color: transparent !important;
}

/* Mobile header */
#mobile-header,
#mobile-header .site-main-header-wrap .site-header-row-container-inner,
#mobile-header .site-header-row-container-inner {
	background-color: transparent !important;
}

/* Align header content with the site-wide content indent used on all page templates */
#main-header .site-container,
#mobile-header .site-container {
	padding-left: clamp(1.5rem, 8vw, 8rem);
	padding-right: clamp(1.5rem, 8vw, 8rem);
}

/* Site title -> logo image (text kept in DOM for SEO/accessibility, visually replaced) */
#main-header .site-branding .site-title,
#mobile-header .site-branding .site-title {
	display: block;
	overflow: hidden;
	text-indent: 200%;
	white-space: nowrap;
	background-image: url("images/bwp vert logo darkmode.png");
	background-repeat: no-repeat;
	background-position: left center;
	background-size: contain;
	width: 180px;
	height: 40px;
}

/* Light mode uses the standard outline logo; dark mode (default, above) uses the darkmode variant */
body.light-mode #main-header .site-branding .site-title,
body.light-mode #mobile-header .site-branding .site-title {
	background-image: url("images/bwp vert logo transp outline.png");
}

/* Kadence hides the title with .vs-md-false between 720–1024px (a tablet
   "hide title" responsive-visibility setting) — this hid our logo on every
   portrait tablet, since most portrait widths fall in that exact range. */
#mobile-header .site-branding .site-title.vs-md-false {
	display: block !important;
}

/* Mobile logo: 60% of the actual header height, width scaled to the logo's aspect ratio (2172:484) */
#mobile-header .site-branding .site-title {
	height: calc(var(--bwp-header-height, 64px) * 0.6);
	width: calc(var(--bwp-header-height, 64px) * 0.6 * 4.4876);
}

@media (max-width: 480px) {
	#main-header .site-branding .site-title {
		width: 130px;
		height: 29px;
	}
}

/* ─── Navigation ─────────────────────────────────────────────────────────── */

/* Primary nav links — exact Kadence selector + !important beats inline */
/* Single source of truth for nav typography — cart/toggle inherit from
   .bwp-nav-actions-row below instead of hardcoding their own values, so
   they always change in lockstep with the rest of the nav. */
.main-navigation .primary-menu-container > ul > li.menu-item > a,
.main-navigation .primary-menu-container > ul > li.menu-item > a:visited,
.main-navigation .bwp-nav-actions-row {
	color: rgba(236, 232, 224, 0.55) !important;
	font-family: var(--font-mono) !important;
	font-size: 11px !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
}

.main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
.main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a,
.main-navigation .primary-menu-container > ul > li.current_page_item > a {
	color: var(--text) !important;
}

/* Mobile nav links */
.mobile-navigation ul li:not(.menu-item-has-children) > a,
.mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap {
	color: rgba(236, 232, 224, 0.8) !important;
	font-family: var(--font-mono) !important;
	font-size: 13px !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
}

.mobile-navigation ul li:not(.menu-item-has-children) > a:hover,
.mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap:hover {
	color: var(--text) !important;
}

.mobile-navigation ul li.current-menu-item > a,
.mobile-navigation ul li.current-page-item > a,
.mobile-navigation ul li.current_page_item > a {
	color: #ece8e0 !important;
}

/* ── Nav dropdowns (sub-menus) ───────────────────────────────────────────── */

.main-navigation .primary-menu-container > ul > li.menu-item-has-children {
	position: relative;
}

.main-navigation .primary-menu-container ul .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 999;
	min-width: 200px;
	background-color: #0f0f0f;
	border: 1px solid rgba(255, 255, 255, 0.09);
	border-top: none;
	padding: 0.5rem 0;
	list-style: none;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
	pointer-events: none;
}

.main-navigation .primary-menu-container > ul > li.menu-item-has-children:hover > .sub-menu,
.main-navigation .primary-menu-container > ul > li.menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}

.main-navigation .primary-menu-container ul .sub-menu li {
	display: block;
	margin: 0;
	padding: 0;
}

.main-navigation .primary-menu-container ul .sub-menu li a {
	display: block;
	padding: 0.55rem 1.25rem;
	font-family: var(--font-mono) !important;
	font-size: 0.6rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: rgba(236, 232, 224, 0.5) !important;
	text-decoration: none;
	white-space: nowrap;
	transition: color 0.15s ease, background-color 0.15s ease;
	border-bottom: 0.5px solid rgba(255, 255, 255, 0.05);
}

.main-navigation .primary-menu-container ul .sub-menu li:last-child a {
	border-bottom: none;
}

.main-navigation .primary-menu-container ul .sub-menu li a:hover,
.main-navigation .primary-menu-container ul .sub-menu li.current-menu-item > a {
	color: #ece8e0 !important;
	background-color: rgba(255, 255, 255, 0.04) !important;
}

/* Light mode dropdown overrides */
body.light-mode .main-navigation .primary-menu-container ul .sub-menu {
	background-color: #ede9e3;
	border-color: rgba(26, 26, 26, 0.12);
}

body.light-mode .main-navigation .primary-menu-container ul .sub-menu li a {
	color: rgba(26, 26, 26, 0.5) !important;
	border-bottom-color: rgba(26, 26, 26, 0.07);
}

body.light-mode .main-navigation .primary-menu-container ul .sub-menu li a:hover,
body.light-mode .main-navigation .primary-menu-container ul .sub-menu li.current-menu-item > a {
	color: #1a1a1a !important;
	background-color: rgba(26, 26, 26, 0.05) !important;
}

/* ── Nav cart icon ───────────────────────────────────────────────────────── */

.bwp-nav-cart {
	display: flex !important;
	align-items: center;
	position: relative;
}

.bwp-cart-link {
	display: flex !important;
	align-items: center;
	gap: 0.15rem;
	color: rgba(236, 232, 224, 0.55) !important;
	text-decoration: none !important;
	background: none !important;
	padding: 0 !important;
	line-height: 1;
	transition: color 0.2s ease;
}

.bwp-cart-link:hover,
.bwp-cart-link:focus {
	color: #ece8e0 !important;
	background: none !important;
	outline: none !important;
}

.bwp-cart-text {
	font-family: inherit;
	font-size: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	line-height: 1;
}

.bwp-cart-count {
	font-family: var(--font-mono);
	font-size: 10px;
	letter-spacing: 0.08em;
	color: #c8b89a;
	line-height: 1;
	align-self: flex-start;
	transform: translateY(-0.4em);
}

.bwp-cart-count:empty {
	display: none;
}

/* ── Mini-cart dropdown ──────────────────────────────────────────────────── */

.bwp-mini-cart {
	position: absolute;
	top: 100%;
	right: 0;
	z-index: 999;
	width: 280px;
	background-color: #0f0f0f;
	border: 1px solid rgba(255, 255, 255, 0.09);
	border-top: none;
	padding: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-4px);
	transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
	pointer-events: none;
}

.bwp-nav-cart:hover .bwp-mini-cart,
.bwp-nav-cart:focus-within .bwp-mini-cart {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
	pointer-events: auto;
}

.bwp-mini-cart__empty {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(236, 232, 224, 0.4);
	padding: 1rem 1.25rem;
	margin: 0;
}

.bwp-mini-cart__items {
	list-style: none;
	margin: 0;
	padding: 0.5rem 0;
}

.bwp-mini-cart__item {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 0.75rem;
	padding: 0.55rem 1.25rem;
	border-bottom: 0.5px solid rgba(255, 255, 255, 0.05);
}

.bwp-mini-cart__item:last-child {
	border-bottom: none;
}

.bwp-mini-cart__item-name {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(236, 232, 224, 0.5);
	flex: 1;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bwp-mini-cart__item-meta {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.1em;
	color: #c8b89a;
	white-space: nowrap;
	flex-shrink: 0;
}

.bwp-mini-cart__footer {
	border-top: 1px solid rgba(255, 255, 255, 0.09);
	padding: 0.75rem 1.25rem;
}

.bwp-mini-cart__subtotal {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: rgba(236, 232, 224, 0.5);
	margin-bottom: 0.75rem;
}

.bwp-mini-cart__subtotal span:last-child {
	color: #ece8e0;
	font-size: 0.65rem;
}

.bwp-mini-cart__actions {
	display: flex;
	gap: 0.5rem;
}

.bwp-mini-cart__btn {
	flex: 1;
	display: block;
	text-align: center;
	font-family: var(--font-mono) !important;
	font-size: 0.55rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	padding: 0.5rem 0.5rem !important;
	color: rgba(236, 232, 224, 0.55) !important;
	border: 0.5px solid rgba(255, 255, 255, 0.09) !important;
	background: none !important;
	transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
}

.bwp-mini-cart__btn:hover {
	color: #ece8e0 !important;
	border-color: rgba(255, 255, 255, 0.2) !important;
	background-color: rgba(255, 255, 255, 0.04) !important;
}

.bwp-mini-cart__btn--primary {
	color: #c8b89a !important;
	border-color: rgba(200, 184, 154, 0.35) !important;
}

.bwp-mini-cart__btn--primary:hover {
	color: #ece8e0 !important;
	border-color: rgba(200, 184, 154, 0.7) !important;
	background-color: rgba(200, 184, 154, 0.07) !important;
}

/* ── Nav actions row (cart + mode toggle) ────────────────────────────────── */

.bwp-nav-actions {
	display: flex !important;
	align-items: center;
	align-self: center;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* Desktop only: matches the .5em side-padding every other nav <a> has, so
   the Contact→Cart gap matches the gap between other items. The mobile
   drawer's <a> tags already carry their own matching padding, so adding
   this here too would double up and inset Cart/Dark from the left edge. */
.main-navigation .bwp-nav-actions {
	padding-left: 0.5em !important;
}

.bwp-nav-actions-row {
	display: flex !important;
	align-items: center;
	gap: 1em;
}

.bwp-mode-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	background: none !important;
	border: none !important;
	padding: 0 !important;
	cursor: pointer;
	color: rgba(236, 232, 224, 0.55);
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	line-height: 1;
	transition: color 0.2s ease;
	box-shadow: none !important;
	outline: none !important;
}

.bwp-mode-toggle:hover,
.bwp-mode-toggle:focus {
	color: #ece8e0 !important;
	background: none !important;
	outline: none !important;
	box-shadow: none !important;
}

.bwp-mode-toggle::after {
	content: attr(data-tooltip);
	position: absolute;
	top: calc(100% + 0.6rem);
	left: 50%;
	transform: translateX(-50%);
	font-family: var(--font-mono);
	font-size: 0.58rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	white-space: nowrap;
	color: var(--text);
	background: var(--surface);
	border: 0.5px solid var(--border);
	padding: 0.3rem 0.6rem;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.bwp-mode-toggle:hover::after {
	opacity: 1;
}

/* Mode toggle text label — shows target mode name */
.bwp-mode-label { display: block; font-size: inherit; line-height: 1; }

.bwp-mode-label::after {
	content: 'LIGHT';
	font-family: inherit;
	font-size: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
}

html.light-mode .bwp-mode-label::after,
body.light-mode .bwp-mode-label::after {
	content: 'DARK';
}

/* ─── Footer ─────────────────────────────────────────────────────────────── */

/*
 * Kadence paints the footer background on the inner container via inline
 * Customizer styles — target all three row wrappers plus the shell.
 */
#colophon,
#colophon.site-footer,
.site-bottom-footer-wrap .site-footer-row-container-inner,
.site-middle-footer-wrap .site-footer-row-container-inner,
.site-top-footer-wrap .site-footer-row-container-inner {
	background-color: var(--black) !important;
}

#colophon {
	border-top: 0.5px solid var(--border);
}

/* Business address line */
.footer-html .bwp-footer-address {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.1em;
	color: var(--muted);
	text-transform: uppercase;
	margin: 0 0 0.4rem;
}

/* Copyright line */
.footer-html .bwp-footer-copy {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.08em;
	color: var(--muted);
	margin: 0;
}

/* ─── Buttons ─────────────────────────────────────────────────────────────── */

.wp-block-button__link,
.button,
button,
input[type="submit"] {
	background-color: transparent;
	border: 1px solid var(--border);
	color: var(--text);
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.wp-block-button__link:hover,
.button:hover,
button:hover,
input[type="submit"]:hover {
	border-color: var(--accent);
	color: var(--accent);
	background-color: transparent;
}

/* ─── Forms ──────────────────────────────────────────────────────────────── */

input,
textarea,
select {
	background-color: var(--surface);
	border: 1px solid var(--border);
	color: var(--text);
	font-family: var(--font-serif);
}

input::placeholder,
textarea::placeholder {
	color: var(--muted);
}

input:focus,
textarea:focus,
select:focus {
	border-color: var(--accent);
	outline: none;
}

/* ─── Gallery / Images ───────────────────────────────────────────────────── */

.wp-block-image figcaption,
.gallery-caption {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	color: var(--muted);
	text-transform: uppercase;
}

/* ─── Homepage Template ──────────────────────────────────────────────────── */

/* Strip Kadence's default page padding on this template */
.bwp-home {
	margin: 0;
	padding: 0;
}

/* Hero
   ------------------------------------------------------------------ */

.bwp-hero {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 65vh;
	height: 65vh;
	background-color: var(--black);
	padding: clamp(5rem, 12vw, 10rem) clamp(1.5rem, 8vw, 8rem);
	overflow: hidden;
}

/* Hero background image */
.bwp-hero__bg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	z-index: 0;
	display: block;
	transition: opacity 0.3s ease;
}

/* Dark gradient overlay — keeps text readable */
.bwp-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(to bottom, rgba(8, 8, 8, 0.5), rgba(8, 8, 8, 0.3));
	pointer-events: none;
}

/* Subtle grain overlay */
.bwp-hero::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 2;
	background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");
	background-size: 256px 256px;
	pointer-events: none;
	opacity: 0.5;
}

.bwp-hero__inner {
	position: relative;
	z-index: 3;
	max-width: 900px;
}

.bwp-hero__eyebrow {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--muted);
	margin: 0 0 2.5rem;
}

.bwp-hero__headline {
	font-family: var(--font-serif);
	font-weight: 300;
	font-size: clamp(3.5rem, 9vw, 9rem);
	line-height: 1.0;
	letter-spacing: -0.01em;
	color: var(--text);
	margin: 0 0 2rem;
}

.bwp-hero__sub {
	font-family: var(--font-serif);
	font-size: clamp(1rem, 1.8vw, 1.25rem);
	font-weight: 300;
	line-height: 1.7;
	color: rgba(236, 232, 224, 0.8);
	max-width: 520px;
	margin: 0 0 3rem;
	text-shadow: 0 1px 8px rgba(0, 0, 0, 0.6);
}

.bwp-hero__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
}

/* Scroll indicator */
.bwp-hero__scroll {
	position: absolute;
	bottom: 2.5rem;
	left: clamp(1.5rem, 8vw, 8rem);
	z-index: 3;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.75rem;
}

.bwp-hero__scroll-line {
	display: block;
	width: 1px;
	height: 48px;
	background: linear-gradient(to bottom, var(--accent), transparent);
}

.bwp-hero__scroll-label {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--muted);
	writing-mode: vertical-rl;
}

/* Buttons
   ------------------------------------------------------------------ */

.bwp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	padding: 0.9rem 2rem;
	transition: color 0.2s ease, border-color 0.2s ease, background-color 0.2s ease;
	text-decoration: none;
}

.bwp-btn--primary {
	background-color: var(--accent);
	color: var(--black);
	border: 1px solid var(--accent);
}

.bwp-btn--primary:hover {
	background-color: transparent;
	color: var(--accent);
}

.bwp-btn--ghost {
	background-color: transparent;
	color: var(--text);
	border: 1px solid var(--border);
}

.bwp-btn--ghost:hover {
	border-color: var(--accent);
	color: var(--accent);
}

/* Feature Strip
   ------------------------------------------------------------------ */

.bwp-features {
	background-color: var(--off-black);
	border-top: 1px solid var(--border);
	padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 8vw, 8rem);
}

.bwp-features__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
}

.bwp-feature {
	padding: 2.5rem 2.5rem 2.5rem 0;
	border-right: 1px solid var(--border);
}

.bwp-feature:first-child {
	padding-left: 0;
}

.bwp-feature:last-child {
	border-right: none;
	padding-right: 0;
}

.bwp-feature + .bwp-feature {
	padding-left: 2.5rem;
}

.bwp-feature__number {
	display: block;
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.12em;
	color: var(--accent);
	margin-bottom: 1.25rem;
}

.bwp-feature__title {
	font-family: var(--font-serif);
	font-size: clamp(1.15rem, 1.6vw, 1.4rem);
	font-weight: 400;
	line-height: 1.3;
	color: var(--text);
	margin: 0 0 1rem;
}

.bwp-feature__body {
	font-family: var(--font-serif);
	font-size: 0.9rem;
	line-height: 1.75;
	color: var(--muted);
	margin: 0;
}

/* Section Header (shared pattern)
   ------------------------------------------------------------------ */

.bwp-section-header {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	margin-bottom: clamp(3rem, 5vw, 4.5rem);
}

.bwp-section-header__title {
	font-family: var(--font-serif);
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	font-weight: 300;
	color: var(--text);
	white-space: nowrap;
	margin: 0;
}

.bwp-section-header__rule {
	display: block;
	flex: 1;
	height: 0.5px;
	background-color: var(--border);
}

.bwp-section-header__label {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--muted);
	white-space: nowrap;
	margin: 0;
}

/* Services Section
   ------------------------------------------------------------------ */

.bwp-services {
	background-color: var(--black);
	padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 8vw, 8rem);
	border-top: 0.5px solid var(--border);
}

/* 3-column, 2-row grid with border lines between all cells */
.bwp-services__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 0.5px solid var(--border);
	border-left: 0.5px solid var(--border);
}

.bwp-service-card {
	display: flex;
	flex-direction: column;
	padding: 2.5rem;
	border-right: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
	background-color: transparent;
	transition: background-color 0.25s ease;
}

.bwp-service-card:hover {
	background-color: var(--surface);
}

.bwp-service-card__number {
	display: block;
	font-family: var(--font-mono);
	font-size: 0.62rem;
	letter-spacing: 0.14em;
	color: var(--accent);
	margin-bottom: 1.5rem;
}

.bwp-service-card__title {
	font-family: var(--font-serif);
	font-size: clamp(1.2rem, 1.8vw, 1.5rem);
	font-weight: 400;
	line-height: 1.25;
	color: var(--text);
	margin: 0 0 1rem;
}

.bwp-service-card__desc {
	font-family: var(--font-serif);
	font-size: 0.9rem;
	line-height: 1.75;
	color: var(--muted);
	margin: 0 0 auto;
	padding-bottom: 2rem;
}

.bwp-service-card__link {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.68rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--muted);
	text-decoration: none;
	transition: color 0.2s ease;
	margin-top: auto;
}

.bwp-service-card:hover .bwp-service-card__link,
.bwp-service-card__link:hover {
	color: var(--accent);
}

/* Shop Section
   ------------------------------------------------------------------ */

.bwp-shop {
	background-color: var(--off-black);
	padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 8vw, 8rem);
	border-top: 0.5px solid var(--border);
}

/* "View all products →" link variant of the section header label */
a.bwp-section-header__label--link {
	color: var(--muted);
	text-decoration: none;
	transition: color 0.2s ease;
}

a.bwp-section-header__label--link:hover {
	color: var(--accent);
}

/* 4-column product grid */
.bwp-shop__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.5rem;
}

/* Product card */
.bwp-product-card {
	display: flex;
	flex-direction: column;
	height: 100%; /* fill the grid cell so all cards in a row are equal height */
	background-color: var(--surface);
	border: 0.5px solid var(--border);
	overflow: hidden;
	transition: border-color 0.25s ease;
}

.bwp-product-card:hover {
	border-color: rgba(255, 255, 255, 0.18);
}

/* Image */
.bwp-product-card__image-link {
	display: block;
	overflow: hidden;
	flex-shrink: 0;
}

.bwp-product-card__image {
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background-color: var(--off-black);
}

.bwp-product-card__img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.4s ease;
}

.bwp-product-card:hover .bwp-product-card__img {
	transform: scale(1.03);
}

/* Body */
.bwp-product-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 1.25rem;
}

.bwp-product-card__name {
	font-family: var(--font-serif);
	font-size: 0.95rem !important;
	font-weight: 400;
	line-height: 1.3;
	min-height: calc(2 * 1.3em); /* 2 lines × line-height, in em so it scales with font-size */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	margin: 0 0 0.5rem;
}

.bwp-product-card__name a {
	color: var(--text);
	text-decoration: none;
}

.bwp-product-card__name a:hover {
	color: var(--accent);
}

.bwp-product-card__desc {
	display: none;
}

/* Footer: price + add to cart — sits at the bottom of the flex column */
.bwp-product-card__footer {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 0.75rem;
	padding-top: 1rem;
	border-top: 0.5px solid var(--border);
	flex-shrink: 0;
}

/* Price — WooCommerce outputs .price > .woocommerce-Price-amount */
.bwp-product-card__price,
.bwp-product-card__price .price,
.bwp-product-card__price .woocommerce-Price-amount {
	font-family: var(--font-mono);
	font-size: 0.8rem;
	letter-spacing: 0.06em;
	color: var(--accent);
}

/* WooCommerce del (strikethrough sale price) */
.bwp-product-card__price .price del,
.bwp-product-card__price .price del .woocommerce-Price-amount {
	color: var(--muted);
	font-size: 0.72rem;
}

/* Add to cart button — hidden until hover */
.bwp-product-card__atc {
	flex-shrink: 0;
	opacity: 0;
	transform: translateY(4px);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.bwp-product-card:hover .bwp-product-card__atc {
	opacity: 1;
	transform: translateY(0);
}

/* Override WooCommerce's button styling inside the card */
.bwp-product-card .button.add_to_cart_button,
.bwp-product-card .button.product_type_simple,
.bwp-product-card .button.product_type_variable,
.bwp-product-card a.bwp-atc-btn {
	display: inline-block;
	font-family: var(--font-mono) !important;
	font-size: 0.65rem !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	padding: 0.55rem 1rem !important;
	background-color: transparent !important;
	border: 0.5px solid var(--border) !important;
	color: var(--text) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	transition: border-color 0.2s ease, color 0.2s ease !important;
	white-space: nowrap;
	text-decoration: none;
}

.bwp-product-card .button.add_to_cart_button:hover,
.bwp-product-card .button.product_type_simple:hover,
.bwp-product-card .button.product_type_variable:hover,
.bwp-product-card a.bwp-atc-btn:hover {
	border-color: var(--accent) !important;
	color: var(--accent) !important;
	background-color: transparent !important;
}

/* ─── Homepage Responsive ────────────────────────────────────────────────── */

@media (max-width: 900px) {
	.bwp-features__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bwp-feature {
		padding: 2rem;
		border-right: none;
		border-bottom: 1px solid var(--border);
	}

	.bwp-feature:last-child,
	.bwp-feature:nth-child(3) {
		border-bottom: none;
	}

	.bwp-feature + .bwp-feature {
		padding-left: 2rem;
	}

	.bwp-feature:nth-child(odd) {
		border-right: 1px solid var(--border);
	}

	/* Services: 2 columns on tablet */
	.bwp-services__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	/* Shop: 2 columns on tablet */
	.bwp-shop__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bwp-section-header {
		flex-wrap: wrap;
		gap: 1rem;
	}
}

@media (max-width: 540px) {
	.bwp-features__grid {
		grid-template-columns: 1fr;
	}

	.bwp-feature,
	.bwp-feature:nth-child(odd) {
		border-right: none;
		border-bottom: 1px solid var(--border);
		padding: 2rem 0;
	}

	.bwp-feature:last-child {
		border-bottom: none;
	}

	.bwp-feature + .bwp-feature {
		padding-left: 0;
	}

	/* Services: single column on mobile */
	.bwp-services__grid {
		grid-template-columns: 1fr;
	}

	.bwp-service-card {
		padding: 2rem 1.5rem;
	}

	/* Shop: single column on mobile, show ATC always */
	.bwp-shop__grid {
		grid-template-columns: 1fr;
	}

	.bwp-product-card__atc {
		opacity: 1;
		transform: none;
	}

	.bwp-section-header__rule {
		display: none;
	}
}

/* ─── WooCommerce Shop Archive ───────────────────────────────────────────── */

/*
 * Scoped to body.post-type-archive-product (shop) and body.tax-product-cat
 * (category archives). Kadence injects background via dynamic inline CSS on
 * .content-bg and .entry-hero-container-inner — all overrides need !important.
 */

/* Page-level background */
body.post-type-archive-product,
body.tax-product_cat,
body.tax-product_tag {
	background-color: var(--black) !important;
}

/* ── Archive page header / entry-hero ──────────────────────────────────── */

body.post-type-archive-product .entry-hero-container-inner,
body.tax-product_cat .entry-hero-container-inner,
body.post-type-archive-product .entry-hero,
body.tax-product_cat .entry-hero {
	background-color: var(--black) !important;
	border-bottom: 0.5px solid var(--border);
}

body.post-type-archive-product .entry-header,
body.tax-product_cat .entry-header {
	background-color: transparent !important;
}

body.post-type-archive-product .entry-title,
body.tax-product_cat .entry-title {
	font-family: var(--font-serif);
	font-weight: 300;
	color: var(--text) !important;
	letter-spacing: 0.02em;
}

/* ── Breadcrumbs ───────────────────────────────────────────────────────── */

.woocommerce-breadcrumb {
	font-family: var(--font-mono) !important;
	font-size: 0.68rem !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
}

.woocommerce-breadcrumb a {
	color: var(--muted) !important;
	text-decoration: none !important;
}

.woocommerce-breadcrumb a:hover {
	color: var(--accent) !important;
}

/* ── Shop top row (count + sort) ───────────────────────────────────────── */

.kadence-shop-top-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem 0;
	border-bottom: 0.5px solid var(--border);
	margin-bottom: 2rem;
}

.bwp-shop-intro {
	font-family: var(--font-serif);
	font-size: 1rem;
	color: rgba(236, 232, 224, 0.55);
	margin: 0 0 2rem;
	font-weight: 300;
}

/* ── Shop category filter bar ───────────────────────────────────────────── */

.bwp-shop-filters {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
	max-width: 1100px;
	margin: 0 auto 2rem;
	padding: 0 2rem;
}

.bwp-filter {
	font-family: "DM Mono", "Courier New", monospace;
	font-size: 0.68rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(236, 232, 224, 0.45);
	background: transparent;
	border: 1px solid rgba(236, 232, 224, 0.15);
	padding: 0.5rem 1.25rem;
	cursor: pointer;
	transition: all 0.2s;
}

.bwp-filter:hover {
	color: #ece8e0 !important;
	border-color: rgba(236, 232, 224, 0.4) !important;
	background: transparent !important;
	outline: none !important;
	box-shadow: none !important;
}

.bwp-filter:focus {
	outline: none !important;
	box-shadow: none !important;
	border-color: rgba(236, 232, 224, 0.4) !important;
}

.bwp-filter.active {
	color: #c8b89a;
	border-color: #c8b89a;
}

p.woocommerce-result-count {
	font-family: var(--font-mono) !important;
	font-size: 0.68rem !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
	margin: 0 !important;
}

/* Sorting dropdown */
.woocommerce-ordering select.orderby,
.kadence-woo-ordering select {
	background-color: var(--surface) !important;
	border: 0.5px solid var(--border) !important;
	color: var(--text) !important;
	font-family: var(--font-mono) !important;
	font-size: 0.68rem !important;
	letter-spacing: 0.06em !important;
	padding: 0.5rem 2.25rem 0.5rem 0.85rem !important;
	border-radius: 0 !important;
	outline: none !important;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	/* Inline SVG chevron in --text colour */
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23ece8e0' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.75rem center !important;
	box-shadow: none !important;
}

.woocommerce-ordering select.orderby:focus,
.kadence-woo-ordering select:focus {
	border-color: var(--accent) !important;
	outline: none !important;
}

/* ── Content area and product list background ───────────────────────────── */

body.post-type-archive-product #primary,
body.tax-product_cat #primary,
body.post-type-archive-product .site-main,
body.tax-product_cat .site-main {
	background-color: var(--black) !important;
}

/* Kadence sets card backgrounds on .content-bg via dynamic CSS */
body.post-type-archive-product .content-bg,
body.tax-product_cat .content-bg,
body.post-type-archive-product li.product.content-bg,
body.tax-product_cat li.product.content-bg {
	background-color: var(--surface) !important;
}

/* Kadence product details inner panel */
body.post-type-archive-product .product-details.content-bg,
body.tax-product_cat .product-details.content-bg {
	background-color: var(--surface) !important;
}

/* ── Product grid — 6 columns ───────────────────────────────────────────── */

/*
 * Kadence outputs ul.products with a columns-4 class and sets its own grid
 * via the component. Override every plausible selector with !important.
 */
body.post-type-archive-product ul.products,
body.post-type-archive-product ul.products.columns-4,
body.post-type-archive-product ul.products.columns-3,
body.tax-product_cat ul.products,
body.tax-product_cat ul.products.columns-4,
body.tax-product_cat ul.products.columns-3,
.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(6, 1fr) !important;
	gap: 1rem !important;
}

/* ── Product cards ──────────────────────────────────────────────────────── */

body.post-type-archive-product ul.products li.product,
body.tax-product_cat ul.products li.product {
	background-color: var(--surface) !important;
	border: 0.5px solid var(--border) !important;
	border-radius: 0 !important;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: border-color 0.25s ease;
}

body.post-type-archive-product ul.products li.product:hover,
body.tax-product_cat ul.products li.product:hover {
	border-color: rgba(255, 255, 255, 0.18) !important;
}

/* Override Kadence blue/teal hover highlight on product cards */
.woocommerce ul.products li.product:hover,
.woocommerce ul.products li.product:focus,
.loop-entry:hover,
.loop-entry:focus {
	border-color: rgba(200, 184, 154, 0.3) !important;
	box-shadow: none !important;
	outline: none !important;
}

.loop-entry:hover,
.content-bg.loop-entry:hover {
	background: #1a1a1a !important;
}

.woocommerce ul.products li.product a:hover,
.woocommerce ul.products li.product a:focus {
	color: #ece8e0 !important;
}

/* Product image — 4:3 aspect ratio, object-fit cover, rounded corners */
body.post-type-archive-product ul.products li.product .woocommerce-loop-image-link,
body.tax-product_cat ul.products li.product .woocommerce-loop-image-link,
.woocommerce ul.products li.product .woocommerce-loop-image-link {
	display: block;
	overflow: hidden;
	flex-shrink: 0;
	background-color: var(--off-black);
	border-radius: 8px;
}

body.post-type-archive-product ul.products li.product .woocommerce-loop-image-link img,
body.tax-product_cat ul.products li.product .woocommerce-loop-image-link img,
.woocommerce ul.products li.product img {
	aspect-ratio: 4 / 3;
	object-fit: cover;
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.4s ease;
	border-radius: 8px;
}

body.post-type-archive-product ul.products li.product:hover .woocommerce-loop-image-link img,
body.tax-product_cat ul.products li.product:hover .woocommerce-loop-image-link img {
	transform: scale(1.03);
}

/* Product details panel */
body.post-type-archive-product ul.products li.product .product-details,
body.tax-product_cat ul.products li.product .product-details {
	display: flex;
	flex-direction: column;
	flex: 1;
	padding: 0.75rem !important;
	background-color: var(--surface) !important;
}

/* Product title — 2-line clamp, fixed height */
body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title,
body.tax-product_cat ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-serif) !important;
	font-size: 0.85rem !important;
	font-weight: 400 !important;
	line-height: 1.3 !important;
	min-height: calc(2 * 1.3em) !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 2 !important;
	-webkit-box-orient: vertical !important;
	overflow: hidden !important;
	color: var(--text) !important;
	margin: 0 0 0.5rem !important;
	padding: 0 !important;
}

.woocommerce-loop-product__title_ink {
	color: var(--text) !important;
	text-decoration: none !important;
}

.woocommerce-loop-product__title_ink:hover {
	color: var(--accent) !important;
}

/* Price */
body.post-type-archive-product ul.products li.product .price,
body.tax-product_cat ul.products li.product .price {
	font-family: var(--font-mono) !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.06em !important;
	color: var(--accent) !important;
	margin: auto 0 0 !important; /* pins price to bottom of flex column */
	padding-top: 0.5rem !important;
	border-top: 0.5px solid var(--border) !important;
	display: block;
}

body.post-type-archive-product ul.products li.product .price .woocommerce-Price-amount,
body.tax-product_cat ul.products li.product .price .woocommerce-Price-amount {
	color: var(--accent) !important;
}

body.post-type-archive-product ul.products li.product .price del,
body.post-type-archive-product ul.products li.product .price del .woocommerce-Price-amount,
body.tax-product_cat ul.products li.product .price del,
body.tax-product_cat ul.products li.product .price del .woocommerce-Price-amount {
	color: var(--muted) !important;
	font-size: 0.72rem !important;
}

/* ── Add to cart button ─────────────────────────────────────────────────── */

body.post-type-archive-product ul.products li.product .button,
body.post-type-archive-product ul.products li.product a.add_to_cart_button,
body.tax-product_cat ul.products li.product .button,
body.tax-product_cat ul.products li.product a.add_to_cart_button {
	display: inline-block !important;
	font-family: var(--font-mono) !important;
	font-size: 0.65rem !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	padding: 0.55rem 1rem !important;
	background-color: transparent !important;
	border: 0.5px solid var(--border) !important;
	color: var(--text) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	margin-top: 0.75rem !important;
	transition: border-color 0.2s ease, color 0.2s ease !important;
	text-decoration: none !important;
}

body.post-type-archive-product ul.products li.product .button:hover,
body.post-type-archive-product ul.products li.product a.add_to_cart_button:hover,
body.tax-product_cat ul.products li.product .button:hover,
body.tax-product_cat ul.products li.product a.add_to_cart_button:hover {
	background-color: transparent !important;
	border-color: var(--accent) !important;
	color: var(--accent) !important;
}

/* ─── Inner Page: Header / Hero Area ────────────────────────────────────────
 *
 * Kadence outputs a page-title hero above content on inner pages using the
 * classes below. All can receive a light background from Kadence's customizer
 * inline CSS, so we force them dark here.
 */

.entry-header,
.page-header,
.entry-hero-container-inner,
.wp-block-kadence-column,
.kadence-inner-column-inner {
	background-color: var(--black) !important;
	color: var(--text) !important;
}

/* Ensure the hero overlay doesn't introduce a tint */
.hero-section-overlay {
	background-color: transparent !important;
}

/* Page/archive titles within the hero */
.entry-title,
.page-title {
	font-family: var(--font-serif);
	font-weight: 300;
	color: var(--text) !important;
	letter-spacing: 0.02em;
}

/* ─── Inner Page: Content Area ───────────────────────────────────────────────
 *
 * WordPress/Kadence often wraps page content in a white-background box.
 * Strip all white backgrounds, box shadows, and border-radii from the
 * main content containers.
 */

.site-main .entry,
article.page,
.entry-content,
.entry-content-wrap,
.content-bg:not(.loop-entry):not(li.product) {
	background-color: transparent !important;
	background: transparent !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	color: var(--text) !important;
}

/* Paragraphs, headings, lists inside page content */
.entry-content p,
.entry-content li,
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6 {
	color: var(--text);
}

.entry-content a {
	color: var(--accent);
}

.entry-content a:hover {
	color: var(--text);
}

/* ─── WooCommerce: Fix 1 — Button Overlap ────────────────────────────────────
 *
 * Kadence's default archive button style uses position:absolute with opacity:0,
 * sliding it up on hover. This causes "Select options" to overlap the title.
 * Reset to normal in-flow positioning so the button always sits below the price.
 */

body.post-type-archive-product .product-action-wrap,
body.tax-product_cat .product-action-wrap,
.woocommerce ul.products .product-action-wrap,
.woocommerce ul.products.woo-archive-action-on-hover .product-action-wrap,
.woocommerce ul.products.woo-archive-action-on-hover li.product:hover .product-action-wrap,
.woocommerce ul.products.woo-archive-action-on-hover li.product:focus-within .product-action-wrap {
	position: static !important;
	bottom: auto !important;
	left: auto !important;
	right: auto !important;
	opacity: 1 !important;
	width: 100% !important;
	padding: 0 !important;
	margin-top: 0.5rem !important;
	transition: none !important;
}

/* ─── WooCommerce: Fix 2 — Shop Page Header Padding ─────────────────────────
 *
 * Reduce excessive top/bottom padding on the shop archive header area.
 */

.woocommerce-products-header,
body.post-type-archive-product .page-header,
body.post-type-archive-product .entry-header,
body.post-type-archive-product .entry-hero-container-inner,
.kadence-page-header {
	padding: 48px 0 16px !important;
	margin: 0 !important;
	min-height: auto !important;
}

.woocommerce-products-header,
.woocommerce-products-header h1,
.woocommerce-products-header .page-title {
	text-align: left !important;
}

.woocommerce-products-header__description:empty,
.woocommerce-products-header__description:not(:has(*)):not(:has(?)) {
	display: none !important;
}

.woocommerce-products-header__description {
	display: none !important;
}

.bwp-shop-header {
	padding: 48px 0 8px;
}

.bwp-shop-title {
	font-family: var(--font-serif);
	font-size: clamp(3.5rem, 9vw, 8rem);
	font-weight: 300;
	color: #ece8e0;
	text-align: left;
	margin: 0 0 1rem;
	line-height: 1.0;
	letter-spacing: -0.01em;
}

.bwp-shop-desc {
	color: rgba(236, 232, 224, 0.55);
}

/* ─── WooCommerce: Fix 3 — Single Product Dark Theme ────────────────────────
 *
 * Force the entire single product page to the dark palette.
 * Selectors are scoped to body.single-product to avoid bleeding into other pages.
 */

/* Page and content backgrounds */
body.single-product,
body.single-product .site-main,
body.single-product article,
body.single-product #primary,
body.single-product .content-area,
body.single-product .content-container,
body.woocommerce.single-product,
.woocommerce div.product,
.woocommerce-page.single-product .site-main,
body.single-product .content-bg,
body.single-product .entry-content-wrap,
/* Kadence single-product hero section — this is where the white bar comes from */
body.single-product .product-hero-section,
body.single-product .product-hero-section .entry-hero-container-inner,
body.single-product .entry-hero,
body.single-product .entry-hero-container-inner,
body.single-product .entry-hero .entry-header,
body.single-product .hero-section-overlay {
	background-color: var(--black) !important;
	background: var(--black) !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

/* Breadcrumb */
body.single-product .woocommerce-breadcrumb {
	font-family: var(--font-mono) !important;
	font-size: 0.68rem !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
}

body.single-product .woocommerce-breadcrumb a {
	color: var(--muted) !important;
	text-decoration: none !important;
}

body.single-product .woocommerce-breadcrumb a:hover {
	color: var(--accent) !important;
}

/* Product title */
body.single-product .product_title {
	font-family: var(--font-serif) !important;
	font-weight: 300 !important;
	color: var(--text) !important;
	letter-spacing: 0.02em !important;
}

/* Price */
body.single-product .woocommerce div.product p.price,
body.single-product .woocommerce div.product span.price {
	color: var(--accent) !important;
	font-family: var(--font-mono) !important;
	font-size: 1rem !important;
	letter-spacing: 0.06em !important;
}

body.single-product .woocommerce div.product p.price .woocommerce-Price-amount,
body.single-product .woocommerce div.product span.price .woocommerce-Price-amount {
	color: var(--accent) !important;
}

body.single-product .woocommerce div.product p.price del,
body.single-product .woocommerce div.product span.price del .woocommerce-Price-amount {
	color: var(--muted) !important;
}

/* Short description */
body.single-product .woocommerce-product-details__short-description,
body.single-product .woocommerce-product-details__short-description p {
	font-family: var(--font-serif) !important;
	color: var(--muted) !important;
	line-height: 1.75 !important;
}

/* Tabs navigation */
body.single-product .woocommerce-tabs .tabs {
	border-bottom: 0.5px solid var(--border) !important;
}

body.single-product .woocommerce-tabs .tabs li {
	background-color: transparent !important;
	border-color: var(--border) !important;
}

body.single-product .woocommerce-tabs .tabs li a {
	font-family: var(--font-mono) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
}

body.single-product .woocommerce-tabs .tabs li.active a,
body.single-product .woocommerce-tabs .tabs li a:hover {
	color: var(--text) !important;
	background-color: transparent !important;
}

/* Tab content panels */
body.single-product .woocommerce-Tabs-panel,
body.single-product #tab-description,
body.single-product #tab-reviews {
	background-color: transparent !important;
	color: var(--text) !important;
	border-color: var(--border) !important;
}

body.single-product .woocommerce-Tabs-panel h2 {
	font-family: var(--font-serif) !important;
	font-weight: 300 !important;
	color: var(--text) !important;
}

body.single-product .woocommerce-Tabs-panel p {
	color: var(--muted) !important;
	font-family: var(--font-serif) !important;
	line-height: 1.75 !important;
}

/* Quantity input */
body.single-product .quantity input.qty {
	background-color: var(--surface) !important;
	border: 0.5px solid var(--border) !important;
	color: var(--text) !important;
	font-family: var(--font-mono) !important;
	font-size: 0.85rem !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	text-align: center;
}

body.single-product .quantity input.qty:focus {
	border-color: var(--accent) !important;
	outline: none !important;
}

/* Variation dropdowns */
body.single-product .variations select,
body.single-product table.variations select {
	background-color: var(--surface) !important;
	border: 0.5px solid var(--border) !important;
	color: var(--text) !important;
	font-family: var(--font-mono) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.06em !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0.5rem 2rem 0.5rem 0.75rem !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23ece8e0' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 0.75rem center !important;
}

body.single-product .variations select:focus {
	border-color: var(--accent) !important;
	outline: none !important;
}

body.single-product .variations label,
body.single-product table.variations td.label {
	font-family: var(--font-mono) !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
}

/* Add to cart button — bwp-btn--primary style */
body.single-product .single_add_to_cart_button,
body.single-product button.single_add_to_cart_button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
	background-color: var(--accent) !important;
	color: var(--black) !important;
	border: 1px solid var(--accent) !important;
	font-family: var(--font-mono) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0.9rem 2rem !important;
	transition: background-color 0.2s ease, color 0.2s ease !important;
}

body.single-product .single_add_to_cart_button:hover,
body.single-product button.single_add_to_cart_button:hover {
	background-color: transparent !important;
	color: var(--accent) !important;
	border-color: var(--accent) !important;
}

/* Product gallery background */
body.single-product .woocommerce-product-gallery,
body.single-product .woocommerce-product-gallery__image {
	background-color: var(--off-black) !important;
}

/* Related products heading and grid */
body.single-product .related.products > h2,
body.single-product .upsells.products > h2 {
	font-family: var(--font-serif) !important;
	font-weight: 300 !important;
	color: var(--text) !important;
}

body.single-product .related.products ul.products li.product,
body.single-product .upsells.products ul.products li.product {
	background-color: var(--surface) !important;
	border: 0.5px solid var(--border) !important;
	border-radius: 0 !important;
}

body.single-product .related.products ul.products li.product .woocommerce-loop-product__title,
body.single-product .upsells.products ul.products li.product .woocommerce-loop-product__title {
	color: var(--text) !important;
}

/* ─── Admin Bar: Sticky Header Offset ───────────────────────────────────────
 *
 * When the WP admin bar is visible, push the sticky header down by 32px
 * so it sits below the bar instead of behind it.
 */

body.admin-bar .site-header,
body.admin-bar header.site-header {
	top: 32px !important;
}

@media screen and (max-width: 782px) {
	/* Admin bar collapses to 46px on mobile */
	body.admin-bar .site-header,
	body.admin-bar header.site-header {
		top: 46px !important;
	}
}

/* ─── Single Product: Image Backgrounds ─────────────────────────────────────
 *
 * Remove white backgrounds from the product gallery and individual images.
 */

.woocommerce-product-gallery {
	background: var(--black) !important;
}

.woocommerce div.product div.images img,
.woocommerce div.product div.images .woocommerce-product-gallery__image {
	background: var(--surface) !important;
}

/* ─── WooCommerce Breadcrumb Colours ─────────────────────────────────────── */

.woocommerce-breadcrumb,
.woocommerce-breadcrumb a,
.woocommerce-breadcrumb span,
nav.woocommerce-breadcrumb,
.woocommerce nav.woocommerce-breadcrumb,
.woocommerce nav.woocommerce-breadcrumb a,
.woocommerce .woocommerce-breadcrumb,
.woocommerce .woocommerce-breadcrumb a {
	color: rgba(236, 232, 224, 0.4) !important;
	background: transparent !important;
	background-color: transparent !important;
}

.woocommerce-breadcrumb a:hover,
.woocommerce nav.woocommerce-breadcrumb a:hover {
	color: var(--accent) !important;
}

/* ─── Single Product: SKU / Category / Tag Meta ─────────────────────────────*/

.woocommerce div.product .product_meta,
.woocommerce div.product .product_meta a,
.woocommerce div.product .product_meta span {
	color: var(--muted) !important;
	font-family: var(--font-mono) !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.08em !important;
}

.woocommerce div.product .product_meta a:hover {
	color: var(--accent) !important;
}

/* ─── Single Product: Tab Typography & Borders ───────────────────────────── */

/* Tab nav items */
.woocommerce div.product .woocommerce-tabs ul.tabs li,
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	color: var(--muted) !important;
	background: transparent !important;
	background-color: transparent !important;
	border-color: var(--border) !important;
	font-family: var(--font-mono) !important;
	font-size: 0.7rem !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	color: var(--text) !important;
	background: transparent !important;
	background-color: transparent !important;
	border-bottom-color: transparent !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
	color: var(--text) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	border-bottom-color: var(--border) !important;
}

/* Tab panel backgrounds */
.woocommerce div.product .woocommerce-tabs .panel {
	background: transparent !important;
	border-color: var(--border) !important;
}

/* Description tab content */
.woocommerce-Tabs-panel--description,
.woocommerce-Tabs-panel--description p,
.woocommerce-Tabs-panel--description li {
	font-family: var(--font-serif) !important;
	font-size: 13px !important;
	font-weight: 300 !important;
	color: rgba(236, 232, 224, 0.5) !important;
	line-height: 1.8 !important;
}

/* ─── Single Product: Hide Redundant Tab Headings ───────────────────────────
 *
 * WooCommerce renders an h2 inside each tab panel that duplicates the tab
 * label ("Additional information", "Description"). Hide it.
 */

.woocommerce-Tabs-panel--additional_information h2,
.panel.woocommerce-Tabs-panel h2 {
	display: none;
}

/* ─── Global Dark Background Sweep ──────────────────────────────────────────
 *
 * Catch-all for the white/light bar that appears between the sticky nav and
 * the page content on single product and inner pages. Kadence and WooCommerce
 * both inject light backgrounds on these containers via dynamic/inline CSS.
 */

.site-content,
#content,
.content-area,
.content-container,
.woocommerce-notices-wrapper,
.woocommerce-page .site-content,
.woocommerce-page #content,
.woocommerce-page .content-area,
body.single-product .site-content,
body.single-product #content,
body.page .site-content,
body.page #content,
body.page .content-area,
.entry.type-page,
.entry.type-product,
.page-header {
	background-color: var(--black) !important;
	background: var(--black) !important;
}

/* ─── About Page Template ────────────────────────────────────────────────── */

.bwp-about {
	margin: 0;
	padding: 0;
}

/* Hero
   ------------------------------------------------------------------ */

.bwp-about-hero {
	background-color: var(--black);
	padding: 40px clamp(1.5rem, 8vw, 8rem) clamp(4rem, 8vw, 7rem);
	border-bottom: 0.5px solid var(--border);
}

.bwp-about-hero__inner {
	max-width: 760px;
}

.bwp-about-hero__heading {
	font-family: var(--font-serif);
	font-size: clamp(3.5rem, 9vw, 8rem);
	font-weight: 300;
	line-height: 1.0;
	letter-spacing: -0.01em;
	color: var(--text);
	margin: 1rem 0 1.5rem;
}

.bwp-about-hero__sub {
	font-family: var(--font-serif);
	font-size: clamp(1rem, 1.8vw, 1.2rem);
	font-weight: 300;
	color: var(--muted);
	margin: 0;
	line-height: 1.6;
}

/* ── Disclosure / accordion (details-summary) ────────────────────────────── */

.bwp-disclosure {
	margin-top: 1.75rem;
	border-top: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
}

.bwp-disclosure__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 0;
	cursor: pointer;
	list-style: none;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--text);
	transition: color 0.2s ease;
}

.bwp-disclosure__summary::-webkit-details-marker {
	display: none;
}

.bwp-disclosure__summary::after {
	content: '+';
	flex-shrink: 0;
	font-family: var(--font-mono);
	font-size: 1rem;
	color: var(--muted);
}

.bwp-disclosure[open] .bwp-disclosure__summary::after {
	content: '\2212';
}

.bwp-disclosure__summary:hover {
	color: var(--accent);
}

.bwp-disclosure__content {
	padding: 0 0 1.5rem;
	font-family: var(--font-serif);
	font-size: 0.92rem;
	line-height: 1.75;
	color: var(--muted);
}

.bwp-disclosure__content p {
	margin: 0 0 1rem;
}

.bwp-disclosure__content h4 {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 500;
	color: var(--text);
	margin: 1.25rem 0 0.4rem;
}

.bwp-disclosure__content h4:first-child {
	margin-top: 0;
}

.bwp-disclosure__content em {
	font-family: var(--font-mono);
	font-style: normal;
	font-size: 0.85em;
	color: var(--accent);
}

/* ── Shop page hero ─────────────────────────────────────────────────────── */

.bwp-shop-hero {
	padding: 5rem 2rem 3rem;
	max-width: 1100px;
	margin: 0 auto;
}

.bwp-shop-hero h1 {
	font-family: var(--font-serif);
	font-size: clamp(2.8rem, 6vw, 5rem);
	font-weight: 300;
	color: #ece8e0;
	margin: 0 0 1rem;
	text-align: left;
}

.bwp-shop-hero p {
	font-family: var(--font-serif);
	font-size: 1rem;
	color: rgba(236, 232, 224, 0.55);
	margin: 0;
}

/* Story: Stats + Text
   ------------------------------------------------------------------ */

.bwp-about-story {
	background-color: var(--black);
	padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
}

.bwp-about-story__grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: clamp(3rem, 6vw, 7rem);
	align-items: start;
}

/* Stat block */
.bwp-about-story__stats {
	display: flex;
	flex-direction: column;
	gap: 3rem;
	position: sticky;
	top: calc(var(--header-h, 64px) + 2rem);
}

.bwp-stat__number {
	display: block;
	font-family: var(--font-serif);
	font-size: clamp(3.5rem, 7vw, 6rem);
	font-weight: 300;
	line-height: 1;
	color: var(--text);
	letter-spacing: -0.02em;
}

.bwp-stat__label {
	display: block;
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted);
	margin-top: 0.5rem;
}

.bwp-stat--secondary .bwp-stat__number {
	font-size: clamp(2rem, 4vw, 3.5rem);
	color: var(--accent);
}

/* Body text */
.bwp-about-story__text {
	padding-top: 0.5rem;
}

.bwp-about-story__lead {
	font-family: var(--font-serif);
	font-size: clamp(1.1rem, 2vw, 1.4rem);
	font-weight: 300;
	line-height: 1.6;
	color: var(--text);
	margin: 0 0 2rem;
}

.bwp-about-story__text p:not(.bwp-about-story__lead) {
	font-family: var(--font-serif);
	font-size: 1rem;
	line-height: 1.85;
	color: var(--muted);
	margin: 0 0 1.25rem;
}

/* Expertise
   ------------------------------------------------------------------ */

.bwp-about-expertise {
	background-color: var(--off-black);
	padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 8vw, 8rem);
	border-top: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
}

.bwp-expertise__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 0.5px solid var(--border);
	border-left: 0.5px solid var(--border);
}

.bwp-expertise-card {
	padding: 2.5rem;
	border-right: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
}

.bwp-expertise-card__number {
	display: block;
	font-family: var(--font-mono);
	font-size: 0.62rem;
	letter-spacing: 0.14em;
	color: var(--accent);
	margin-bottom: 1.5rem;
}

.bwp-expertise-card__title {
	font-family: var(--font-serif);
	font-size: clamp(1.3rem, 2vw, 1.75rem);
	font-weight: 300;
	line-height: 1.2;
	color: var(--text);
	margin: 0 0 1.25rem;
}

.bwp-expertise-card__body {
	font-family: var(--font-serif);
	font-size: 0.9rem;
	line-height: 1.8;
	color: var(--muted);
	margin: 0;
}

/* Visit Us
   ------------------------------------------------------------------ */

.bwp-about-visit {
	background-color: var(--black);
	padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 8vw, 8rem);
}

.bwp-visit__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	border-top: 0.5px solid var(--border);
	border-left: 0.5px solid var(--border);
}

.bwp-visit-block {
	padding: 2.5rem;
	border-right: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
}

.bwp-visit-block__label {
	display: block;
	font-family: var(--font-mono);
	font-size: 0.62rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 1.25rem;
}

.bwp-visit-block__detail {
	font-family: var(--font-serif);
	font-size: 0.95rem;
	line-height: 1.75;
	color: var(--text);
	margin: 0;
	font-style: normal;
}

.bwp-visit-block__detail a {
	color: var(--text);
	text-decoration: none;
	transition: color 0.2s ease;
}

.bwp-visit-block__detail a:hover {
	color: var(--accent);
}

/* Opening hours DL */
.bwp-visit-block__hours {
	margin: 0;
}

.bwp-visit-block__hours {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.bwp-hours-row {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.bwp-hours-row dt {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--muted);
	font-weight: 400;
}

.bwp-hours-row dd {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.06em;
	color: var(--text);
	margin: 0;
	padding-left: 0.5rem;
}

/* ─── Contact Page Template ──────────────────────────────────────────────── */

/* Two-column layout: details left, form right */
.bwp-contact-body {
	background-color: var(--black);
	padding: clamp(4rem, 8vw, 7rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
}

.bwp-contact-body__grid {
	display: grid;
	grid-template-columns: 1fr 2fr;
	gap: clamp(3rem, 6vw, 7rem);
	align-items: start;
}

.bwp-contact-details {
	display: flex;
	flex-direction: column;
	gap: 0;
}

/* Strip the about-page grid padding/borders; use compact 16px gaps */
.bwp-contact-details .bwp-visit-block {
	padding: 0 0 16px;
	border-right: none;
	border-bottom: 0.5px solid var(--border);
	margin-bottom: 16px;
}

.bwp-contact-details .bwp-visit-block:last-child {
	border-bottom: none;
	padding-bottom: 0;
	margin-bottom: 0;
}

.bwp-contact-details .bwp-visit-block__label {
	margin-bottom: 0.5rem;
}

/* Contact body: reduced top padding to close the gap below the hero */
.bwp-contact .bwp-contact-body {
	padding-top: 32px !important;
}

/* Form notices */
.bwp-form-notice {
	padding: 1rem 1.25rem;
	border: 0.5px solid var(--border);
	margin-bottom: 2rem;
	font-family: var(--font-mono);
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	line-height: 1.6;
}

.bwp-form-notice--success {
	border-color: var(--accent);
	color: var(--accent);
}

.bwp-form-notice--error {
	border-color: rgba(220, 80, 80, 0.5);
	color: rgba(220, 80, 80, 0.9);
}

.bwp-form-notice p {
	margin: 0;
	color: inherit;
}

.bwp-form-notice a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Contact form layout */
.bwp-contact-form {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.bwp-form-row {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.bwp-form-row--half {
	flex-direction: row;
	gap: 1.25rem;
}

.bwp-form-row--half .bwp-form-field {
	flex: 1;
	min-width: 0;
}

.bwp-form-row--submit {
	flex-direction: row;
	padding-top: 0.5rem;
}

/* Form fields */
.bwp-form-field {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.bwp-form-field label {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
}

.bwp-form-required {
	color: var(--accent);
}

.bwp-contact-form input[type="text"],
.bwp-contact-form input[type="email"],
.bwp-contact-form input[type="tel"],
.bwp-contact-form input[type="number"],
.bwp-contact-form textarea {
	background-color: var(--surface) !important;
	border: 0.5px solid var(--border) !important;
	color: var(--text) !important;
	font-family: var(--font-serif) !important;
	font-size: 0.95rem !important;
	padding: 0.75rem 1rem !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	width: 100%;
	transition: border-color 0.2s ease;
}

.bwp-contact-form input:focus,
.bwp-contact-form textarea:focus {
	border-color: var(--accent) !important;
}

.bwp-contact-form input::placeholder,
.bwp-contact-form textarea::placeholder {
	color: var(--muted) !important;
}

.bwp-contact-form textarea {
	resize: vertical;
	min-height: 160px;
}

/* Subject dropdown */
.bwp-select-wrap {
	position: relative;
}

.bwp-select-wrap::after {
	content: '';
	position: absolute;
	right: 1rem;
	top: 50%;
	transform: translateY(-50%);
	width: 10px;
	height: 6px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23ece8e0' d='M0 0l5 6 5-6z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-size: contain;
	pointer-events: none;
}

.bwp-contact-form select {
	background-color: var(--surface) !important;
	border: 0.5px solid var(--border) !important;
	color: var(--text) !important;
	font-family: var(--font-mono) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.06em !important;
	padding: 0.75rem 2.5rem 0.75rem 1rem !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	width: 100%;
	cursor: pointer;
}

.bwp-contact-form select:focus {
	border-color: var(--accent) !important;
}

/* Map */
.bwp-map {
	border-top: 0.5px solid var(--border);
	line-height: 0;
}

.bwp-map__filter-wrap {
	filter: grayscale(1) invert(0.92) hue-rotate(180deg);
}

body.light-mode .bwp-map__filter-wrap {
	filter: grayscale(1);
}

.bwp-map iframe {
	display: block;
	width: 100%;
	height: 400px;
	border: 0;
}

/* ─── About Page Responsive ──────────────────────────────────────────────── */

@media (max-width: 900px) {
	.bwp-about-story__grid {
		grid-template-columns: 1fr;
		gap: 3rem;
	}

	.bwp-about-story__stats {
		position: static;
		flex-direction: row;
		gap: 3rem;
	}

	.bwp-expertise__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.bwp-visit__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 540px) {
	.bwp-expertise__grid,
	.bwp-visit__grid {
		grid-template-columns: 1fr;
	}

	.bwp-expertise-card,
	.bwp-visit-block {
		padding: 2rem 1.5rem;
	}
}

/* ─── Services Page Template ─────────────────────────────────────────────── */

.bwp-services-page {
	margin: 0;
	padding: 0;
}

/* Group wrapper */
.bwp-svc-group {
	background-color: var(--black);
	padding: 32px clamp(1.5rem, 8vw, 8rem);
}

/* Group header: label only — rule line removed */
.bwp-svc-group__header {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	margin-bottom: 2rem;
}

.bwp-svc-group__label {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
	white-space: nowrap;
}

.bwp-svc-group__rule {
	display: block;
	flex: 1;
	height: 0.5px;
	background-color: var(--border);
}

/* Service card grids */
.bwp-svc-grid {
	display: grid;
	gap: 0;
	border-top: 0.5px solid var(--border);
	border-left: 0.5px solid var(--border);
}

.bwp-svc-grid--4 {
	grid-template-columns: repeat(4, 1fr);
}

.bwp-svc-grid--3 {
	grid-template-columns: repeat(3, 1fr);
}

.bwp-svc-grid--2 {
	grid-template-columns: repeat(2, 1fr);
}

.bwp-svc-group--compact-bottom {
	padding-bottom: 1.5rem;
}

/* Service card */
.bwp-svc-card {
	display: flex;
	flex-direction: column;
	height: 100%; /* fill grid cell so all cards in a row are equal height */
	padding: 2rem;
	border-right: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
	transition: background-color 0.25s ease;
}

.bwp-svc-card:hover {
	background-color: var(--surface);
}

.bwp-svc-card__number {
	display: block;
	font-family: var(--font-mono);
	font-size: 0.62rem;
	letter-spacing: 0.14em;
	color: var(--accent);
	margin-bottom: 1rem;
}

.bwp-svc-card__title,
.bwp-svc-card h3,
.bwp-svc-title {
	font-family: var(--font-serif);
	font-size: clamp(1.05rem, 1.5vw, 1.3rem);
	font-weight: 400;
	line-height: 1.2;
	min-height: 2.4em; /* 2 × line-height, reserves space for short single-line titles */
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: var(--text);
	margin: 0 0 0.85rem;
}

.bwp-svc-card__desc {
	font-family: var(--font-serif);
	font-size: 0.85rem;
	line-height: 1.75;
	color: var(--muted);
	flex: 1; /* grows to fill space, pinning price + button to the bottom */
	margin: 0;
	padding-bottom: 1rem;
}

.bwp-svc-card__price {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	color: var(--accent);
	margin: 0 0 1rem;
}

.bwp-svc-card__link {
	display: inline-block;
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--muted);
	text-decoration: none;
	transition: color 0.2s ease;
	margin-top: 0;
}

.bwp-svc-card:hover .bwp-svc-card__link,
.bwp-svc-card__link:hover {
	color: var(--accent);
}

/* Services page responsive */
@media (max-width: 900px) {
	.bwp-svc-grid--4,
	.bwp-svc-grid--3 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 600px) {
	.bwp-svc-grid--4,
	.bwp-svc-grid--3 {
		grid-template-columns: 1fr;
	}

	.bwp-svc-card {
		padding: 1.5rem;
	}
}

/* ─── Mobile Navigation: Hamburger Button ───────────────────────────────────
 *
 * Kadence's mobile toggle inherits blue from the global palette. Override to
 * match the dark theme regardless of screen size.
 */

.menu-toggle,
.kadence-menu-toggle,
button.menu-toggle,
.mobile-menu-toggle,
#mobile-header .menu-toggle,
.header-mobile-toggle-wrap .menu-toggle {
	color: var(--text) !important;
	background: transparent !important;
	background-color: transparent !important;
	border-color: var(--border) !important;
	box-shadow: none !important;
}

.menu-toggle:hover,
.kadence-menu-toggle:hover,
button.menu-toggle:hover {
	color: var(--accent) !important;
	border-color: var(--accent) !important;
	background: transparent !important;
}

/* ─── Mobile Responsiveness (≤ 768px) ───────────────────────────────────────
 *
 * Consolidated mobile breakpoint covering homepage, about, contact, WooCommerce
 * archive, nav, and footer. Supplements the existing 900px/540px blocks.
 */

/* Prevent horizontal overflow site-wide */
html,
body {
	overflow-x: hidden;
	max-width: 100%;
}

* {
	box-sizing: border-box;
}

/* ─── Tablet (769px–1366px, covers iPad portrait & landscape): card title/blurb pairs were sized for desktop
   and read too small on tablet. Bring each blurb up to match its sibling
   title's current size, and give the title the same point increase, so the
   hierarchy is preserved but both read larger. Covers every card-grid
   component that follows the title+description pattern. ─────────────────── */
@media (min-width: 769px) and (max-width: 1366px) {

	/* Home: Services grid */
	.bwp-service-card__desc {
		font-size: 17.6px !important;
	}
	.bwp-service-card__title {
		font-size: 21.2px !important;
	}

	/* Home: Feature strip */
	.bwp-feature__body {
		font-size: 18.4px !important;
	}
	.bwp-feature__title {
		font-size: 22.4px !important;
	}

	/* About: Expertise grid */
	.bwp-expertise-card__body {
		font-size: 20.8px !important;
	}
	.bwp-expertise-card__title {
		font-size: 27.2px !important;
	}

	/* Fine Art & Canvas: Papers & Media grid */
	.bwp-paper-card__desc {
		font-size: 16px !important;
	}
	.bwp-paper-card__name {
		font-size: 18.4px !important;
	}

	/* Service pages: Add-ons grid */
	.bwp-addon-card__desc {
		font-size: 17.6px !important;
	}
	.bwp-addon-card__title {
		font-size: 21.6px !important;
	}

	/* Services listing page: service card grid */
	.bwp-svc-card__desc {
		font-size: 16.8px !important;
	}
	.bwp-svc-card__title,
	.bwp-svc-card h3,
	.bwp-svc-title {
		font-size: 20px !important;
	}

	/* Narrative body copy — "From our lab in Stepney..." and every page using
	   this same plain paragraph style (intro sections, long-form content,
	   callouts, shop hero, disclosure). Same ~25% increase as the card blurbs
	   above, applied uniformly since there's no sibling title to match here. */
	.bwp-about-story__text p:not(.bwp-about-story__lead),
	.bwp-service-callout__text,
	.bwp-shop-hero p {
		font-size: 20px !important;
	}
	.bwp-service-intro__body,
	.bwp-service-intro__body p,
	.bwp-service-content__body,
	.bwp-service-content__body p {
		font-size: 19px !important;
	}
	.bwp-disclosure__content,
	.bwp-disclosure__content p {
		font-size: 18.5px !important;
	}

	/* ── Everything else, site-wide: same ~20% tablet increase ───────────────
	   Card title/class selectors above are more specific than the bare tag
	   selectors here, so Services, Add-ons, and the About "What We Do Best"
	   (Expertise) cards keep the sizes already set above and are unaffected. */
	body {
		font-size: 19px !important;
	}

	h1, .entry-title, .page-title, .archive-title, h1.wp-block-heading {
		font-size: 40px !important;
	}
	h2 { font-size: 28px !important; }
	h3 { font-size: 24px !important; }
	h4 { font-size: 22px !important; }
	h5 { font-size: 20px !important; }
	h6 { font-size: 19px !important; }

	p, li, td, th, label, blockquote {
		font-size: inherit !important;
	}

	/* Hero headings are h1s with their own large clamp() sizing (no
	   !important), so the blanket h1 rule above was winning on !important
	   alone and shrinking them to 40px. Restore them explicitly, larger. */
	.bwp-hero__headline,
	.bwp-about-hero__heading,
	.bwp-service-hero__heading {
		font-size: 80px !important;
	}

	/* Desktop nav bar (visible 1025–1366px within this tablet range) —
	   .bwp-nav-actions-row carries cart/toggle along automatically. */
	.main-navigation .primary-menu-container > ul > li.menu-item > a,
	.main-navigation .primary-menu-container > ul > li.menu-item > a:visited,
	.main-navigation .bwp-nav-actions-row {
		font-size: 13px !important;
	}

	/* Mobile drawer nav (visible 769–1024px within this tablet range) */
	.mobile-navigation ul li:not(.menu-item-has-children) > a,
	.mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap,
	.mobile-navigation .bwp-nav-actions-row {
		font-size: 13px !important;
	}

	/* Desktop nav dropdown sub-items (Services/Store flyout menus) —
	   Kadence sets a fixed width:200px on the link itself, so the larger
	   tablet font needs a wider box too or text runs off the edge. */
	.main-navigation .primary-menu-container ul .sub-menu li a {
		font-size: 0.75rem !important;
		width: 260px !important;
	}
	.main-navigation .primary-menu-container ul .sub-menu {
		min-width: 260px;
	}

	/* Mobile drawer nested sub-items (expanded Services/Store sections) */
	.mobile-navigation ul ul li a {
		font-size: 12px !important;
	}

	/* Buttons */
	.bwp-btn {
		font-size: 13px !important;
	}

	/* Footer */
	.bwp-footer-address,
	.bwp-footer-copy,
	.bwp-footer-phone {
		font-size: 12.5px !important;
	}

	/* Contact form */
	.bwp-form-field label {
		font-size: 12.5px !important;
	}
	.bwp-contact-form input[type="text"],
	.bwp-contact-form input[type="email"],
	.bwp-contact-form input[type="tel"],
	.bwp-contact-form input[type="number"],
	.bwp-contact-form textarea {
		font-size: 18px !important;
	}
}

@media (max-width: 768px) {

	/* ── Base font sizes: +15% across the board ─────────────────────────── */
	/* Kadence outputs all sizes in px, so each element needs an explicit
	   override — html rem-scaling alone won't touch px-based values.      */
	body {
		font-size: 21px !important; /* 18px × 1.15 */
		line-height: 1.75 !important;
	}

	/* Kadence defaults: 32/28/24/22/20/18 px → ×1.15, h1 further ×1.4 */
	h1,
	.entry-title,
	.page-title,
	.archive-title,
	h1.wp-block-heading,
	.kb-adv-heading[data-level="1"] {
		font-size: 52px !important; /* 32px base × 1.15 × 1.4 */
	}
	h3 { font-size: 28px !important; }
	h4 { font-size: 25px !important; }
	h5 { font-size: 23px !important; }
	h6 { font-size: 21px !important; }

	p, li, td, th, label, blockquote {
		font-size: inherit !important;
	}

	/* ── Service hero heading ────────────────────────────────────────────── */
	.bwp-service-hero__heading {
		font-size: clamp(2.4rem, 8vw, 3.5rem) !important;
	}

	/* ── Section headings (Sizes & Pricing, How to Order, etc.) ─────────── */
	.bwp-service-content__heading,
	h2 {
		font-size: 2rem !important;
	}

	/* ── DM Mono pricing note — cap on mobile ───────────────────────────── */
	.bwp-pricing-note,
	.bwp-service-content p[style*="font-family"] {
		font-size: 0.85rem !important;
		line-height: 1.6 !important;
	}

	/* ── Footer — prevent wrapping ──────────────────────────────────────── */
	.site-footer,
	footer {
		font-size: 0.8rem !important;
	}

	/* ── Service page body copy ──────────────────────────────────────────── */
	.bwp-service-intro__body p,
	.bwp-service-content__body p,
	.bwp-service-steps__content p,
	.bwp-service-list__item {
		font-size: 1.2rem !important;
		line-height: 1.8 !important;
	}

	/* ── Service hero subheading ─────────────────────────────────────────── */
	.bwp-service-hero__subheading {
		font-size: 1.265rem !important;
	}

	/* ── Global: reduce horizontal section padding ─────────────────────── */
	.bwp-hero,
	.bwp-features,
	.bwp-services,
	.bwp-shop,
	.bwp-about-hero,
	.bwp-about-story,
	.bwp-about-expertise,
	.bwp-about-visit,
	.bwp-contact-body,
	body.post-type-archive-product .kadence-shop-top-row,
	body.post-type-archive-product #primary {
		padding-left: 1.25rem !important;
		padding-right: 1.25rem !important;
	}

	/* ── Feature strip: tighten top padding on mobile ───────────────────── */
	.bwp-features {
		padding-top: 0.75rem !important;
	}

	/* ── Hero: reduce heading, clamp height, stack buttons ─────────────── */
	/* height: 65vh causes iOS to zoom the hero image as the URL bar
	   shows/hides during scroll — swap to a stable auto height instead */
	.bwp-hero {
		height: auto !important;
		min-height: 0 !important;
		justify-content: flex-start !important;
		padding-top: 3rem !important;
		padding-bottom: 4rem !important;
		background-image: none !important;
		background-attachment: scroll !important;
	}

	/* Force GPU compositing on the hero img to prevent iOS repaint jump */
	.bwp-hero__bg {
		position: absolute !important;
		top: 0 !important;
		left: 0 !important;
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		z-index: 0 !important;
		transform: translateZ(0);
		will-change: transform;
	}

	.bwp-hero__inner {
		position: relative !important;
		z-index: 3 !important;
	}

	.bwp-hero__headline,
	.bwp-about-hero__heading,
	.bwp-service-hero__heading {
		font-size: 5.5rem !important;
	}

	.bwp-hero__sub {
		font-size: 24px !important; /* 21px (mobile body size) × 1.15 */
	}

	.bwp-hero__actions {
		flex-direction: row;
		align-items: center;
		flex-wrap: wrap;
		gap: 0.75rem;
	}

	.bwp-btn {
		font-size: 13.5px;
	}

	.bwp-hero__scroll {
		display: none;
	}

	/* ── Feature strip: single column so text never clips ──────────────── */
	.bwp-features__grid {
		grid-template-columns: 1fr !important;
	}

	/* ── Services: single column ────────────────────────────────────────── */
	.bwp-services__grid {
		grid-template-columns: 1fr !important;
	}

	.bwp-service-card {
		border-right: none !important;
		border-bottom: 0.5px solid var(--border) !important;
	}

	.bwp-service-card:last-child {
		border-bottom: none !important;
	}

	/* ── Homepage shop: 2 columns ───────────────────────────────────────── */
	.bwp-shop__grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	.bwp-product-card__atc {
		opacity: 1 !important;
		transform: none !important;
	}

	/* ── WooCommerce archive: 2 columns ─────────────────────────────────── */
	body.post-type-archive-product ul.products,
	body.post-type-archive-product ul.products.columns-4,
	body.post-type-archive-product ul.products.columns-6,
	body.tax-product_cat ul.products,
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 0.75rem !important;
	}

	body.post-type-archive-product ul.products li.product .product-details,
	body.tax-product_cat ul.products li.product .product-details {
		padding: 0.6rem !important;
	}

	/* ── About: stats inline row, full-width on small ───────────────────── */
	.bwp-about-story__grid {
		grid-template-columns: 1fr !important;
	}

	.bwp-about-story__stats {
		position: static;
		flex-direction: row;
		gap: 2rem;
	}

	/* ── Contact: stack to single column ────────────────────────────────── */
	.bwp-contact-body__grid {
		grid-template-columns: 1fr !important;
		gap: 2.5rem;
	}

	/* ── Contact form: stack half-rows ──────────────────────────────────── */
	.bwp-form-row--half {
		flex-direction: column;
		gap: 1.25rem;
	}

	/* ── Feature strip: prevent text overflow in 2-col grid ────────────── */
	.bwp-feature__title,
	.bwp-feature__body,
	.bwp-feature p {
		overflow: hidden;
		word-wrap: break-word;
		word-break: break-word;
		overflow-wrap: break-word;
	}

	.bwp-features__grid {
		width: 100%;
	}

	.bwp-feature {
		min-width: 0; /* prevent grid blowout */
	}

	/* ── Homepage shop: hide description, stack footer, full-width button ── */
	.bwp-product-card__desc {
		display: none;
	}

	.bwp-product-card__footer {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		gap: 8px !important;
		padding-top: 8px !important;
		margin-top: 8px !important;
	}

	.bwp-product-card__price {
		margin: 0 !important;
		padding-top: 0 !important;
		border-top: none !important;
	}

	.bwp-product-card .button,
	.bwp-product-card .button.add_to_cart_button,
	.bwp-product-card .button.product_type_simple,
	.bwp-product-card .button.product_type_variable,
	.bwp-product-card a.bwp-atc-btn {
		width: 100% !important;
		text-align: center !important;
		display: block !important;
		padding: 10px 8px !important;
		font-size: 10px !important;
		margin-top: 0 !important;
	}

	/* Hide add-to-cart arrow icon on mobile */
	.button.add_to_cart_button::after,
	.added_to_cart::after,
	.bwp-product-card .button::after {
		display: none !important;
	}

	/* ── WooCommerce archive: consistent price and title spacing ────────── */
	.woocommerce ul.products li.product .price {
		display: block !important;
		margin: 8px 0 4px !important;
		padding: 0 !important;
		border-top: none !important;
	}

	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		margin-bottom: 8px !important;
		padding-bottom: 0 !important;
	}

	/* ── WooCommerce archive: single-line buttons, no arrow ─────────────── */
	.woocommerce ul.products li.product .button,
	.woocommerce ul.products li.product .add_to_cart_button,
	.woocommerce ul.products li.product .button.product_type_variable {
		white-space: nowrap !important;
		font-size: 9px !important;
		letter-spacing: 0.08em !important;
		padding: 8px 4px !important;
		width: 100% !important;
		text-align: center !important;
		box-sizing: border-box !important;
	}

	.woocommerce ul.products li.product .button::after,
	.woocommerce ul.products li.product .add_to_cart_button::after {
		display: none !important;
	}

	/* ── Nav: prevent text overflow ─────────────────────────────────────── */
	.main-navigation .primary-menu-container > ul > li.menu-item > a {
		font-size: 10px !important;
		letter-spacing: 0.08em !important;
	}

	/* ── Footer: centre-align ────────────────────────────────────────────── */
	.footer-html,
	.footer-html .bwp-footer-address,
	.footer-html .bwp-footer-copy,
	.site-footer-row,
	.site-bottom-footer-wrap .site-footer-row-container-inner {
		text-align: center !important;
	}

	/* ── Footer: phone and Policies link each on their own line on mobile ─ */
	.bwp-footer-sep { display: none; }
	.bwp-footer-phone { display: block; white-space: nowrap; }
	.bwp-footer-policies { display: block; margin-top: 0.4em; }

	/* ── Section header: stack vertically, label below title ───────────── */
	.bwp-section-header {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.3rem;
	}

	.bwp-section-header__title {
		white-space: normal;
	}

	.bwp-section-header__rule {
		display: none;
	}

	.bwp-section-header__label {
		font-size: 1rem !important;
	}

	/* ── Kadence mobile drawer: background + text ───────────────────────── */
	#mobile-drawer .drawer-inner,
	#mobile-drawer.popup-drawer-layout-fullwidth .drawer-inner,
	.popup-drawer#mobile-drawer .drawer-inner {
		background: #080808 !important;
		color: rgba(236, 232, 224, 0.8) !important;
	}

	/* Slice-animation variant fills the background with .pop-portion-bg spans */
	#mobile-drawer.popup-drawer-animation-slice .pop-portion-bg {
		background: #080808 !important;
	}

	/* Drawer close button — inherits color from .drawer-inner */
	#mobile-drawer .drawer-header .drawer-toggle {
		color: rgba(236, 232, 224, 0.8) !important;
	}

	/* ── Mobile nav links: bump all to 0.8 opacity ───────────────────────── */
	.popup-drawer .mobile-navigation ul li:not(.menu-item-has-children) > a,
	.popup-drawer .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap {
		color: rgba(236, 232, 224, 0.8) !important;
	}

	.popup-drawer .mobile-navigation ul li.current-menu-item > a,
	.popup-drawer .mobile-navigation ul li.current-page-item > a,
	.popup-drawer .mobile-navigation ul li.current_page_item > a {
		color: #ece8e0 !important;
	}

	/* ── Nav actions row: cart, then toggle — same size, spacing and dividers as Home/Services/Store etc. ── */
	.mobile-navigation .bwp-nav-actions-row {
		display: flex;
		flex-direction: column;
		gap: 0;
		align-items: flex-start;
		width: 100%;
	}

	.mobile-navigation .bwp-nav-actions {
		margin-top: 0;
	}

	.mobile-navigation .bwp-cart-link,
	.mobile-navigation .bwp-mode-toggle {
		color: rgba(236, 232, 224, 0.8) !important;
		font-family: var(--font-mono) !important;
		font-size: 13px !important;
		letter-spacing: 0.12em !important;
		text-transform: uppercase !important;
		width: 100% !important;
		justify-content: flex-start;
		padding: 1em 0.5em !important;
		border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	}

	.mobile-navigation .bwp-cart-text,
	.mobile-navigation .bwp-mode-label::after {
		font-size: 13px;
		letter-spacing: 0.12em;
	}

	/* Disable mini-cart dropdown in mobile nav (not touch-usable) */
	.mobile-navigation .bwp-mini-cart {
		display: none !important;
	}
}

/* Hero CTA buttons: stack one per row on phone widths instead of wrapping
   side-by-side. Button width/padding/font-size are untouched — only the
   container's flex-direction and alignment change. */
@media (max-width: 600px) {
	.bwp-hero__actions {
		flex-direction: column;
		align-items: flex-start;
		flex-wrap: nowrap;
		gap: 0.75rem;
	}
}

@media (max-width: 480px) {

	/* ── Hero: tighter heading on very small screens ────────────────────── */
	.bwp-hero__headline,
	.bwp-about-hero__heading,
	.bwp-service-hero__heading {
		font-size: 5.5rem !important;
	}

	/* ── About: stats stack vertically ─────────────────────────────────── */
	.bwp-about-story__stats {
		flex-direction: column;
		gap: 1.5rem;
	}

	/* ── Expertise + visit grids: single column ─────────────────────────── */
	.bwp-expertise__grid,
	.bwp-visit__grid {
		grid-template-columns: 1fr !important;
	}

	/* ── Map: slightly shorter on small screens ─────────────────────────── */
	.bwp-map iframe {
		height: 280px;
	}

	/* ── WooCommerce archive: keep 2 columns, tighter padding ───────────── */
	body.post-type-archive-product ul.products li.product .woocommerce-loop-product__title {
		font-size: 0.75rem !important;
	}

	body.post-type-archive-product ul.products li.product .price {
		font-size: 0.65rem !important;
	}
}

/* ─── Fine Art & Canvas Service Page ─────────────────────────────────────── */

.bwp-fac {
	margin: 0;
	padding: 0;
}

/* Papers & Media section */
.bwp-fac-papers {
	background-color: var(--black);
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
}

/* 3-column paper grid with border-grid pattern */
.bwp-paper-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 0.5px solid var(--border);
	border-left: 0.5px solid var(--border);
}

.bwp-paper-card {
	display: flex;
	flex-direction: column;
	padding: 2rem;
	border-right: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
	transition: background-color 0.25s ease;
}

.bwp-paper-card:hover {
	background-color: var(--surface);
}

.bwp-paper-card__name {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.3;
	color: var(--text);
	margin: 0 0 0.75rem;
}

.bwp-paper-card__specs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-bottom: 1rem;
}

.bwp-paper-card__spec {
	font-family: var(--font-mono);
	font-size: 0.62rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--accent);
	background-color: var(--off-black);
	padding: 0.2rem 0.5rem;
	white-space: nowrap;
}

.bwp-paper-card__spec--finish {
	color: var(--accent);
	background-color: transparent;
	padding-left: 0;
}

.bwp-paper-card__desc {
	font-family: var(--font-serif);
	font-size: 0.85rem;
	line-height: 1.75;
	color: var(--muted);
	margin: 0;
}

/* Sizes & Ordering section */
.bwp-fac-ordering {
	background-color: var(--off-black);
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
}

.bwp-fac-ordering__inner {
	max-width: 680px;
}

.bwp-fac-ordering__text {
	font-family: var(--font-serif);
	font-size: 1rem;
	line-height: 1.8;
	color: var(--muted);
	margin: 0 0 2rem;
}

/* Responsive */
@media (max-width: 900px) {
	.bwp-paper-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 540px) {
	.bwp-paper-grid {
		grid-template-columns: 1fr;
	}

	.bwp-paper-card {
		padding: 1.5rem;
	}
}

/* ─── Film Develop & Scan Service Page ───────────────────────────────────── */

.bwp-fds {
	margin: 0;
	padding: 0;
}

/* Intro: pull quote + body text */
.bwp-fds-intro {
	background-color: var(--black);
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
}

.bwp-fds-intro__grid {
	display: grid;
	grid-template-columns: 1fr 1.6fr;
	gap: clamp(3rem, 6vw, 6rem);
	align-items: start;
}

.bwp-pullquote {
	font-family: var(--font-serif);
	font-size: clamp(1.2rem, 2.2vw, 1.7rem);
	font-weight: 300;
	font-style: italic;
	line-height: 1.4;
	color: var(--text);
	margin: 0;
	padding: 0;
	border: none;
}

.bwp-fds-intro__body p {
	font-family: var(--font-serif);
	font-size: 1rem;
	line-height: 1.8;
	color: var(--muted);
	margin: 0 0 1rem;
}

.bwp-fds-intro__body p:last-child {
	margin-bottom: 0;
}

/* Processing schedule list */
.bwp-fds-schedule {
	list-style: none;
	margin: 1.5rem 0 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
}

.bwp-fds-schedule li {
	display: flex;
	gap: 1rem;
	align-items: baseline;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.06em;
}

.bwp-fds-schedule__type {
	color: var(--accent);
	text-transform: uppercase;
	white-space: nowrap;
}

.bwp-fds-schedule__days {
	color: var(--muted);
}

/* Differentiator callout */
.bwp-fds-callout {
	background-color: var(--surface);
	border-top: 1px solid var(--accent);
	border-bottom: 1px solid var(--accent);
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
}

.bwp-fds-callout__inner {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
}

.bwp-fds-callout__heading {
	font-family: var(--font-serif);
	font-size: clamp(1.6rem, 3.5vw, 2.2rem);
	font-weight: 300;
	line-height: 1.2;
	color: var(--text);
	margin: 0 0 1.25rem;
	letter-spacing: 0.01em;
}

.bwp-fds-callout__body {
	font-family: var(--font-serif);
	font-size: clamp(0.95rem, 1.6vw, 1.1rem);
	line-height: 1.8;
	color: var(--muted);
	margin: 0;
}

/* Pricing tables */
.bwp-fds-pricing {
	background-color: var(--off-black);
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
}

.bwp-fds-pricing__intro {
	font-family: var(--font-serif);
	font-size: 1rem;
	line-height: 1.8;
	color: var(--muted);
	margin: 0 0 2rem;
}

.bwp-pricing-tables {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border-top: 0.5px solid var(--border);
	border-left: 0.5px solid var(--border);
	margin-bottom: 2rem;
}

.bwp-pricing-table {
	border-right: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
	padding: 1.75rem;
}

.bwp-pricing-table__format {
	font-family: var(--font-serif);
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--text);
	margin: 0 0 1.25rem;
	padding-bottom: 0.75rem;
	border-bottom: 0.5px solid var(--border);
}

/* Optical size correction for short strings like "120" */
.bwp-pricing-table__format--optical {
	font-size: 1.35rem;
}

.bwp-pricing-table table {
	width: 100%;
	border-collapse: collapse;
}

.bwp-pricing-table td {
	font-family: var(--font-serif);
	font-size: 0.88rem;
	line-height: 1.5;
	color: var(--muted);
	padding: 0.5rem 0;
	border-bottom: 0.5px solid var(--border);
	background: transparent;
}

.bwp-pricing-table tr:last-child td {
	border-bottom: none;
}

.bwp-pricing-table__price {
	text-align: right;
	font-family: var(--font-mono) !important;
	font-size: 0.82rem !important;
	letter-spacing: 0.06em;
	color: var(--accent) !important;
	white-space: nowrap;
}

.bwp-pricing-table__price--na {
	color: var(--muted) !important;
}

/* Scan resolution SVG diagram */
.bwp-res-diagram {
	margin: 0 0 2rem;
	padding: 0;
	border: 0.5px solid var(--border);
	line-height: 0;
}

.bwp-res-diagram img,
.bwp-res-diagram svg {
	width: 100%;
	height: auto;
	display: block;
}

/* Light mode overrides — target inline SVG elements by class */
body.light-mode .bwp-res-diagram .bwp-res-bg {
	fill: #f5f3ef;
}

body.light-mode .bwp-res-diagram .bwp-res-title,
body.light-mode .bwp-res-diagram .bwp-res-name {
	fill: #1a1a1a;
	fill-opacity: 1;
}

body.light-mode .bwp-res-diagram .bwp-res-subtitle,
body.light-mode .bwp-res-diagram .bwp-res-corner-label,
body.light-mode .bwp-res-diagram .bwp-res-px {
	fill: rgba(26, 26, 26, 0.55);
	fill-opacity: 1;
}

body.light-mode .bwp-res-diagram .bwp-res-note {
	fill: rgba(26, 26, 26, 0.4);
	fill-opacity: 1;
}

body.light-mode .bwp-res-diagram .bwp-res-mp {
	fill: #8a6f4e;
	fill-opacity: 1;
}

body.light-mode .bwp-res-diagram .bwp-res-rect--pro {
	fill: rgba(26, 26, 26, 0.04);
	fill-opacity: 1;
	stroke: rgba(26, 26, 26, 0.2);
	stroke-opacity: 1;
}

body.light-mode .bwp-res-diagram .bwp-res-rect--med {
	fill: rgba(26, 26, 26, 0.07);
	fill-opacity: 1;
	stroke: rgba(26, 26, 26, 0.2);
	stroke-opacity: 1;
}

body.light-mode .bwp-res-diagram .bwp-res-rect--low {
	fill: rgba(26, 26, 26, 0.12);
	fill-opacity: 1;
	stroke: rgba(26, 26, 26, 0.2);
	stroke-opacity: 1;
}

/* Resolution legend */
.bwp-res-legend {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	margin: 0;
	border-top: 0.5px solid var(--border);
	border-left: 0.5px solid var(--border);
}

.bwp-res-legend__item {
	padding: 1rem 1.5rem;
	border-right: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
}

.bwp-res-legend__item dt {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--accent);
	margin-bottom: 0.3rem;
}

.bwp-res-legend__item dd {
	font-family: var(--font-serif);
	font-size: 0.82rem;
	color: var(--muted);
	margin: 0;
	line-height: 1.5;
}

/* Add-ons */
.bwp-fds-addons {
	background-color: var(--black);
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
}

.bwp-addon-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border-top: 0.5px solid var(--border);
	border-left: 0.5px solid var(--border);
}

.bwp-addon-card {
	padding: 2rem;
	border-right: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
	display: flex;
	flex-direction: column;
}

.bwp-addon-card__title {
	font-family: var(--font-serif);
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--text);
	margin: 0 0 0.75rem;
}

.bwp-addon-card__desc {
	font-family: var(--font-serif);
	font-size: 0.85rem;
	line-height: 1.75;
	color: var(--muted);
	margin: 0 0 auto;
	padding-bottom: 1rem;
}

.bwp-addon-card__footer {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
}

.bwp-addon-card__price {
	font-family: var(--font-mono);
	font-size: 1rem;
	letter-spacing: 0.06em;
	color: var(--accent);
	margin: 0;
}

.bwp-addon-card__price span {
	font-size: 0.7rem;
	color: var(--muted);
	letter-spacing: 0.08em;
}

/* How to order */
.bwp-fds-how {
	background-color: var(--off-black);
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
}

.bwp-how-steps {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}

.bwp-how-step {
	display: grid;
	grid-template-columns: 4rem 1fr;
	gap: 1.5rem;
	align-items: start;
	padding: 1.75rem 0;
	border-bottom: 0.5px solid var(--border);
}

.bwp-how-step:last-child {
	border-bottom: none;
}

.bwp-how-step__number {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.14em;
	color: var(--accent);
	padding-top: 0.25rem;
}

.bwp-how-step__title {
	font-family: var(--font-serif);
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--text);
	margin: 0 0 0.5rem;
}

.bwp-how-step__desc {
	font-family: var(--font-serif);
	font-size: 0.9rem;
	line-height: 1.75;
	color: var(--muted);
	margin: 0;
}

.bwp-how-step__desc strong {
	color: var(--text);
	font-weight: 400;
}

/* Order CTA */
.bwp-fds-cta {
	background-color: var(--black);
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
	display: flex;
	justify-content: center;
}

/* Large button variant */
.bwp-btn--large {
	font-size: 0.8rem !important;
	padding: 1.1rem 3rem !important;
	letter-spacing: 0.16em !important;
}

/* ─── FDS Page Responsive ────────────────────────────────────────────────── */

@media (max-width: 900px) {
	.bwp-fds-intro__grid {
		grid-template-columns: 1fr;
		gap: 2rem;
	}

	.bwp-pricing-tables,
	.bwp-res-legend,
	.bwp-addon-grid {
		grid-template-columns: 1fr;
	}

	.bwp-pricing-table {
		border-bottom: 0.5px solid var(--border);
	}
}

@media (max-width: 540px) {
	.bwp-how-step {
		grid-template-columns: 2.5rem 1fr;
		gap: 1rem;
	}
}

/* ─── Service Page Templates ─────────────────────────────────────────────── */

.bwp-service-page {
	background-color: var(--black);
	color: var(--text);
}

/* ─── Hero ──────────────────────────────────────────────────────────────── */

.bwp-service-hero {
	padding: clamp(4rem, 10vw, 8rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
	background-color: var(--black);
}

.bwp-service-hero__eyebrow {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 0 0 2rem;
}

.bwp-service-hero__title {
	font-family: var(--font-serif);
	font-size: clamp(2.5rem, 6vw, 5rem);
	font-weight: 300;
	letter-spacing: 0.02em;
	color: var(--text);
	margin: 0 0 1.5rem;
	line-height: 1.1;
	max-width: 800px;
}

.bwp-service-hero__subtitle {
	font-family: var(--font-serif);
	font-size: clamp(1rem, 2vw, 1.25rem);
	font-weight: 300;
	color: var(--muted);
	margin: 0 0 2.5rem;
	max-width: 560px;
	line-height: 1.75;
}

.bwp-service-hero__meta {
	display: flex;
	gap: 2rem;
	align-items: center;
	flex-wrap: wrap;
}

.bwp-service-hero__tag {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--muted);
	border: 0.5px solid var(--border);
	padding: 0.35rem 0.75rem;
}

/* ─── Intro ─────────────────────────────────────────────────────────────── */

.bwp-service-intro {
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
	background-color: var(--off-black);
}

.bwp-service-intro__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}

.bwp-service-intro__lead {
	font-family: var(--font-serif);
	font-size: clamp(1.25rem, 2.5vw, 1.75rem);
	font-weight: 300;
	color: var(--text);
	line-height: 1.5;
	margin: 0;
}

.bwp-service-intro__body {
	font-family: var(--font-serif);
	font-size: 0.95rem;
	line-height: 1.8;
	color: var(--muted);
	margin: 0;
}

.bwp-service-intro__body p {
	margin: 0 0 1em;
}

.bwp-service-intro__body p:last-child {
	margin-bottom: 0;
}

/* ─── Callout ────────────────────────────────────────────────────────────── */

.bwp-service-callout {
	padding: clamp(2.5rem, 5vw, 4rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
	background-color: var(--surface);
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 2rem;
	align-items: center;
}

.bwp-service-callout__icon {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.14em;
	color: var(--accent);
	border: 0.5px solid var(--border);
	width: 3rem;
	height: 3rem;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.bwp-service-callout__text {
	font-family: "Cormorant Garamond", Georgia, serif;
	font-size: 1rem;
	line-height: 1.75;
	color: #c8b89a;
	margin: 0;
}

.bwp-service-callout__text,
.bwp-service-callout__text * {
	font-family: "Cormorant Garamond", Georgia, serif !important;
	color: #c8b89a !important;
}

.bwp-service-callout__label {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
	display: block;
	margin-bottom: 0.5rem;
}

/* ─── Content ────────────────────────────────────────────────────────────── */

.bwp-service-content {
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
	background-color: var(--black);
}

.bwp-service-content__eyebrow {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 0 0 1.5rem;
}

.bwp-service-content__title {
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 300;
	color: var(--text);
	margin: 0 0 2rem;
	letter-spacing: 0.03em;
}

.bwp-service-content__body {
	font-family: var(--font-serif);
	font-size: 0.95rem;
	line-height: 1.8;
	color: var(--muted);
	max-width: 720px;
}

.bwp-service-content__body p {
	margin: 0 0 1.25em;
}

.bwp-service-content__body p:last-child {
	margin-bottom: 0;
}

.bwp-service-content__body h3 {
	font-family: var(--font-serif);
	font-size: 1.05rem;
	font-weight: 500;
	color: var(--text);
	margin: 1.75rem 0 0.6em;
}

.bwp-service-content__body h3:first-child {
	margin-top: 0;
}

/* Policies page — jump navigation */
.bwp-policies-jump {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(1rem, 3vw, 2rem);
	padding: 1.5rem clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
	background-color: var(--off-black);
}

.bwp-policies-jump__link {
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--muted);
	text-decoration: none;
	transition: color 0.2s ease;
}

.bwp-policies-jump__link:hover {
	color: var(--accent);
}

/* ─── Cards ──────────────────────────────────────────────────────────────── */

.bwp-service-cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border-top: 0.5px solid var(--border);
	border-left: 0.5px solid var(--border);
}

.bwp-service-card {
	padding: 2rem;
	border-right: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
	display: flex;
	flex-direction: column;
	background-color: var(--black);
	transition: background-color 0.2s ease;
}

.bwp-service-card:hover {
	background-color: var(--surface);
}

.bwp-service-card__number {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.14em;
	color: var(--accent);
	margin: 0 0 1.25rem;
}

.bwp-service-card__title {
	font-family: var(--font-serif);
	font-size: 1.1rem;
	font-weight: 400;
	color: var(--text);
	margin: 0 0 0.75rem;
	letter-spacing: 0.02em;
}

.bwp-service-card__desc {
	font-family: var(--font-serif);
	font-size: 0.875rem;
	line-height: 1.75;
	color: var(--muted);
	margin: 0 0 auto;
	padding-bottom: 1.25rem;
}

.bwp-service-card__price {
	font-family: var(--font-mono);
	font-size: 1rem;
	letter-spacing: 0.06em;
	color: var(--accent);
	margin: 0 0 0.25rem;
}

.bwp-service-card__price span {
	font-size: 0.7rem;
	color: var(--muted);
	letter-spacing: 0.08em;
}

.bwp-service-card__tag {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
	border: 0.5px solid var(--border);
	padding: 0.3rem 0.6rem;
	align-self: flex-start;
	margin-top: 0.75rem;
}

/* ─── List ───────────────────────────────────────────────────────────────── */

.bwp-service-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 0.5px solid var(--border);
}

.bwp-service-list__item {
	display: grid;
	grid-template-columns: 2rem 1fr;
	gap: 1rem;
	align-items: baseline;
	padding: 1.25rem 0;
	border-bottom: 0.5px solid var(--border);
	font-family: var(--font-serif);
	font-size: 0.95rem;
	line-height: 1.65;
	color: var(--muted);
}

.bwp-service-list__item::before {
	content: '—';
	font-family: var(--font-mono);
	font-size: 0.7rem;
	color: var(--accent);
	letter-spacing: 0.08em;
}

.bwp-service-list--pricing .bwp-service-list__item {
	grid-template-columns: 1fr auto;
}

.bwp-service-list--pricing .bwp-service-list__item::before {
	display: none;
}

.bwp-price-row__label {
	font-family: var(--font-serif);
	font-size: 0.95rem;
	color: var(--text);
}

.bwp-price-row__price {
	font-family: var(--font-mono);
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	color: var(--accent);
	white-space: nowrap;
}

/* ─── Pricing Table Simple ───────────────────────────────────────────────── */

.bwp-pricing-table-simple {
	border: 0.5px solid var(--border);
	background-color: var(--off-black);
}

.bwp-pricing-table-simple__header {
	padding: 1.5rem 2rem;
	border-bottom: 0.5px solid var(--border);
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.bwp-pricing-table-simple__title {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 0;
}

.bwp-pricing-table-simple__note {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.1em;
	color: var(--muted);
	margin: 0;
}

.bwp-pricing-table-simple__body {
	padding: 0;
}

.bwp-pricing-table-simple__row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 2rem;
	align-items: baseline;
	padding: 1rem 2rem;
	border-bottom: 0.5px solid var(--border);
}

.bwp-pricing-table-simple__row:last-child {
	border-bottom: none;
}

.bwp-pricing-table-simple__label {
	font-family: var(--font-serif);
	font-size: 0.9rem;
	color: var(--text);
	margin: 0;
}

.bwp-pricing-table-simple__price {
	font-family: var(--font-mono);
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	color: var(--accent);
	white-space: nowrap;
	margin: 0;
}

/* ─── Next Steps ─────────────────────────────────────────────────────────── */

.bwp-service-next-steps {
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
	border-bottom: 0.5px solid var(--border);
	background-color: var(--off-black);
}

/* Kadence inline CSS wins the body font-family cascade — force serif here */
.bwp-service-steps__content p {
	font-family: var(--font-serif) !important;
}

.bwp-service-next-steps__eyebrow {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 0 0 1.5rem;
}

.bwp-service-next-steps__title {
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	font-weight: 300;
	color: var(--text);
	margin: 0 0 3rem;
	letter-spacing: 0.03em;
}

.bwp-service-next-steps__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border-top: 0.5px solid var(--border);
	border-left: 0.5px solid var(--border);
}

.bwp-service-next-steps__step {
	padding: 2rem;
	border-right: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
}

.bwp-service-next-steps__step-number {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.14em;
	color: var(--accent);
	margin: 0 0 1rem;
}

.bwp-service-next-steps__step-title {
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 400;
	color: var(--text);
	margin: 0 0 0.5rem;
}

.bwp-service-next-steps__step-desc {
	font-family: var(--font-serif);
	font-size: 0.875rem;
	line-height: 1.75;
	color: var(--muted);
	margin: 0;
}

/* ─── Related services cross-links ──────────────────────────────────────── */

.bwp-related-services {
	background-color: var(--off-black);
	padding: clamp(2rem, 4vw, 3rem) clamp(1.5rem, 8vw, 8rem);
	border-top: 0.5px solid var(--border);
	border-bottom: 0.5px solid var(--border);
}

.bwp-related-links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 2.5rem;
	margin-top: 1.5rem;
}

.bwp-related-link {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--accent);
	text-decoration: none;
}

.bwp-related-link:hover {
	color: var(--text);
}

/* ─── Geo page cross-location links ─────────────────────────────────────── */

.bwp-geo-related {
	background-color: var(--off-black);
	padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1.5rem, 8vw, 8rem);
	border-top: 0.5px solid var(--border);
}

.bwp-geo-related__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.4rem 1.5rem;
}

.bwp-geo-related__label {
	font-family: var(--font-mono);
	font-size: 0.68rem;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--muted);
	white-space: nowrap;
}

.bwp-geo-related__link {
	font-family: var(--font-mono);
	font-size: 0.68rem;
	letter-spacing: 0.09em;
	text-transform: uppercase;
	color: var(--accent);
	text-decoration: none;
}

.bwp-geo-related__link:hover {
	color: var(--text);
}

/* ─── CTA ────────────────────────────────────────────────────────────────── */

.bwp-service-cta {
	padding: clamp(3rem, 6vw, 5rem) clamp(1.5rem, 8vw, 8rem);
	background-color: var(--black);
	border-bottom: 0.5px solid var(--border);
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	gap: 1.5rem;
}

.bwp-service-cta__eyebrow {
	font-family: var(--font-mono);
	font-size: 0.65rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--accent);
	margin: 0;
}

.bwp-service-cta__title {
	font-family: var(--font-serif);
	font-size: clamp(1.5rem, 3vw, 2.5rem);
	font-weight: 300;
	color: var(--text);
	margin: 0;
	max-width: 560px;
	line-height: 1.3;
}

.bwp-service-cta__desc {
	font-family: var(--font-serif);
	font-size: 0.95rem;
	line-height: 1.75;
	color: var(--muted);
	margin: 0;
	max-width: 480px;
}

.bwp-service-cta__actions {
	display: flex;
	gap: 1rem;
	flex-wrap: wrap;
	justify-content: center;
	margin-top: 0.5rem;
}

/* ─── Service Page Responsive ────────────────────────────────────────────── */

@media (max-width: 768px) {
	.bwp-service-intro__grid,
	.bwp-service-next-steps__grid {
		grid-template-columns: 1fr;
	}

	.bwp-service-cards {
		grid-template-columns: 1fr 1fr;
	}

	.bwp-service-callout {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.bwp-service-callout__icon {
		display: none;
	}

	.bwp-pricing-table-simple__row {
		grid-template-columns: 1fr;
		gap: 0.25rem;
	}

	/* ── FDS: processing schedule — stacked with indented days ──────────── */
	.bwp-fds-schedule li {
		flex-direction: column;
		gap: 0.2rem;
	}

	.bwp-fds-schedule__type {
		white-space: normal;
		font-size: 0.7rem !important;
	}

	.bwp-fds-schedule__days {
		font-size: 0.7rem !important;
		white-space: normal;
		word-break: break-word;
		padding-left: 1rem;
	}

	/* ── FDS + service callout: left-align on mobile ─────────────────────── */
	.bwp-fds-callout__inner {
		text-align: left !important;
	}

	.bwp-service-callout__text {
		text-align: left !important;
	}
}

@media (max-width: 480px) {
	.bwp-service-cards {
		grid-template-columns: 1fr;
	}

	.bwp-service-hero__meta {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.75rem;
	}

	.bwp-service-cta__actions {
		flex-direction: column;
		align-items: center;
	}

	.bwp-pricing-table-simple__header {
		flex-direction: column;
		gap: 0.5rem;
	}
}

/* ═══════════════════════════════════════════════════════════════════════════
   WOOCOMMERCE CART & CHECKOUT — BLOCKS
   Both pages use the WooCommerce Block Editor cart/checkout (wp-block-woocommerce-*
   containers, wc-block-components-* dynamic React components).
   All colours use CSS variables so body.light-mode overrides cascade automatically.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Page backgrounds ────────────────────────────────────────────────────── */

body.woocommerce-cart,
body.woocommerce-checkout {
	background-color: var(--black) !important;
}

body.woocommerce-cart .site-main,
body.woocommerce-cart #primary,
body.woocommerce-cart .content-area,
body.woocommerce-cart .entry,
body.woocommerce-cart .content-bg,
body.woocommerce-checkout .site-main,
body.woocommerce-checkout #primary,
body.woocommerce-checkout .content-area,
body.woocommerce-checkout .entry,
body.woocommerce-checkout .content-bg {
	background-color: var(--black) !important;
}

/* ── Page heading — left-align, reduced top padding ─────────────────────── */

body.woocommerce-cart .entry-header,
body.woocommerce-cart .entry-hero-container-inner,
body.woocommerce-cart .entry-hero {
	padding: 48px 0 16px !important;
	margin: 0 !important;
	min-height: auto !important;
}

body.woocommerce-checkout .entry-header,
body.woocommerce-checkout .entry-hero-container-inner,
body.woocommerce-checkout .entry-hero {
	padding: 40px 0 16px !important;
	margin: 0 !important;
	min-height: auto !important;
}

body.woocommerce-cart .entry-title,
.woocommerce-cart .entry-title,
.woocommerce-cart .page-title {
	text-align: left !important;
	font-family: var(--font-serif) !important;
	font-size: clamp(2.8rem, 6vw, 5rem) !important;
	font-weight: 300 !important;
	letter-spacing: 0.02em !important;
	color: var(--text) !important;
	margin: 0 !important;
}

body.woocommerce-checkout .entry-title {
	text-align: left !important;
	font-family: var(--font-serif) !important;
	font-size: clamp(2rem, 4vw, 3rem) !important;
	font-weight: 300 !important;
	letter-spacing: 0.02em !important;
	color: var(--text) !important;
	margin: 0 !important;
}

/* Cart totals heading */
.wc-block-cart__totals-title,
.cart_totals h2,
.wc-block-components-totals-wrapper .wc-block-cart__totals-title {
	font-family: var(--font-serif) !important;
	font-weight: 300 !important;
}

/* ── Checkout field overrides ────────────────────────────────────────────── */

/* Hide country field — classic checkout */
.woocommerce-billing-fields #billing_country_field,
#billing_country_field {
	display: none !important;
}

/* Hide country field — blocks checkout (wc-block-components-country-input confirmed from WC Blocks source) */
body.woocommerce-checkout .wc-block-components-country-input,
body.woocommerce-checkout .wc-block-components-address-form__country {
	display: none !important;
}

/* Hide address line 2 toggle button */
.wc-block-components-address-form__address_2-toggle {
	display: none !important;
}

/* Hide "State" label — placeholder text serves as the label */
.wc-block-components-address-form__state .wc-block-components-combobox__label,
.wc-block-components-address-form__state label {
	display: none !important;
}

/* State dropdown font — AU states render as a native <select> via wc-blocks-components-select */
.wc-block-components-address-form__state select,
.wc-block-components-address-form__state .wc-blocks-components-select__select,
.wc-block-components-state-input select,
.wc-block-components-state-input .wc-blocks-components-select__select {
	font-family: "Cormorant Garamond", Georgia, serif !important;
	font-size: 0.95rem !important;
	color: var(--text) !important;
	background-color: var(--surface) !important;
	border-color: var(--border) !important;
	border-radius: 0 !important;
}

/* "Select a state" placeholder — match DM Mono label style of other fields */
.wc-block-components-address-form__state input,
.wc-block-components-address-form__state .wc-block-components-combobox__input,
.wc-block-components-address-form__state .wc-blocks-components-select__select option:first-child,
.wc-block-components-address-form__state .wc-blocks-components-select__label {
	font-family: var(--font-mono) !important;
	font-size: 0.62rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
}

/* Guest notice — Cormorant Garamond */
.wc-block-checkout .wc-block-checkout__guest-notice,
.wc-block-checkout p,
.wc-block-checkout span {
	font-family: "Cormorant Garamond", Georgia, serif !important;
}

/* Order summary sidebar — Cormorant Garamond throughout */
.wc-block-order-summary,
.wc-block-order-summary *,
.wc-block-components-order-summary,
.wc-block-components-order-summary * {
	font-family: "Cormorant Garamond", Georgia, serif !important;
}

/* Hide duplicate per-item price below product name (already shown on the right) */
.wc-block-components-order-summary-item__individual-price {
	display: none !important;
}

/* ── Block container resets ──────────────────────────────────────────────── */

.wp-block-woocommerce-cart,
.wp-block-woocommerce-filled-cart-block,
.wp-block-woocommerce-cart-items-block,
.wp-block-woocommerce-empty-cart-block,
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-checkout-fields-block,
.wp-block-woocommerce-checkout-totals-block {
	background-color: transparent !important;
}

.wp-block-woocommerce-cart-order-summary-block,
.wp-block-woocommerce-checkout-order-summary-block {
	background-color: var(--surface) !important;
	border: 0.5px solid var(--border) !important;
	border-radius: 0 !important;
}

/* ── General text and wrappers ───────────────────────────────────────────── */

.wc-block-cart,
.wc-block-checkout {
	color: var(--text);
}

.wc-block-components-panel,
.wc-block-components-panel__content {
	background-color: transparent !important;
	border-color: var(--border) !important;
	color: var(--text) !important;
}

.wc-block-components-panel__button {
	font-family: var(--font-serif) !important;
	font-weight: 300 !important;
	color: var(--text) !important;
	background-color: transparent !important;
}

.wc-block-components-panel__button:hover {
	color: var(--accent) !important;
}

/* Section headings */
.wc-block-checkout__contact-fields h2,
.wc-block-checkout__shipping-fields h2,
.wc-block-checkout__billing-fields h2,
.wc-block-checkout__payment h2,
.wc-block-checkout__additional-fields h2,
.wc-block-checkout__payment .wc-block-components-panel__button,
.wc-block-checkout__payment .wc-block-components-panel__button span,
.wp-block-woocommerce-checkout-payment-block h2,
.wp-block-woocommerce-checkout-payment-block .wc-block-components-panel__button {
	font-family: var(--font-serif) !important;
	font-weight: 300 !important;
	color: var(--text) !important;
}

/* ── Empty cart ──────────────────────────────────────────────────────────── */

.wc-block-cart__empty-cart__title,
.wp-block-woocommerce-empty-cart-block h2 {
	font-family: var(--font-serif) !important;
	font-weight: 300 !important;
	color: var(--text) !important;
}

/* ── Cart line items ─────────────────────────────────────────────────────── */

.wc-block-cart-items,
.wc-block-cart-items__header {
	border-color: var(--border) !important;
}

.wc-block-cart-items__header span {
	font-family: var(--font-mono) !important;
	font-size: 0.62rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
}

.wc-block-cart-item {
	background-color: transparent !important;
	border-bottom: 0.5px solid var(--border) !important;
}

.wc-block-cart-item__product-name,
.wc-block-cart-item__product-name a {
	font-family: var(--font-serif) !important;
	font-size: 1rem !important;
	font-weight: 300 !important;
	color: var(--text) !important;
	text-decoration: none !important;
}

.wc-block-cart-item__product-name a:hover {
	color: var(--accent) !important;
}

.wc-block-cart-item__low-stock-badge {
	font-family: var(--font-mono) !important;
	font-size: 0.75rem !important;
	color: var(--muted) !important;
}

/* Hide duplicate per-item price — already shown in the Total column */
.wc-block-cart-item__individual-prices,
.wc-block-cart-item__prices,
.woocommerce-cart-form .product-price,
td.product-price,
.woocommerce tbody tr td.product-price {
	display: none !important;
}

.wc-block-cart-item__total .woocommerce-Price-amount,
.wc-block-cart-item__total {
	font-family: var(--font-mono) !important;
	color: var(--accent) !important;
	font-size: 0.9rem !important;
	letter-spacing: 0.05em !important;
}

.wc-block-cart-item__remove-link {
	font-family: var(--font-mono) !important;
	font-size: 0.6rem !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
	border: 0.5px solid var(--border) !important;
	background: transparent !important;
	padding: 0.25rem 0.6rem !important;
	text-decoration: none !important;
	transition: color 0.2s, border-color 0.2s !important;
}

.wc-block-cart-item__remove-link:hover {
	color: var(--text) !important;
	border-color: rgba(255, 255, 255, 0.25) !important;
}

/* ── Quantity selector ───────────────────────────────────────────────────── */

.wc-block-components-quantity-selector {
	background-color: var(--surface) !important;
	border: 0.5px solid var(--border) !important;
	border-radius: 0 !important;
}

.wc-block-components-quantity-selector__input {
	background-color: transparent !important;
	color: var(--text) !important;
	font-family: var(--font-mono) !important;
	font-size: 0.85rem !important;
}

.wc-block-components-quantity-selector__button {
	color: var(--muted) !important;
	background-color: transparent !important;
	border-color: var(--border) !important;
}

.wc-block-components-quantity-selector__button:hover {
	color: var(--text) !important;
	background-color: transparent !important;
}

/* ── Totals ──────────────────────────────────────────────────────────────── */

.wc-block-components-totals-wrapper {
	background-color: transparent !important;
}

.wc-block-components-totals-item {
	border-top: 0.5px solid var(--border) !important;
	color: var(--text) !important;
}

.wc-block-components-totals-item__label {
	font-family: var(--font-serif) !important;
	color: var(--muted) !important;
}

.wc-block-components-totals-item__value,
.wc-block-components-totals-item__value .woocommerce-Price-amount {
	font-family: var(--font-mono) !important;
	color: var(--accent) !important;
	letter-spacing: 0.05em !important;
}

.wc-block-components-totals-footer-item {
	border-top: 0.5px solid var(--border) !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: var(--font-serif) !important;
	color: var(--text) !important;
	font-size: 1rem !important;
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .woocommerce-Price-amount {
	font-family: var(--font-mono) !important;
	color: var(--accent) !important;
	font-size: 1.1rem !important;
}

/* ── Coupon ──────────────────────────────────────────────────────────────── */

.wc-block-components-coupon .wc-block-components-text-input,
.wc-block-components-coupon-form {
	background-color: transparent !important;
}

.wc-block-components-totals-coupon__button {
	font-family: var(--font-mono) !important;
	font-size: 0.68rem !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	color: var(--accent) !important;
	background: transparent !important;
	border: 0.5px solid var(--border) !important;
	border-radius: 0 !important;
}

.wc-block-components-totals-coupon__button:hover {
	color: var(--text) !important;
	border-color: rgba(255, 255, 255, 0.25) !important;
}

/* ── Order summary (checkout sidebar) ────────────────────────────────────── */

.wc-block-components-order-summary {
	background-color: transparent !important;
}

.wc-block-components-order-summary-item {
	border-bottom: 0.5px solid var(--border) !important;
}

.wc-block-components-order-summary-item__description,
.wc-block-components-order-summary-item__description a {
	font-family: var(--font-serif) !important;
	font-size: 0.9rem !important;
	color: var(--text) !important;
}

.wc-block-components-order-summary-item__quantity {
	font-family: var(--font-mono) !important;
	font-size: 0.7rem !important;
	color: var(--muted) !important;
	background-color: var(--surface) !important;
	border-color: var(--border) !important;
}

.wc-block-components-order-summary-item__total-price .woocommerce-Price-amount {
	font-family: var(--font-mono) !important;
	color: var(--accent) !important;
	font-size: 0.85rem !important;
}

/* ── Form fields (checkout) ──────────────────────────────────────────────── */

.wc-block-components-text-input,
.wc-block-components-text-input.is-active {
	background-color: var(--surface) !important;
	border-color: var(--border) !important;
	border-radius: 0 !important;
}

.wc-block-components-text-input input,
.wc-block-components-text-input textarea,
.wc-block-components-country-input .wc-block-components-combobox input,
.wc-block-components-state-input .wc-block-components-combobox input,
.wc-block-components-combobox .wc-block-components-combobox-control input {
	background-color: var(--surface) !important;
	border-color: var(--border) !important;
	color: var(--text) !important;
	font-family: var(--font-serif) !important;
	font-size: 0.95rem !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input:focus {
	border-color: var(--accent) !important;
	box-shadow: none !important;
	outline: none !important;
}

.wc-block-components-text-input label,
.wc-block-components-label,
.wc-block-components-combobox label {
	font-family: var(--font-mono) !important;
	font-size: 0.62rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
}

/* Combobox dropdown */
.wc-block-components-combobox-control__suggestions-container {
	background-color: var(--surface) !important;
	border-color: var(--border) !important;
	border-radius: 0 !important;
}

.wc-block-components-combobox-control__suggestions-container li {
	color: var(--text) !important;
}

.wc-block-components-combobox-control__suggestions-container li:hover,
.wc-block-components-combobox-control__suggestions-container li[aria-selected="true"] {
	background-color: var(--off-black) !important;
	color: var(--text) !important;
}

/* ── Select / Select2 (classic checkout fallback + state dropdown) ────────── */

body.woocommerce-checkout select,
body.woocommerce-cart select {
	background-color: #161616 !important;
	border: 1px solid rgba(255, 255, 255, 0.09) !important;
	color: #ece8e0 !important;
	font-family: var(--font-serif) !important;
	font-size: 0.95rem !important;
	border-radius: 0 !important;
	padding: 0.6rem 0.75rem !important;
	box-shadow: none !important;
	appearance: none !important;
}

body.woocommerce-checkout select:focus,
body.woocommerce-cart select:focus {
	border-color: var(--accent) !important;
	outline: none !important;
	box-shadow: none !important;
}

/* Select2 container */
.select2-container .select2-selection--single,
.select2-container .select2-selection--multiple {
	background-color: #161616 !important;
	border: 1px solid rgba(255, 255, 255, 0.09) !important;
	color: #ece8e0 !important;
	border-radius: 0 !important;
	height: auto !important;
	padding: 0.55rem 0.75rem !important;
	box-shadow: none !important;
}

.select2-container .select2-selection--single .select2-selection__rendered {
	color: #ece8e0 !important;
	font-family: var(--font-serif) !important;
	font-size: 0.95rem !important;
	line-height: 1.5 !important;
	padding: 0 !important;
}

.select2-container .select2-selection--single .select2-selection__arrow {
	top: 50% !important;
	transform: translateY(-50%) !important;
}

.select2-container .select2-selection--single .select2-selection__arrow b {
	border-color: rgba(236, 232, 224, 0.4) transparent transparent transparent !important;
}

.select2-container--open .select2-selection--single .select2-selection__arrow b {
	border-color: transparent transparent rgba(236, 232, 224, 0.4) transparent !important;
}

/* Select2 dropdown panel */
.select2-dropdown {
	background-color: #161616 !important;
	border: 1px solid rgba(255, 255, 255, 0.09) !important;
	border-radius: 0 !important;
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5) !important;
}

.select2-container--open .select2-dropdown--below {
	border-top: none !important;
}

.select2-container--open .select2-dropdown--above {
	border-bottom: none !important;
}

/* Select2 search input */
.select2-search--dropdown .select2-search__field {
	background-color: var(--surface) !important;
	border: 1px solid rgba(255, 255, 255, 0.09) !important;
	color: #ece8e0 !important;
	font-family: var(--font-serif) !important;
	border-radius: 0 !important;
	outline: none !important;
}

/* Select2 options */
.select2-results__option {
	font-family: var(--font-serif) !important;
	font-size: 0.9rem !important;
	color: #ece8e0 !important;
	background-color: transparent !important;
	padding: 0.5rem 0.75rem !important;
}

.select2-results__option--highlighted,
.select2-results__option[aria-selected="true"] {
	background-color: var(--surface) !important;
	color: #ece8e0 !important;
}

.select2-results__option--highlighted {
	background-color: var(--off-black) !important;
	color: var(--accent) !important;
}

/* Light mode overrides for select/Select2 */
body.light-mode.woocommerce-checkout select,
body.light-mode.woocommerce-cart select {
	background-color: #e8e4de !important;
	border-color: rgba(26, 26, 26, 0.12) !important;
	color: #1a1a1a !important;
}

body.light-mode .select2-container .select2-selection--single,
body.light-mode .select2-container .select2-selection--multiple {
	background-color: #e8e4de !important;
	border-color: rgba(26, 26, 26, 0.12) !important;
}

body.light-mode .select2-container .select2-selection--single .select2-selection__rendered {
	color: #1a1a1a !important;
}

body.light-mode .select2-dropdown {
	background-color: #ede9e3 !important;
	border-color: rgba(26, 26, 26, 0.12) !important;
}

body.light-mode .select2-results__option {
	color: #1a1a1a !important;
}

body.light-mode .select2-results__option--highlighted {
	background-color: #e8e4de !important;
	color: #8a6f4e !important;
}

body.light-mode .select2-search--dropdown .select2-search__field {
	background-color: #e8e4de !important;
	border-color: rgba(26, 26, 26, 0.12) !important;
	color: #1a1a1a !important;
}

/* Checkbox */
.wc-block-components-checkbox .wc-block-components-checkbox__input,
.wc-block-components-checkbox__input[type="checkbox"] {
	border-color: var(--border) !important;
	background-color: var(--surface) !important;
	border-radius: 0 !important;
}

.wc-block-components-checkbox__label {
	font-family: var(--font-serif) !important;
	color: var(--text) !important;
}

/* ── Payment methods ─────────────────────────────────────────────────────── */

.wc-block-components-payment-method-label,
.wc-block-components-payment-method-label__label {
	font-family: var(--font-serif) !important;
	color: var(--text) !important;
}

.wc-block-components-radio-control__option {
	border-bottom: 0.5px solid var(--border) !important;
	background-color: var(--surface) !important;
}

.wc-block-components-radio-control__option:last-child {
	border-bottom: none !important;
}

.wc-block-components-radio-control__option-layout {
	background-color: transparent !important;
}

.wc-block-components-radio-control__description {
	font-family: var(--font-mono) !important;
	font-size: 0.7rem !important;
	color: var(--muted) !important;
}

/* Radio input */
.wc-block-components-radio-control-accordion-option__content {
	background-color: var(--off-black) !important;
	border-top: 0.5px solid var(--border) !important;
}

/* ── Notices ─────────────────────────────────────────────────────────────── */

.wc-block-components-notice-banner,
.wc-block-store-notices {
	background-color: var(--surface) !important;
	border-color: var(--border) !important;
	color: var(--text) !important;
	border-radius: 0 !important;
}

.wc-block-components-notice-banner__content {
	font-family: var(--font-serif) !important;
}

/* ── Buttons ─────────────────────────────────────────────────────────────── */

/* Proceed to checkout — filled primary */
.wc-block-cart__submit-button,
.wp-block-woocommerce-proceed-to-checkout-block .wc-block-cart__submit-button {
	background-color: var(--accent) !important;
	color: var(--black) !important;
	border: 1px solid var(--accent) !important;
	font-family: var(--font-mono) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	border-radius: 0 !important;
	padding: 0.9rem 2rem !important;
	transition: background-color 0.2s ease, color 0.2s ease !important;
	box-shadow: none !important;
}

.wc-block-cart__submit-button:hover {
	background-color: transparent !important;
	color: var(--accent) !important;
}

/* Place order — filled primary */
.wc-block-components-checkout-place-order-button {
	background-color: var(--accent) !important;
	color: var(--black) !important;
	border: 1px solid var(--accent) !important;
	font-family: var(--font-mono) !important;
	font-size: 0.72rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	border-radius: 0 !important;
	padding: 0.9rem 2rem !important;
	transition: background-color 0.2s ease, color 0.2s ease !important;
	box-shadow: none !important;
	width: 100% !important;
}

.wc-block-components-checkout-place-order-button:hover {
	background-color: transparent !important;
	color: var(--accent) !important;
}

/* Generic WC block buttons (secondary/outline style) */
.wc-block-components-button:not(.wc-block-cart__submit-button):not(.wc-block-components-checkout-place-order-button) {
	font-family: var(--font-mono) !important;
	font-size: 0.68rem !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	background-color: transparent !important;
	color: var(--text) !important;
	border: 0.5px solid var(--border) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.wc-block-components-button:not(.wc-block-cart__submit-button):not(.wc-block-components-checkout-place-order-button):hover {
	color: var(--accent) !important;
	border-color: var(--accent) !important;
	background-color: transparent !important;
}

/* ── Shipping methods ────────────────────────────────────────────────────── */

.wc-block-components-shipping-rates-control__package {
	border: 0.5px solid var(--border) !important;
	background-color: var(--surface) !important;
	border-radius: 0 !important;
}

.wc-block-components-shipping-rates-control__package-title {
	font-family: var(--font-mono) !important;
	font-size: 0.65rem !important;
	letter-spacing: 0.14em !important;
	text-transform: uppercase !important;
	color: var(--muted) !important;
}

/* ── Privacy / terms text ────────────────────────────────────────────────── */

.wc-block-checkout__terms p,
.wc-block-components-checkout-return-to-cart-button {
	font-family: var(--font-serif) !important;
	font-size: 0.85rem !important;
	color: var(--muted) !important;
}

.wc-block-components-checkout-return-to-cart-button {
	background: transparent !important;
	border: none !important;
	text-decoration: underline !important;
	cursor: pointer !important;
	padding: 0 !important;
}

.wc-block-components-checkout-return-to-cart-button:hover {
	color: var(--text) !important;
}

/* ── Light mode overrides — cart & checkout ──────────────────────────────── */
/* Variable overrides on body.light-mode cascade automatically through all
   var() references above. Only hard-coded specifics need explicit overrides. */

body.light-mode.woocommerce-cart,
body.light-mode.woocommerce-checkout {
	background-color: #f5f2ee !important;
}

body.light-mode .wc-block-cart-item__remove-link:hover {
	border-color: rgba(26, 26, 26, 0.3) !important;
}

body.light-mode .wc-block-components-radio-control__option {
	background-color: #ede9e3 !important;
}

body.light-mode .wc-block-components-radio-control-accordion-option__content {
	background-color: #e8e4de !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   LIGHT MODE
   Toggled by adding .light-mode to <body>. CSS variables are overridden here
   so all var() references cascade automatically. Hard-coded !important
   overrides from Kadence are handled by specific selectors below.
   ═══════════════════════════════════════════════════════════════════════════ */

/* Anti-flash: cover critical background before <body> is available */
html.light-mode {
	background-color: #f5f2ee;
}

body.light-mode {
	--black:    #f5f2ee;
	--off-black: #ede9e3;
	--surface:  #e8e4de;
	--border:   rgba(26, 26, 26, 0.12);
	--text:     #1a1a1a;
	--muted:    rgba(26, 26, 26, 0.45);
	--accent:   #8a6f4e;

	background-color: #f5f2ee !important;
	color: #1a1a1a;
}

/* ── Global wrappers ─────────────────────────────────────────────────────── */

body.light-mode .site,
body.light-mode #page,
body.light-mode #wrapper,
body.light-mode #inner-wrap,
body.light-mode .wp-site-blocks,
body.light-mode .site-content,
body.light-mode #content {
	background-color: #f5f2ee !important;
}

body.light-mode .content-bg,
body.light-mode .kadence-inner-column-inner,
body.light-mode .wp-block-group {
	background-color: transparent !important;
}

body.light-mode .entry-header,
body.light-mode .page-header,
body.light-mode .entry-hero-container-inner,
body.light-mode .wp-block-kadence-column,
body.light-mode .kadence-inner-column-inner {
	background-color: #f5f2ee !important;
	color: #1a1a1a !important;
}

/* ── Navigation ──────────────────────────────────────────────────────────── */

body.light-mode #masthead,
body.light-mode .site-header,
body.light-mode .site-header-wrap,
body.light-mode .site-header-inner-wrap,
body.light-mode .site-header-upper-wrap,
body.light-mode .site-header-upper-inner-wrap,
body.light-mode .site-header-main-section-left,
body.light-mode .site-header-main-section-right {
	background-color: #f5f2ee !important;
}

body.light-mode .main-navigation .primary-menu-container > ul > li.menu-item > a,
body.light-mode .main-navigation .primary-menu-container > ul > li.menu-item > a:visited {
	color: rgba(26, 26, 26, 0.55) !important;
}

body.light-mode .main-navigation .primary-menu-container > ul > li.menu-item > a:hover,
body.light-mode .main-navigation .primary-menu-container > ul > li.menu-item.current-menu-item > a,
body.light-mode .main-navigation .primary-menu-container > ul > li.current_page_item > a {
	color: #1a1a1a !important;
}

body.light-mode .mobile-navigation ul li:not(.menu-item-has-children) > a,
body.light-mode .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap {
	color: rgba(26, 26, 26, 0.8) !important;
}

body.light-mode .mobile-navigation ul li:not(.menu-item-has-children) > a:hover,
body.light-mode .mobile-navigation ul li.menu-item-has-children > .drawer-nav-drop-wrap:hover {
	color: #1a1a1a !important;
}

body.light-mode .mobile-navigation ul li.current-menu-item > a,
body.light-mode .mobile-navigation ul li.current-page-item > a,
body.light-mode .mobile-navigation ul li.current_page_item > a {
	color: #1a1a1a !important;
}

body.light-mode #mobile-drawer .drawer-inner,
body.light-mode #mobile-drawer.popup-drawer-layout-fullwidth .drawer-inner {
	background: #f5f2ee !important;
	color: rgba(26, 26, 26, 0.8) !important;
}

body.light-mode #mobile-drawer .drawer-header .drawer-toggle {
	color: rgba(26, 26, 26, 0.8) !important;
}

body.light-mode .bwp-cart-link {
	color: rgba(26, 26, 26, 0.8) !important;
}

body.light-mode .bwp-cart-link:hover {
	color: #1a1a1a !important;
}

body.light-mode .bwp-cart-count {
	color: #8a6f4e;
}

body.light-mode .bwp-mini-cart {
	background-color: #ede9e3;
	border-color: rgba(26, 26, 26, 0.12);
}

body.light-mode .bwp-mini-cart__empty {
	color: rgba(26, 26, 26, 0.4);
}

body.light-mode .bwp-mini-cart__item {
	border-bottom-color: rgba(26, 26, 26, 0.07);
}

body.light-mode .bwp-mini-cart__item-name {
	color: rgba(26, 26, 26, 0.5);
}

body.light-mode .bwp-mini-cart__item-meta {
	color: #8a6f4e;
}

body.light-mode .bwp-mini-cart__footer {
	border-top-color: rgba(26, 26, 26, 0.12);
}

body.light-mode .bwp-mini-cart__subtotal {
	color: rgba(26, 26, 26, 0.5);
}

body.light-mode .bwp-mini-cart__subtotal span:last-child {
	color: #1a1a1a;
}

body.light-mode .bwp-mini-cart__btn {
	color: rgba(26, 26, 26, 0.55) !important;
	border-color: rgba(26, 26, 26, 0.15) !important;
}

body.light-mode .bwp-mini-cart__btn:hover {
	color: #1a1a1a !important;
	border-color: rgba(26, 26, 26, 0.3) !important;
	background-color: rgba(26, 26, 26, 0.05) !important;
}

body.light-mode .bwp-mini-cart__btn--primary {
	color: #8a6f4e !important;
	border-color: rgba(138, 111, 78, 0.35) !important;
}

body.light-mode .bwp-mini-cart__btn--primary:hover {
	color: #5c4a30 !important;
	border-color: rgba(138, 111, 78, 0.7) !important;
	background-color: rgba(138, 111, 78, 0.07) !important;
}

body.light-mode .bwp-mode-toggle {
	color: rgba(26, 26, 26, 0.5) !important;
}

body.light-mode .bwp-mode-toggle:hover {
	color: #1a1a1a !important;
}

/* ── Typography & links ──────────────────────────────────────────────────── */

body.light-mode h1, body.light-mode h2, body.light-mode h3,
body.light-mode h4, body.light-mode h5, body.light-mode h6 {
	color: #1a1a1a;
}

body.light-mode p,
body.light-mode li,
body.light-mode td,
body.light-mode th,
body.light-mode blockquote {
	color: #1a1a1a;
}

body.light-mode a {
	color: #8a6f4e;
}

body.light-mode a:hover {
	color: #1a1a1a;
}

/* ── Service pages ───────────────────────────────────────────────────────── */

body.light-mode .bwp-service-page {
	background-color: #f5f2ee;
}

body.light-mode .bwp-service-hero,
body.light-mode .bwp-service-content,
body.light-mode .bwp-service-cta {
	background-color: #f5f2ee !important;
}

body.light-mode .bwp-service-intro,
body.light-mode .bwp-service-next-steps {
	background-color: #ede9e3 !important;
}

body.light-mode .bwp-service-callout {
	background-color: #e8e4de !important;
}

body.light-mode .bwp-service-card {
	background-color: #f5f2ee !important;
}

body.light-mode .bwp-service-card:hover {
	background-color: #e8e4de !important;
}

body.light-mode .bwp-pricing-table-simple {
	background-color: #ede9e3 !important;
}

body.light-mode .bwp-about-hero {
	background-color: #f5f2ee !important;
}

/* ── Service page buttons ────────────────────────────────────────────────── */

/* Filled / primary — variables cascade correctly but be explicit for safety */
body.light-mode .bwp-btn--primary,
body.light-mode .bwp-service-page .bwp-btn--primary,
body.light-mode .bwp-service-cta .bwp-btn--primary {
	background-color: #8a6f4e !important;
	color: #f5f2ee !important;
	border-color: #8a6f4e !important;
}

body.light-mode .bwp-btn--primary:hover,
body.light-mode .bwp-service-page .bwp-btn--primary:hover,
body.light-mode .bwp-service-cta .bwp-btn--primary:hover {
	background-color: transparent !important;
	color: #8a6f4e !important;
	border-color: #8a6f4e !important;
}

/* Outlined / ghost — border and text need to use accent, not near-invisible muted */
body.light-mode .bwp-btn--ghost,
body.light-mode .bwp-service-page .bwp-btn--ghost {
	background-color: transparent !important;
	color: #8a6f4e !important;
	border-color: #8a6f4e !important;
}

body.light-mode .bwp-btn--ghost:hover,
body.light-mode .bwp-service-page .bwp-btn--ghost:hover {
	color: #1a1a1a !important;
	border-color: #1a1a1a !important;
}

/* ── Shop & WooCommerce ──────────────────────────────────────────────────── */

body.light-mode .bwp-shop-hero {
	background-color: #f5f2ee;
}

body.light-mode .bwp-shop-title {
	color: #1a1a1a !important;
}

body.light-mode .bwp-shop-desc {
	color: rgba(26, 26, 26, 0.55);
}

body.light-mode.post-type-archive-product,
body.light-mode.woocommerce-page,
body.light-mode.woocommerce {
	background-color: #f5f2ee !important;
}

body.light-mode.post-type-archive-product #primary,
body.light-mode.post-type-archive-product .site-main,
body.light-mode.tax-product_cat #primary,
body.light-mode.tax-product_cat .site-main {
	background-color: #f5f2ee !important;
}

body.light-mode.post-type-archive-product .content-bg,
body.light-mode.post-type-archive-product li.product.content-bg,
body.light-mode.tax-product_cat .content-bg,
body.light-mode .product-details.content-bg {
	background-color: #ede9e3 !important;
}

body.light-mode .woocommerce ul.products li.product {
	border-color: rgba(26, 26, 26, 0.12) !important;
}

body.light-mode .woocommerce ul.products li.product:hover,
body.light-mode .loop-entry:hover {
	background: #e8e4de !important;
	border-color: rgba(138, 111, 78, 0.3) !important;
}

body.light-mode .bwp-filter {
	color: rgba(26, 26, 26, 0.45);
	border-color: rgba(26, 26, 26, 0.15);
}

body.light-mode .bwp-filter:hover {
	color: #1a1a1a !important;
	border-color: rgba(26, 26, 26, 0.4) !important;
	background: transparent !important;
}

body.light-mode .bwp-filter.active {
	color: #8a6f4e !important;
	border-color: #8a6f4e !important;
	background: transparent !important;
}

/* ── Footer ──────────────────────────────────────────────────────────────── */

body.light-mode #colophon,
body.light-mode .site-footer,
body.light-mode .site-footer-wrap,
body.light-mode .site-footer-row-container-inner,
body.light-mode .site-footer-bottom-section-1 {
	background-color: #ede9e3 !important;
	border-top: 0.5px solid rgba(26, 26, 26, 0.12) !important;
}

body.light-mode .bwp-footer-address,
body.light-mode .bwp-footer-copy {
	color: rgba(26, 26, 26, 0.55) !important;
}

/* ── Hero: always dark — image underneath is always dark ────────────────── */
body.light-mode .bwp-hero,
body.light-mode .bwp-hero h1,
body.light-mode .bwp-hero p,
body.light-mode .bwp-hero .bwp-hero__heading,
body.light-mode .bwp-hero .bwp-hero__subheading,
body.light-mode .bwp-hero * {
	color: #ece8e0 !important;
	background-color: transparent !important;
}

/* Primary buttons keep their filled style even over the always-dark hero */
body.light-mode .bwp-hero .bwp-btn--primary {
	background-color: #8a6f4e !important;
	color: #f5f2ee !important;
	border-color: #8a6f4e !important;
}

body.light-mode .bwp-hero .bwp-btn--primary:hover {
	background-color: transparent !important;
	color: #8a6f4e !important;
	border-color: #8a6f4e !important;
}

/* ─── Geo Location Pages ─────────────────────────────────────────────────── */

.bwp-geo {
	margin: 0;
	padding: 0;
}

/* Service grid: 2-column on tablet for 6-card Adelaide grid */
@media (max-width: 900px) {
	.bwp-geo .bwp-svc-grid--3 {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 540px) {
	.bwp-geo .bwp-svc-grid--3 {
		grid-template-columns: 1fr;
	}
}

/* ─── Monitor Calibration Page ───────────────────────────────────────────── */

.bwp-calibration {
	margin: 0;
	padding: 0;
}

/* Introductory sentence before a settings list */
.bwp-calibration-lead {
	font-family: var(--font-serif);
	font-size: 1rem;
	line-height: 1.8;
	color: var(--text);
	margin: 0 0 1.5rem;
}

/* Body text paragraphs */
.bwp-calibration-body {
	max-width: 760px;
}

.bwp-calibration-body p {
	font-family: var(--font-serif);
	font-size: 0.95rem;
	line-height: 1.8;
	color: var(--muted);
	margin: 0 0 1rem;
}

.bwp-calibration-body p:last-child {
	margin-bottom: 0;
}

.bwp-calibration-body--top {
	margin-top: 2rem;
}

/* Trailing paragraph after a settings list */
.bwp-calibration-body-text {
	font-family: var(--font-serif);
	font-size: 0.9rem;
	line-height: 1.8;
	color: var(--muted);
	margin: 1.5rem 0 0;
	max-width: 680px;
}

/* Colour Settings screenshot */
.bwp-calibration-figure {
	margin: 2.5rem 0 0;
	padding: 0;
	border: 0.5px solid var(--border);
	line-height: 0;
	max-width: 680px;
}

.bwp-calibration-figure img {
	width: 100%;
	height: auto;
	display: block;
}

/*
 * .bwp-service-list__item uses display:grid (2rem dash col + 1fr content col).
 * Inside .bwp-calibration, list items contain <strong>label:</strong> followed
 * by a text node — the <strong> takes col 2 and the text node auto-places into
 * the narrow 2rem col on the next row, causing one-word-per-line rendering.
 * Override to display:block with ::before positioned absolutely.
 */
.bwp-calibration .bwp-service-list__item {
	display: block;
	position: relative;
	padding-left: 2rem;
}

.bwp-calibration .bwp-service-list__item::before {
	position: absolute;
	left: 0;
	top: 1.25rem;
}

/* Bold labels inside settings lists */
.bwp-calibration .bwp-service-list__item strong {
	color: var(--text);
	font-weight: 400;
}

/* Space between Lightroom body intro and list */
.bwp-calibration-list {
	margin-top: 1.5rem;
}

/* Download section */
.bwp-calibration-download__link {
	display: inline-block;
	max-width: 580px;
	margin-top: 1.5rem;
	line-height: 0;
	border: 0.5px solid var(--border);
	transition: border-color 0.2s ease;
}

.bwp-calibration-download__link:hover {
	border-color: var(--accent);
}

.bwp-calibration-download__figure {
	margin: 0;
	padding: 0;
	line-height: 0;
}

.bwp-calibration-download__figure img {
	width: 100%;
	height: auto;
	display: block;
}

.bwp-calibration-download__caption {
	display: block;
	font-family: var(--font-mono);
	font-size: 0.7rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--accent);
	padding: 0.75rem 1rem;
	line-height: 1;
	background-color: var(--off-black);
	border-top: 0.5px solid var(--border);
}

.bwp-calibration-download__note {
	font-family: var(--font-serif);
	font-size: 0.9rem;
	line-height: 1.75;
	color: var(--muted);
	margin: 2rem 0 0;
	max-width: 580px;
}

.bwp-calibration-download__note a {
	color: var(--accent);
	text-decoration: none;
}

.bwp-calibration-download__note a:hover {
	text-decoration: underline;
}

/* ─── Display Packs — pricing table ─────────────────────────────────────── */

.bwp-dp-table-wrap {
	overflow-x: auto;
	margin-top: 2.5rem;
	border: 0.5px solid var(--border);
}

.bwp-dp-table {
	width: 100%;
	border-collapse: collapse;
	min-width: 520px;
}

.bwp-dp-table thead tr {
	background-color: var(--off-black);
	border-bottom: 0.5px solid var(--border);
}

.bwp-dp-table th {
	font-family: var(--font-mono);
	font-size: 0.6rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--muted);
	font-weight: 400;
	padding: 0.9rem 1.25rem;
	text-align: left;
	white-space: nowrap;
}

.bwp-dp-table tbody tr {
	border-bottom: 0.5px solid var(--border);
}

.bwp-dp-table tbody tr:last-child {
	border-bottom: none;
}

.bwp-dp-table td {
	font-family: var(--font-serif);
	font-size: 0.875rem;
	line-height: 1.5;
	color: var(--muted);
	padding: 0.875rem 1.25rem;
	border-right: 0.5px solid var(--border);
}

.bwp-dp-table td:last-child {
	border-right: none;
}

.bwp-dp-table__size {
	font-family: var(--font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	color: var(--text);
	white-space: nowrap;
}

.bwp-dp-table__img-size {
	white-space: nowrap;
}

.bwp-dp-table__price {
	font-family: var(--font-mono);
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	color: var(--text);
	white-space: nowrap;
}

.bwp-dp-table__discount {
	font-family: var(--font-mono);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	color: var(--accent);
	white-space: nowrap;
}
