:root {
	--sr-surface-chalk: var(--wp--preset--color--chalk, #f6f4f1);
	--sr-surface-stone: var(--wp--preset--color--warm-stone, #e8e3dc);
	--sr-surface-charcoal: var(--wp--preset--color--charcoal, #1c1e1f);
	--sr-surface-sky: var(--wp--preset--color--sky, #c7d8e6);
	--sr-surface-eucalyptus: var(--wp--preset--color--eucalyptus, #5d6f61);
	--sr-radius-sm: 4px;
	--sr-radius-md: 8px;
	--sr-radius-media: 12px;
	--sr-line: rgba(28, 30, 31, 0.14);
	--sr-shadow: 0 18px 45px rgba(28, 30, 31, 0.08);
	--sr-page-gutter: clamp(20px, 4vw, 64px);
	--sr-width-reading: 760px;
	--sr-width-standard: 1180px;
	--sr-width-wide: 1540px;
	--sr-width-max: 1760px;
	--sr-space-compact: 48px;
	--sr-space-standard: 80px;
	--sr-space-generous: 120px;
	--sr-motion-ui: 170ms;
	--sr-motion-card: 220ms;
	--sr-motion-panel: 300ms;
	--sr-ease-out: cubic-bezier(.22, 1, .36, 1);
	--sr-product-wide-size: var(--sr-width-wide);
	--sr-reading-size: var(--wp--style--global--content-size, 760px);
}

/* One action system for theme sections, WooCommerce and mature product modules. */
.sr-button,
.sr-section-button,
.srpc-button,
.wp-block-button__link,
.woocommerce button.button,
.woocommerce a.button,
.wp-block-woocommerce-product-button .wp-element-button,
.wc-block-components-button:not(.is-link) {
	appearance: none;
	display: inline-flex;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 12px 24px;
	border: 1px solid transparent;
	border-radius: var(--sr-radius-sm);
	font: 600 .78rem/1.2 "IBM Plex Mono", Consolas, monospace;
	letter-spacing: .055em;
	text-align: center;
	text-decoration: none;
	text-transform: uppercase;
	cursor: pointer;
	transition: color var(--sr-motion-ui) ease, background-color var(--sr-motion-ui) ease, border-color var(--sr-motion-ui) ease, transform var(--sr-motion-ui) ease;
}

.sr-button--primary,
.sr-section-button,
.srpc-button-primary,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce button.single_add_to_cart_button,
.wp-block-woocommerce-product-button .wp-element-button,
.wc-block-components-button:not(.is-link) {
	color: #fff !important;
	background: var(--sr-surface-eucalyptus);
	border-color: var(--sr-surface-eucalyptus);
}

.sr-button--secondary,
.srpc-button-secondary,
.wp-block-button.is-style-sr-secondary .wp-block-button__link {
	color: currentColor !important;
	background: transparent;
	border-color: currentColor;
}

.sr-button--text,
.sr-section-link,
.wp-block-button.is-style-sr-text-link .wp-block-button__link {
	min-height: 44px;
	padding-inline: 0;
	color: currentColor !important;
	background: transparent;
	border-color: transparent;
}

.sr-button--inverse {
	color: var(--sr-surface-charcoal) !important;
	background: var(--sr-surface-chalk);
	border-color: var(--sr-surface-chalk);
}

/* Inverse is a surface response, not another per-block design decision. */
.is-surface-charcoal .sr-button--primary,
.is-surface-eucalyptus .sr-button--primary {
	color: var(--sr-surface-charcoal) !important;
	background: var(--sr-surface-chalk);
	border-color: var(--sr-surface-chalk);
}

.sr-button--secondary:hover,
.sr-button--secondary:focus-visible {
	background: color-mix(in srgb, currentColor 8%, transparent);
}

.sr-button--text:hover,
.sr-button--text:focus-visible,
.sr-section-link:hover,
.sr-section-link:focus-visible {
	text-decoration: underline;
	text-underline-offset: .24em;
}

.sr-button:hover,
.sr-button:focus-visible,
.sr-section-button:hover,
.sr-section-button:focus-visible,
.srpc-button:hover,
.srpc-button:focus-visible,
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible { filter: brightness(.92); }

.sr-button--text:hover span,
.sr-button--text:focus-visible span,
.sr-section-link:hover span,
.sr-section-link:focus-visible span { transform: translateX(3px); }

.sr-button:active,
.sr-section-button:active,
.srpc-button:active { transform: translateY(1px); }

.sr-button:disabled,
.sr-button[aria-disabled="true"],
.sr-section-button[aria-disabled="true"] { opacity: .45; cursor: not-allowed; filter: none; }

.sr-button.is-loading {
	position: relative;
	cursor: wait;
}

.sr-button.is-loading::after {
	width: 14px;
	height: 14px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	content: "";
	animation: sr-button-spin .75s linear infinite;
}

@keyframes sr-button-spin { to { transform: rotate(360deg); } }

.sr-button:focus-visible,
.sr-section-button:focus-visible,
.sr-section-link:focus-visible,
.srpc-button:focus-visible,
.wp-block-button__link:focus-visible {
	outline: 3px solid var(--sr-surface-sky);
	outline-offset: 2px;
}

/* WooCommerce actions follow the Southern Range informational/action hierarchy. */
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce button.single_add_to_cart_button,
.wp-block-woocommerce-product-button .wp-element-button,
.wc-block-components-button:not(.is-link) {
	background: var(--wp--preset--color--eucalyptus, #5d6f61);
	border-color: var(--wp--preset--color--eucalyptus, #5d6f61);
	color: #fff;
}

.woocommerce button.button.alt:hover,
.woocommerce button.button.alt:focus,
.woocommerce a.button.alt:hover,
.woocommerce a.button.alt:focus,
.woocommerce button.single_add_to_cart_button:hover,
.woocommerce button.single_add_to_cart_button:focus,
.wp-block-woocommerce-product-button .wp-element-button:hover,
.wp-block-woocommerce-product-button .wp-element-button:focus,
.wc-block-components-button:not(.is-link):hover,
.wc-block-components-button:not(.is-link):focus {
	background: #4f6053;
	border-color: #4f6053;
	color: #fff;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: calc(var(--sr-header-height-compact, 60px) + 20px);
}

[id] { scroll-margin-top: calc(var(--sr-header-height-compact, 60px) + 20px); }

body {
	margin: 0;
	-webkit-font-smoothing: antialiased;
	font-family: "IBM Plex Sans", Arial, Helvetica, sans-serif;
	text-rendering: optimizeLegibility;
}

/* The site shell is edge-to-edge. Constrained blocks supply their own
   content gutters; global WordPress padding caused the visible left gap. */
.wp-site-blocks {
	margin-top: 0 !important;
	padding-top: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

.wp-site-blocks > :first-child,
.wp-site-blocks > header:first-child,
.wp-site-blocks > .wp-block-template-part:first-child,
header.wp-block-template-part {
	margin-block-start: 0 !important;
	margin-top: 0 !important;
}

/* Header template parts contain two full-width groups. WordPress's global
   block gap must not create space before or between those shell elements. */
.wp-site-blocks > header.wp-block-template-part:first-child,
.wp-site-blocks > header.wp-block-template-part:first-child > :first-child,
.wp-site-blocks > header.wp-block-template-part:first-child > * + * {
	margin-block-start: 0 !important;
}

.wp-site-blocks,
.wp-site-blocks > header,
.wp-site-blocks > footer,
.wp-site-blocks > main {
	margin-left: 0 !important;
	margin-right: 0 !important;
	max-width: none;
	width: 100%;
}

.wp-site-blocks > .alignfull {
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100%;
	max-width: none;
}

/* Full-width coloured surfaces meet directly; WordPress block gap must not
   create a page-background strip between product content and the pre-footer. */
.wp-site-blocks > main + footer.wp-block-template-part,
body.single-product .wp-site-blocks > main + footer.wp-block-template-part,
body.single-product .sr-product-page + footer.wp-block-template-part {
	margin-block-start: 0 !important;
}

/* Product-page surfaces are deliberately contiguous. Saved block templates
   can supply flow margins, block gaps and wrapper padding independently, so
   neutralise all three at the structural parents instead of painting over the
   resulting white bands. Intentional spacing remains inside each section. */
body.single-product .wp-site-blocks,
body.single-product main.sr-product-page,
body.single-product main .wp-block-post-content,
body.single-product .sr-product-content-stack,
body.single-product footer.wp-block-template-part {
	column-gap: 0 !important;
	row-gap: 0 !important;
}

body.single-product .wp-site-blocks > main,
body.single-product .wp-site-blocks > footer,
body.single-product main.sr-product-page,
body.single-product footer.wp-block-template-part {
	margin-block: 0 !important;
	padding-block-end: 0 !important;
}

body.single-product .wp-site-blocks > main + *,
body.single-product .wp-site-blocks > * + footer,
body.single-product main.sr-product-page > * + *,
body.single-product main .wp-block-post-content > * + * {
	margin-block-start: 0 !important;
}

body.single-product main [class*="wp-block-southern-range-product-content-"],
body.single-product main .srpc-block {
	margin-block: 0 !important;
	padding-block: 0 !important;
}

body.single-product footer.wp-block-template-part,
body.single-product footer.wp-block-template-part > :first-child {
	margin-block-start: 0 !important;
	padding-block-start: 0 !important;
}

/* Shared width contract for the WooCommerce summary and all data-dense
   product modules. Component plugins can use .sr-product-wide directly or
   consume the custom properties exposed by .sr-product-content-stack. */
.sr-product-page {
	--srpc-content-size: var(--sr-reading-size);
	--srpc-wide-size: var(--sr-product-wide-size);
	--srpc-inline-gutter: var(--sr-page-gutter);
	width: 100%;
}

.sr-product-wide {
	margin-inline: auto;
	max-width: var(--sr-product-wide-size);
	width: calc(100% - var(--sr-page-gutter) - var(--sr-page-gutter));
}

.sr-product-summary-shell,
.sr-product-content-stack,
.wp-block-southern-range-product-content-content-stack {
	min-width: 0;
}

.sr-product-summary-shell,
.sr-product-summary-shell .woocommerce div.product,
.sr-product-content-stack,
.wp-block-southern-range-product-content-content-stack {
	margin-block-end: 0;
}

.sr-product-content-stack,
.wp-block-southern-range-product-content-content-stack {
	--srpc-content-size: var(--sr-reading-size);
	--srpc-wide-size: var(--sr-product-wide-size);
	--srpc-inline-gutter: var(--sr-page-gutter);
	margin-block-start: 0;
	max-width: none;
	width: 100%;
}

.sr-product-content-stack > *,
.wp-block-southern-range-product-content-content-stack > * {
	margin-block-start: 0;
}

.sr-product-reading {
	margin-inline: auto;
	max-width: var(--sr-reading-size);
	width: calc(100% - var(--sr-page-gutter) - var(--sr-page-gutter));
}

@media (max-width: 780px) {
	.sr-product-wide,
	.sr-product-reading {
		width: calc(100% - var(--sr-page-gutter) - var(--sr-page-gutter));
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.sr-button.is-loading::after { animation-duration: 1.5s; }
}

/* 1.1.1: mobile product-summary density and a wrapper-independent gutter.
   Database-saved block templates do not always retain the theme's
   .sr-product-summary-shell width contract, so the WooCommerce wrapper is
   also constrained directly. */
@media (max-width: 640px) {
	.sr-product-page {
		--sr-page-gutter: 1.25rem;
		padding-top: 1.25rem !important;
		overflow-x: clip;
	}

	body.single-product .sr-product-summary-shell,
	body.single-product .sr-product-wide:has(.woocommerce div.product) {
		box-sizing: border-box;
		max-width: none !important;
		width: 100% !important;
		margin-inline: 0 !important;
		padding-inline: 0 !important;
	}

	body.single-product main .woocommerce {
		box-sizing: border-box;
		width: 100%;
		max-width: none;
		padding-inline: var(--sr-page-gutter, 1.25rem) !important;
	}

	body.single-product main .woocommerce-breadcrumb {
		margin: 0 0 1rem;
		padding: 0 !important;
		font-size: .78rem;
		line-height: 1.45;
		overflow-wrap: anywhere;
	}

	body.single-product main .woocommerce div.product div.images,
	body.single-product main .woocommerce div.product div.summary {
		box-sizing: border-box;
		display:block!important;
		float: none;
		clear:both;
		width: 100% !important;
		max-width:100%!important;
		min-width:0!important;
		margin-inline:0!important;
		margin-bottom: 1.25rem;
	}

	body.single-product main .woocommerce div.product {
		display:block!important;
		width:100%!important;
		max-width:100%!important;
		min-width:0!important;
		overflow:visible;
	}

	body.single-product main .woocommerce div.product div.summary,
	body.single-product main .woocommerce div.product div.summary * {
		max-width:100%;
	}

	body.single-product main .woocommerce div.product div.summary {
		padding-inline:0!important;
		overflow-wrap:anywhere;
	}

	body.single-product main .woocommerce div.product .product_title {
		margin: .85rem 0 .55rem;
		font-size: clamp(1.9rem, 8.8vw, 2.55rem);
		line-height: 1.02;
	}

	body.single-product main .woocommerce div.product p.price,
	body.single-product main .woocommerce div.product span.price {
		margin-bottom: .8rem;
		font-size: clamp(1.65rem, 7vw, 2rem);
		line-height: 1.05;
	}

	body.single-product main .woocommerce-product-gallery,
	body.single-product main .woocommerce-product-gallery__wrapper,
	body.single-product main .woocommerce-product-gallery__image,
	body.single-product main .woocommerce-product-gallery__image img {
		max-width: 100%;
	}

	body.single-product main .woocommerce-product-gallery .flex-control-thumbs {
		margin-top: .65rem;
		padding: 0;
	}

	/* The live block template is a Columns block directly inside #main-content,
	   not a classic WooCommerce wrapper. Own the gutter on that real container. */
	body.single-product #main-content > .wp-block-columns.alignwide {
		box-sizing: border-box !important;
		display: flex !important;
		width: calc(100% - 40px) !important;
		max-width: none !important;
		min-width: 0 !important;
		margin-inline: 20px !important;
		padding-inline: 0 !important;
		flex-direction: column !important;
		gap: 24px !important;
	}

	body.single-product #main-content > .wp-block-columns.alignwide > .wp-block-column {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		flex-basis: 100% !important;
	}

	body.single-product #main-content > .wp-block-columns.alignwide .wp-block-post-title,
	body.single-product #main-content > .wp-block-columns.alignwide .wp-block-woocommerce-product-summary,
	body.single-product #main-content > .wp-block-columns.alignwide .wp-block-add-to-cart-form,
	body.single-product #main-content > .wp-block-columns.alignwide .wp-block-woocommerce-product-price,
	body.single-product #main-content > .wp-block-columns.alignwide .wc-block-components-notices,
	body.single-product #main-content > .wp-block-columns.alignwide .wp-block-woocommerce-product-meta,
	body.single-product #main-content > .wp-block-columns.alignwide form.cart {
		box-sizing: border-box !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		margin-inline: 0 !important;
		overflow-wrap: anywhere;
	}

	body.single-product #main-content > .wp-block-columns.alignwide .wp-block-post-title {
		font-size: clamp(2rem, 9vw, 2.75rem) !important;
		line-height: 1.02 !important;
	}

	body.single-product #main-content > .wp-block-columns.alignwide .wp-block-woocommerce-product-price {
		font-size: clamp(1.75rem, 8vw, 2.2rem) !important;
		line-height: 1 !important;
	}

	body.single-product #main-content > .wp-block-columns.alignwide .wp-block-woocommerce-product-summary {
		font-size: 1rem !important;
		line-height: 1.55 !important;
	}

	body.single-product #main-content > .wp-block-columns.alignwide .wc-block-components-notices.alignwide {
		margin-inline: 0 !important;
	}
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: "IBM Plex Sans Condensed", Arial, Helvetica, sans-serif;
}

.is-style-sr-technical,
.sr-technical {
	font-family: "IBM Plex Mono", Consolas, monospace;
	font-variant-numeric: tabular-nums slashed-zero;
	font-weight: 500;
	letter-spacing: 0.015em;
}

.sr-pattern {
	isolation: isolate;
	overflow: hidden;
	position: relative;
}

.sr-pattern::before {
	background-color: var(--sr-pattern-color, currentColor);
	content: "";
	inset: 0;
	mask-position: center;
	mask-repeat: repeat;
	opacity: var(--sr-pattern-opacity, 0.07);
	pointer-events: none;
	position: absolute;
	-webkit-mask-position: center;
	-webkit-mask-repeat: repeat;
	z-index: 0;
}

.sr-pattern > * {
	position: relative;
	z-index: 1;
}

.sr-pattern-trapezoid-outline::before {
	mask-image: url("../images/patterns/trapezoid-outline.svg");
	mask-size: 320px 187px;
	-webkit-mask-image: url("../images/patterns/trapezoid-outline.svg");
	-webkit-mask-size: 320px 187px;
}

.sr-pattern-trapezoid-fill::before {
	mask-image: url("../images/patterns/trapezoid-fill.svg");
	mask-size: 360px 210px;
	-webkit-mask-image: url("../images/patterns/trapezoid-fill.svg");
	-webkit-mask-size: 360px 210px;
}

.sr-pattern-topographic::before,
.sr-pattern-topographic-flat::before,
.sr-pattern-topographic-annotated::before,
.sr-pattern-topographic-terrain::before {
	background-color: transparent;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	mask-image: none;
	opacity: var(--sr-pattern-opacity, 1);
	-webkit-mask-image: none;
}

.sr-pattern-topographic::before,
.sr-pattern-topographic-flat::before {
	background-image: url("../images/patterns/topographic-flat.svg");
}

.sr-pattern-topographic-annotated::before {
	background-image: url("../images/patterns/topographic-annotated.svg");
}

.sr-pattern-topographic-terrain::before {
	background-image: url("../images/patterns/topographic-terrain-3d.svg");
	background-size: contain;
}

.sr-pattern-topographic-muted::before {
	filter: grayscale(1);
	opacity: var(--sr-pattern-opacity, 0.52);
}

a {
	text-underline-offset: 0.18em;
}

a:hover,
a:focus-visible {
	color: var(--wp--preset--color--eucalyptus);
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--red-earth);
	outline-offset: 3px;
}

.sr-announcement {
	font-size: 0.75rem;
	letter-spacing: 0.075em;
	text-transform: uppercase;
}

.sr-header-shell {
	border-bottom: 1px solid var(--sr-line);
}

.sr-header-shell .wp-block-navigation__submenu-container {
	min-width: 230px !important;
	padding: .45rem;
	background: var(--wp--preset--color--chalk);
	border: 1px solid var(--sr-line) !important;
	box-shadow: var(--sr-shadow);
}

.sr-header-shell .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: .7rem .8rem;
}

.sr-header-shell .wp-block-navigation-submenu__toggle {
	cursor: pointer;
}

.sr-brand img {
	display: block;
	height: auto;
	width: clamp(210px, 22vw, 310px);
}

.sr-brand,
.sr-footer-brand {
	margin: 0;
}

.sr-footer-brand {
	width: min(100%, 180px) !important;
}

.sr-footer-brand img {
	display: block;
	height: auto;
	max-width: none !important;
	width: 100% !important;
}

.sr-footer-legal {
	margin: .6rem 0 0;
	max-width: 54ch;
	color: rgba(246, 244, 241, .82);
	font-size: .82rem;
	line-height: 1.5;
}

.sr-business-details {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem 1.15rem;
	align-items: center;
	font-size: .82rem;
	line-height: 1.45;
}

.sr-business-details span,
.sr-business-details a {
	display: inline-flex;
	align-items: center;
	gap: .38rem;
}

.sr-business-details strong {
	font-family: var(--wp--preset--font-family--plex-mono, monospace);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .055em;
	text-transform: uppercase;
}

.sr-business-details a { color: inherit; text-underline-offset: .2em; }

.sr-business-details--footer {
	margin-top: 1rem;
	color: rgba(246, 244, 241, .82);
}

.sr-business-details--contact {
	margin-block: 1.25rem 2rem;
	padding: 1rem 1.15rem;
	background: rgba(119, 153, 125, .09);
	border-left: 3px solid #77997d;
}

@media (max-width: 600px) {
	.sr-business-details { align-items: flex-start; flex-direction: column; }
}

.wp-block-button__link,
button,
input,
select,
textarea {
	border-radius: var(--sr-radius-sm);
}

.is-style-sr-panel {
	background: var(--wp--preset--color--chalk);
	border: 1px solid var(--sr-line);
	border-radius: var(--sr-radius-md);
	box-shadow: var(--sr-shadow);
	padding: clamp(1.25rem, 3vw, 2.5rem);
}

.is-style-sr-dark-panel {
	background: var(--wp--preset--color--charcoal);
	border-radius: var(--sr-radius-md);
	color: var(--wp--preset--color--chalk);
	padding: clamp(1.25rem, 3vw, 2.5rem);
}

.is-style-sr-tessellation {
	background-color: #e8e9e8;
	background-image: linear-gradient(rgba(255, 255, 255, 0.72), rgba(255, 255, 255, 0.72)), url("../images/patterns/tessellation-landscape.svg");
	background-position: center;
	background-size: cover;
	border-radius: var(--sr-radius-md);
	overflow: hidden;
}

.is-style-sr-topographic-annotated {
	background-color: var(--wp--preset--color--sky, #c7d8e6);
	background-image: url("../images/patterns/topographic-annotated.svg");
	background-position: center 52%;
	background-repeat: no-repeat;
	background-size: cover;
	isolation: isolate;
	overflow: hidden;
}

.sr-prefooter {
	border-top: 1px solid rgba(30, 32, 33, 0.12);
	padding:
		clamp(3.5rem, 7vw, 7rem)
		clamp(1.5rem, 5vw, 5rem);
}

.sr-prefooter h2 {
	max-width: 18ch;
	margin-top: 0.4rem;
	margin-bottom: 0.75rem;
}

.sr-prefooter p:not(.sr-kicker) {
	max-width: 62ch;
}

/* One global, centrally controlled Coverage Planner pre-footer. */
.sr-planner-prefooter {
	position: relative;
	margin: 0 !important;
	color: #13212b;
	background: #C7D8E6 url("../images/patterns/topographic-annotated.svg") center / cover no-repeat;
	overflow: hidden;
}

.sr-planner-prefooter::after {
	content: none;
}

.wp-site-blocks > footer.wp-block-template-part,
footer.wp-block-template-part,
footer.wp-block-template-part > * { margin-block-start: 0 !important; }
.sr-planner-prefooter + .wp-block-group { margin-block-start: 0 !important; }

@media (min-width:2560px) {
	.wp-site-blocks .alignwide { max-width:var(--sr-width-max,1760px); }
}

.sr-planner-prefooter__inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 56fr) minmax(380px, 44fr);
	width: min(calc(100% - (2 * var(--sr-page-gutter, 24px))), var(--sr-width-wide, 1440px));
	margin-inline: auto;
}

.sr-planner-prefooter__visual {
	position: relative;
	min-height: 360px;
}

.sr-planner-prefooter__route {
	position: absolute;
	left: 8%;
	right: 12%;
	top: 54%;
	height: 7px;
	background: linear-gradient(90deg, #4c745f 0 42%, #a95042 42% 70%, #4c745f 70%);
	border-radius: 999px;
	transform: rotate(-8deg);
}

.sr-planner-prefooter__copy {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: clamp(2.5rem, 5vw, 5rem);
	background: transparent;
	box-shadow: none;
}

.sr-planner-prefooter__copy h2 {
	max-width: 18ch;
	margin: .5rem 0 1rem;
	font-size: clamp(2rem, 3.5vw, 3.8rem);
	line-height: 1;
}

.sr-planner-prefooter__copy > p:not(.sr-kicker):not(.sr-planner-prefooter__qualification) { max-width: 50ch; }
.sr-planner-prefooter__copy .wp-element-button { align-self: flex-start; min-height: 44px; margin-top: .65rem; }
.sr-planner-prefooter__qualification { max-width: 54ch; margin: 1rem 0 0; font-size: .78rem; line-height: 1.45; opacity: .78; }

body.single-product .srpc-cta--purchase,
body.single-product .srpc-content-stack,
body.single-product .sr-product-content-stack { margin-block-end: 0 !important; }
body.single-product .sr-planner-prefooter { margin-block-start: 0 !important; }

@media (max-width: 760px) {
	.sr-planner-prefooter__inner { grid-template-columns: 1fr; width: 100%; }
	.sr-planner-prefooter { background-position: 36% center; }
	.sr-planner-prefooter__copy { order: 1; margin: 0; padding: 2.25rem var(--sr-page-gutter, 20px) 1.75rem; background: transparent; box-shadow: none; }
	.sr-planner-prefooter__visual { order: 2; min-height: 150px; }
}

.is-style-sr-specs,
.is-style-sr-comparison {
	border-collapse: collapse;
	font-variant-numeric: tabular-nums;
	width: 100%;
}

.is-style-sr-specs td,
.is-style-sr-specs th,
.is-style-sr-comparison td,
.is-style-sr-comparison th {
	border-bottom: 1px solid var(--sr-line);
	padding: 0.85rem 0.75rem;
	text-align: left;
	vertical-align: top;
}

.is-style-sr-specs td:first-child,
.is-style-sr-specs th,
.is-style-sr-comparison th {
	font-family: "IBM Plex Mono", Consolas, monospace;
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.is-style-sr-comparison thead {
	background: var(--wp--preset--color--chalk);
}

.is-style-sr-editorial-image img,
.is-style-sr-product-gallery img {
	border: 1px solid var(--sr-line);
	box-shadow: 0 10px 30px rgba(28, 30, 31, 0.07);
}

.is-style-sr-product-gallery {
	gap: 0.75rem !important;
}

.is-style-sr-check-list {
	list-style: none;
	padding-left: 0;
}

.is-style-sr-check-list li {
	padding-left: 1.6rem;
	position: relative;
}

.is-style-sr-check-list li::before {
	color: var(--wp--preset--color--eucalyptus);
	content: "✓";
	font-family: "IBM Plex Mono", Consolas, monospace;
	left: 0;
	position: absolute;
}

.wp-block-button.is-style-sr-secondary .wp-block-button__link {
	background: transparent;
	border: 1px solid currentColor;
	color: var(--wp--preset--color--charcoal);
}

.wp-block-button.is-style-sr-text-link .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--charcoal);
	padding-left: 0;
	padding-right: 0;
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

.sr-page-shell {
	padding-bottom: var(--wp--preset--spacing--xl);
	padding-top: var(--wp--preset--spacing--lg);
}

.sr-page-kicker,
.sr-meta-label,
.sr-proof-strip {
	font-family: "IBM Plex Mono", Consolas, monospace;
	font-size: 0.76rem;
	font-weight: 500;
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.is-style-sr-eyebrow,
.sr-eyebrow {
	color: var(--wp--preset--color--eucalyptus);
	font-family: "IBM Plex Mono", Consolas, monospace;
	font-size: clamp(0.7rem, 1vw, 0.8rem) !important;
	font-weight: 500 !important;
	letter-spacing: 0.1em !important;
	line-height: 1.4 !important;
	margin-bottom: 0.7rem !important;
	text-transform: uppercase;
}

.sr-section-heading {
	margin-top: 0;
	max-width: 18ch;
}

.sr-product-section {
	padding-bottom: clamp(3.5rem, 7vw, 7rem);
	padding-top: clamp(3.5rem, 7vw, 7rem);
}

.sr-product-hero {
	align-items: center;
}

.sr-product-visual {
	align-items: center;
	aspect-ratio: 4 / 3;
	background: linear-gradient(145deg, #f8f7f4, #ecebe7);
	border: 1px solid var(--sr-line);
	border-radius: var(--sr-radius-md);
	display: flex;
	justify-content: center;
	min-height: 360px;
	overflow: hidden;
	position: relative;
}

.sr-product-visual::after {
	color: rgba(28, 30, 31, 0.3);
	content: "PRODUCT PHOTOGRAPHY";
	font-family: "IBM Plex Mono", Consolas, monospace;
	font-size: 0.7rem;
	letter-spacing: 0.12em;
	position: absolute;
	right: 1.1rem;
	top: 1rem;
}

.sr-product-visual img {
	height: auto;
	max-height: 82%;
	max-width: 82%;
	object-fit: contain;
}

.sr-price-line {
	align-items: baseline;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1rem;
}

.sr-price {
	font-family: "IBM Plex Sans Condensed", Arial, sans-serif;
	font-size: clamp(2.2rem, 4vw, 3.4rem);
	font-weight: 600;
	line-height: 1;
}

.sr-value-note,
.sr-stock-note {
	font-family: "IBM Plex Mono", Consolas, monospace;
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.sr-stock-note {
	color: var(--wp--preset--color--eucalyptus);
}

.sr-icon-card {
	border-top: 2px solid var(--wp--preset--color--eucalyptus);
	padding-top: 1.1rem;
}

.sr-icon-card .sr-icon {
	align-items: center;
	background: var(--wp--preset--color--chalk);
	border-radius: 50%;
	display: flex;
	height: 52px;
	justify-content: center;
	margin-bottom: 1rem;
	width: 52px;
}

.sr-icon svg {
	fill: none;
	height: 28px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
	width: 28px;
}

.sr-value-bars {
	display: grid;
	gap: 1rem;
}

.sr-value-row {
	display: grid;
	gap: 0.55rem;
	grid-template-columns: minmax(170px, 1fr) minmax(220px, 2.4fr) auto;
}

.sr-value-track {
	background: rgba(28, 30, 31, 0.08);
	border-radius: 999px;
	height: 12px;
	overflow: hidden;
}

.sr-value-fill {
	background: var(--wp--preset--color--red-earth);
	border-radius: inherit;
	display: block;
	height: 100%;
}

.sr-value-row:first-child .sr-value-fill {
	background: var(--wp--preset--color--eucalyptus);
}

.sr-value-number {
	font-family: "IBM Plex Mono", Consolas, monospace;
	font-size: 0.82rem;
	font-variant-numeric: tabular-nums;
}

.sr-mount-diagram {
	background: var(--wp--preset--color--chalk);
	border: 1px solid var(--sr-line);
	border-radius: var(--sr-radius-md);
	padding: clamp(1.5rem, 4vw, 3rem);
}

.sr-mount-diagram .sr-flow {
	align-items: center;
	display: grid;
	gap: 1rem;
	grid-template-columns: 1fr auto 1fr auto 1fr;
	text-align: center;
}

.sr-flow-step {
	border: 1px solid var(--sr-line);
	border-radius: var(--sr-radius-sm);
	min-height: 105px;
	padding: 1rem;
}

.sr-flow-arrow {
	color: var(--wp--preset--color--red-earth);
	font-family: "IBM Plex Mono", Consolas, monospace;
	font-size: 1.5rem;
}

.sr-kit-item {
	border-bottom: 1px solid var(--sr-line);
	padding-bottom: 1rem;
}

.sr-kit-number {
	color: var(--wp--preset--color--eucalyptus);
	font-family: "IBM Plex Mono", Consolas, monospace;
	font-size: 0.76rem;
}

@media (max-width: 780px) {
	.sr-value-row {
		grid-template-columns: 1fr auto;
	}

	.sr-value-track {
		grid-column: 1 / -1;
		grid-row: 2;
	}

	.sr-mount-diagram .sr-flow {
		grid-template-columns: 1fr;
	}

	.sr-flow-arrow {
		transform: rotate(90deg);
	}
}

.sr-proof-strip {
	align-items: center;
	border-bottom: 1px solid var(--sr-line);
	border-top: 1px solid var(--sr-line);
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 2rem;
	justify-content: space-between;
	padding: 1rem 0;
}

.sr-card-grid > .wp-block-column,
.sr-benefit-card {
	border: 1px solid var(--sr-line);
	border-radius: var(--sr-radius-md);
	padding: 1.25rem;
}

.sr-availability {
	border-left: 4px solid var(--wp--preset--color--red-earth);
}

.sr-last-reviewed {
	border-top: 1px solid var(--sr-line);
	color: var(--wp--preset--color--eucalyptus);
	font-family: "IBM Plex Mono", Consolas, monospace;
	font-size: 0.75rem;
	margin-top: var(--wp--preset--spacing--lg);
	padding-top: 1rem;
}

input,
select,
textarea {
	border: 1px solid rgba(28, 30, 31, 0.3);
	font: inherit;
	padding: 0.75rem 0.85rem;
}

.wp-block-post-featured-image img,
.wp-block-image img,
.woocommerce img {
	border-radius: var(--sr-radius-md);
}

.woocommerce ul.products li.product,
.wc-block-product {
	border: 1px solid var(--sr-line);
	border-radius: var(--sr-radius-md);
	padding: 1rem;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price,
.wc-block-components-product-price {
	color: var(--wp--preset--color--charcoal);
	font-weight: 700;
}

/* Shared icon/label and table wrapping contract. Components may change layout
   at narrow widths, but must never split an ordinary word to preserve columns. */
.sr-icon-label,
.sr-proof-strip > *,
.sr-trust-item,
.wc-block-components-product-metadata,
.woocommerce-product-attributes-item,
.is-style-sr-comparison th,
.is-style-sr-comparison td {
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
}

.sr-icon-label__icon,
.sr-proof-strip img,
.sr-trust-item img {
	flex: 0 0 auto;
}

.sr-icon-label__text,
.sr-proof-strip span,
.sr-trust-item span {
	min-width: 0;
	word-break: normal;
	overflow-wrap: normal;
	hyphens: none;
}

@media (max-width: 780px) {
	.sr-header-inner {
		gap: 1rem;
	}

	.sr-brand img {
		width: 210px;
	}

	.sr-header-shell .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
		min-width: 0 !important;
		padding: .25rem 0 .25rem 1rem;
		background: transparent;
		border: 0 !important;
		box-shadow: none;
	}
}
