/*
 * Spoonful theme styles.
 *
 * Single file, no imports, no CDN, system font stacks only.
 * Layout tokens live on body.sp-layout-terracotta / body.sp-layout-sage.
 */

/* -------------------------------------------------------------------------
 * Layout tokens
 * ---------------------------------------------------------------------- */

body.sp-layout-terracotta {
	--sp-bg: #FBF4EA;
	--sp-card: #FFFCF8;
	--sp-primary: #B0654A;
	--sp-deep: #2F4A33;
	--sp-tint: #E4E8D2;
	--sp-accent: #D9A441;
	--sp-radius: 22px;
	--sp-font-heading: Georgia, "Iowan Old Style", "Times New Roman", serif;
	--sp-font-body: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

body.sp-layout-sage {
	--sp-bg: #FBF4EA;
	--sp-card: #FFFCF8;
	--sp-primary: #5C7A3A;
	--sp-deep: #4A6B2A;
	--sp-tint: #DDE5C8;
	--sp-accent: #B0654A;
	--sp-radius: 24px;
	--sp-font-heading: ui-rounded, "Nunito", "Segoe UI", system-ui, sans-serif;
	--sp-font-body: ui-rounded, "Nunito", "Segoe UI", system-ui, sans-serif;
	--sp-peach: #F6D6C8;
	--sp-butter: #F2C94C;
	--sp-sky: #D6E9F4;
}

/* -------------------------------------------------------------------------
 * Reset and base
 * ---------------------------------------------------------------------- */

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

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

body {
	margin: 0;
	overflow-x: clip;
	background: var(--sp-bg);
	color: var(--sp-deep);
	font-family: var(--sp-font-body);
	font-size: 1rem;
	line-height: 1.65;
	overflow-wrap: break-word;
	color-scheme: light;
}

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

img {
	display: block;
}

/* Safety net for icons printed by Brand Core: no inline SVG may fill the screen. */
.bc-icon svg,
svg.bc-icon {
	width: 1.25em;
	height: 1.25em;
}

.sp-main svg:not([width]):not([class*="sp-"]) {
	max-width: 48px;
	max-height: 48px;
}

figure {
	margin: 0;
}

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

a {
	color: var(--sp-primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 0.5em;
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-weight: 700;
	line-height: 1.15;
	overflow-wrap: anywhere;
}

p {
	margin: 0 0 1em;
}

p:last-child {
	margin-bottom: 0;
}

ul,
ol {
	margin: 0 0 1em;
	padding-left: 1.2em;
}

table {
	border-collapse: collapse;
}

:focus-visible {
	outline: 3px solid var(--sp-accent);
	outline-offset: 3px;
}

.sp-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.sp-skip {
	position: absolute;
	top: -100px;
	left: 16px;
	z-index: 200;
	padding: 0.65rem 1rem;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-weight: 700;
	text-decoration: none;
}

.sp-skip:focus {
	top: 12px;
}

/* -------------------------------------------------------------------------
 * Layout helpers and buttons
 * ---------------------------------------------------------------------- */

.sp-container {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding-inline: 16px;
}

.sp-main {
	display: block;
}

.sp-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45rem;
	min-height: 44px;
	padding: 0.78rem 1.35rem;
	border: 0;
	border-radius: 999px;
	background: var(--sp-primary);
	color: #fff;
	font-family: var(--sp-font-body);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.sp-btn:hover {
	transform: translateY(-1px);
	filter: brightness(0.96);
}

.sp-btn--primary {
	background: var(--sp-deep);
	color: var(--sp-bg);
}

.sp-layout-sage .sp-btn--primary {
	background: var(--sp-primary);
	color: #fff;
}

/* -------------------------------------------------------------------------
 * Header and navigation
 * ---------------------------------------------------------------------- */

.sp-header {
	position: sticky;
	top: 0;
	z-index: 80;
	background: rgba(251, 244, 234, 0.94);
	border-bottom: 1px solid rgba(47, 74, 51, 0.1);
	backdrop-filter: blur(10px);
}

body.admin-bar .sp-header {
	top: 32px;
}

@media (max-width: 782px) {
	body.admin-bar .sp-header {
		top: 46px;
	}
}

.sp-header__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 72px;
}

.sp-brand {
	display: flex;
	align-items: center;
	min-width: 0;
}

.sp-brand img {
	width: auto;
	max-height: 44px;
}

.sp-brand__text {
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: 1.45rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
}

/* Brand Core wordmark (logo slot) ---------------------------------------- */

.bc-wordmark {
	display: inline-flex;
	flex-direction: column;
	max-width: 100%;
	color: var(--sp-deep);
	line-height: 1.05;
	text-decoration: none;
}

.bc-wordmark:hover,
.bc-wordmark:focus {
	text-decoration: none;
}

.bc-wordmark__name {
	display: inline-flex;
	align-items: baseline;
	font-family: var(--sp-font-heading);
	font-size: clamp(1.6rem, 3vw, 2.1rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1;
}

.bc-wordmark__name span:first-child {
	color: var(--sp-primary);
}

.bc-wordmark__name span:last-child {
	color: var(--sp-deep);
}

.sp-layout-sage .bc-wordmark__name span:last-child {
	color: #C58F00;
}

.bc-wordmark__tagline {
	display: block;
	margin-top: 0.18rem;
	color: rgba(47, 74, 51, 0.62);
	font-family: var(--sp-font-body);
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1.25;
	overflow-wrap: break-word;
	white-space: normal;
}

.bc-wordmark--image,
.bc-wordmark--image picture {
	display: block;
	max-width: 100%;
}

.bc-wordmark--image img {
	width: auto;
	max-width: 100%;
	max-height: 48px;
	height: auto;
}

@media (max-width: 599px) {
	.sp-header .bc-wordmark__tagline {
		display: none;
	}
}

.sp-header__actions {
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.sp-nav {
	display: flex;
	align-items: center;
	gap: 1.2rem;
}

.sp-menu {
	display: flex;
	align-items: center;
	gap: 1.2rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-menu a {
	display: inline-block;
	padding: 0.35rem 0;
	color: var(--sp-deep);
	font-size: 0.94rem;
	font-weight: 600;
	text-decoration: none;
}

.sp-menu a:hover {
	color: var(--sp-primary);
}

.sp-menu .current-menu-item > a,
.sp-menu .current_page_item > a {
	color: var(--sp-primary);
}

/* WooCommerce pages are not represented by the core fallback menu items, so
 * clear the URL-path "current" highlight there (header only). */
body.woocommerce-page .sp-menu .current-menu-item > a,
body.woocommerce-page .sp-menu .current_page_item > a,
body.woocommerce-page .sp-menu .current-menu-ancestor > a,
body.woocommerce-page .sp-menu .current-menu-parent > a,
body.woocommerce-page .sp-menu .current_page_parent > a,
body.woocommerce-page .sp-menu .current_page_ancestor > a,
body.woocommerce-page .sp-menu a[aria-current="page"] {
	color: var(--sp-deep);
}

.sp-nav__cta {
	margin-left: 0.4rem;
}

.sp-cart {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	color: var(--sp-deep);
	text-decoration: none;
}

.sp-cart:hover {
	background: var(--sp-tint);
}

.sp-cart__count {
	position: absolute;
	top: 1px;
	right: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--sp-primary);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 800;
	line-height: 1;
}

.sp-menu-toggle {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--sp-deep);
	cursor: pointer;
}

.sp-menu-toggle:hover {
	background: var(--sp-tint);
}

.sp-menu-toggle span {
	display: block;
	width: 22px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
}

@media (max-width: 899px) {
	.sp-nav[hidden] {
		display: none;
	}

	.sp-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		gap: 0.35rem;
		padding: 0.9rem 16px 1.35rem;
		background: var(--sp-card);
		border-bottom: 1px solid rgba(47, 74, 51, 0.1);
		box-shadow: 0 18px 30px rgba(47, 74, 51, 0.12);
	}

	.sp-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.sp-menu li {
		border-bottom: 1px solid rgba(47, 74, 51, 0.08);
	}

	.sp-menu a {
		display: block;
		padding: 0.75rem 0;
	}

	.sp-nav__cta {
		margin: 0.8rem 0 0;
	}
}

@media (min-width: 900px) {
	.sp-nav,
	.sp-nav[hidden] {
		display: flex;
	}

	.sp-nav {
		position: static;
		flex-direction: row;
		padding: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
	}

	.sp-menu {
		flex-direction: row;
	}

	.sp-menu li {
		border: 0;
	}

	.sp-menu-toggle {
		display: none;
	}
}

/* -------------------------------------------------------------------------
 * Homepage sections
 * ---------------------------------------------------------------------- */

.sp-eyebrow {
	margin: 0 0 0.6rem;
	color: var(--sp-primary);
	font-family: var(--sp-font-body);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.sp-section {
	padding-block: 3rem;
}

.sp-section__head {
	max-width: 680px;
	margin: 0 auto 2rem;
	text-align: center;
}

.sp-section__title {
	margin-bottom: 0.55rem;
	font-size: clamp(1.8rem, 5vw, 2.7rem);
}

.sp-section__intro {
	max-width: 34rem;
	margin-inline: auto;
	color: var(--sp-deep);
	opacity: 0.78;
}

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

.sp-hero {
	padding-block: 2.25rem 2.75rem;
	overflow: hidden;
}

.sp-hero__inner {
	display: grid;
	gap: 2rem;
	align-items: center;
}

.sp-hero__title {
	margin-bottom: 1rem;
	font-size: clamp(2.5rem, 9vw, 4.5rem);
	letter-spacing: -0.02em;
}

.sp-accent {
	color: var(--sp-primary);
}

.sp-hero__body {
	max-width: 34rem;
	font-size: 1.02rem;
	line-height: 1.7;
	opacity: 0.84;
}

.sp-hero__actions {
	margin: 1.4rem 0 0;
}

.sp-hero__note {
	display: inline-block;
	margin: 0.9rem 0 0;
	padding: 0.1rem 0.45rem 0.2rem;
	color: var(--sp-primary);
	font-family: "Segoe Script", "Bradley Hand", "Brush Script MT", "Comic Sans MS", cursive;
	font-size: clamp(1.3rem, 2.6vw, 1.9rem);
	line-height: 1.2;
	transform: rotate(-6deg);
}

.sp-layout-sage .sp-hero__note {
	color: var(--sp-deep);
}

.sp-hero__media {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	min-width: 0;
}

.sp-hero__img {
	width: 100%;
	height: auto;
	object-fit: cover;
	border-radius: var(--sp-radius);
}

.sp-hero__placeholder {
	position: relative;
	width: 100%;
	min-height: 260px;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 45% 55% 48% 52% / 52% 44% 56% 48%;
	background: radial-gradient(circle at 30% 22%, var(--sp-tint) 0, var(--sp-card) 62%, var(--sp-bg) 100%);
	box-shadow: inset 0 0 0 1px rgba(47, 74, 51, 0.08);
}

.sp-hero__placeholder::before {
	content: "";
	position: absolute;
	inset: 16% 14%;
	border-radius: 50% 42% 56% 44% / 44% 56% 44% 56%;
	background: linear-gradient(145deg, var(--sp-primary), var(--sp-accent));
	opacity: 0.8;
}

.sp-hero__placeholder::after {
	content: "";
	position: absolute;
	left: 12%;
	bottom: 10%;
	width: 34%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--sp-card);
	opacity: 0.7;
}

.sp-layout-sage .sp-hero__placeholder {
	background: radial-gradient(circle at 30% 22%, var(--sp-butter) 0, var(--sp-sky) 46%, var(--sp-peach) 100%);
}

.sp-layout-sage .sp-hero__placeholder::before {
	background: linear-gradient(145deg, var(--sp-primary), var(--sp-deep));
}

.sp-hero__buy {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem 1rem;
	padding: 20px;
	border-radius: 24px;
	background: var(--sp-card);
	box-shadow: 0 18px 40px rgba(47, 74, 51, 0.14);
}

.sp-hero__product-name {
	margin: 0;
	font-family: var(--sp-font-heading);
	font-size: 1.05rem;
	font-weight: 700;
}

.sp-hero__price {
	font-weight: 800;
	color: var(--sp-primary);
}

@media (max-width: 899px) {
	.sp-hero__img,
	.sp-hero__placeholder {
		max-height: 360px;
	}

	.sp-hero__img {
		object-fit: cover;
	}
}

/* Trust ------------------------------------------------------------------ */

.sp-trust {
	padding-block: 1.75rem 2.25rem;
}

.sp-trust__inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
}

.sp-trust__item {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	min-width: 0;
}

.sp-trust__icon {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	background: var(--sp-tint);
	color: var(--sp-deep);
}

.sp-trust__icon svg {
	width: 24px;
	height: 24px;
}

.sp-trust__label {
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.3;
}

.sp-layout-sage .sp-trust__item:nth-child(4n + 1) .sp-trust__icon {
	background: var(--sp-peach);
}

.sp-layout-sage .sp-trust__item:nth-child(4n + 2) .sp-trust__icon {
	background: var(--sp-butter);
}

.sp-layout-sage .sp-trust__item:nth-child(4n + 3) .sp-trust__icon {
	background: var(--sp-sky);
}

.sp-layout-sage .sp-trust__item:nth-child(4n + 4) .sp-trust__icon {
	background: var(--sp-tint);
}

/* Ingredients ------------------------------------------------------------ */

.sp-ingredients__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.sp-ing {
	padding: 1.5rem 1.25rem;
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	text-align: center;
	box-shadow: 0 12px 30px rgba(47, 74, 51, 0.07);
}

.sp-ing__swatch {
	display: block;
	width: 76px;
	height: 76px;
	margin: 0 auto 1rem;
	border-radius: 50% 44% 56% 50%;
}

.sp-ing__swatch--1 {
	background: linear-gradient(140deg, #e7d6b3, #c9a66b);
}

.sp-ing__swatch--2 {
	background: linear-gradient(140deg, #f6dc82, #e8bd3d);
}

.sp-ing__swatch--3 {
	background: linear-gradient(140deg, #a97752, #6d432a);
}

.sp-ing__name {
	margin-bottom: 0.4rem;
	font-size: 1.25rem;
}

.sp-ing__text {
	margin: 0;
	font-size: 0.94rem;
	opacity: 0.78;
}

/* Story ------------------------------------------------------------------ */

.sp-story__inner {
	display: grid;
	gap: 0;
	align-items: stretch;
}

.sp-story__media {
	min-width: 0;
	overflow: hidden;
	border-radius: var(--sp-radius) var(--sp-radius) 0 0;
}

.sp-story__media img {
	width: 100%;
	height: 100%;
	min-height: 260px;
	object-fit: cover;
}

.sp-story__placeholder {
	width: 100%;
	min-height: 280px;
	background:
		radial-gradient(circle at 70% 30%, var(--sp-tint) 0 18%, transparent 19%),
		radial-gradient(circle at 30% 68%, var(--sp-peach, var(--sp-tint)) 0 22%, transparent 23%),
		linear-gradient(145deg, var(--sp-tint), var(--sp-card));
}

.sp-story__panel {
	padding: 2rem 1.5rem;
	border-radius: 0 0 var(--sp-radius) var(--sp-radius);
	background: var(--sp-primary);
	color: #fff;
}

.sp-story__eyebrow {
	color: rgba(255, 255, 255, 0.76);
}

.sp-story__title {
	color: #fff;
	font-size: clamp(1.8rem, 5vw, 2.6rem);
}

.sp-story__body {
	color: rgba(255, 255, 255, 0.88);
}

.sp-story__actions {
	margin: 1.35rem 0 0;
}

.sp-story__btn {
	background: var(--sp-bg);
	color: var(--sp-deep);
}

.sp-layout-sage .sp-story__media {
	border-radius: 46% 54% 48% 52% / 52% 44% 56% 48%;
}

.sp-layout-sage .sp-story__panel {
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	color: var(--sp-deep);
}

.sp-layout-sage .sp-story__eyebrow {
	color: var(--sp-primary);
}

.sp-layout-sage .sp-story__title {
	color: var(--sp-deep);
}

.sp-layout-sage .sp-story__body {
	color: var(--sp-deep);
	opacity: 0.8;
}

.sp-layout-sage .sp-story__btn {
	background: var(--sp-primary);
	color: #fff;
}

/* Steps ------------------------------------------------------------------ */

.sp-steps {
	border-radius: 0;
}

.sp-layout-sage .sp-steps {
	margin: 2.25rem 8px;
	padding-block: 2.25rem;
	border-radius: 38px;
	background: var(--sp-tint);
}

.sp-steps__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.9rem;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.sp-step {
	display: flex;
	align-items: flex-start;
	gap: 0.9rem;
	padding: 1.1rem;
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 10px 24px rgba(47, 74, 51, 0.06);
}

.sp-step__num {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--sp-deep);
	color: #fff;
	font-family: var(--sp-font-heading);
	font-size: 1.15rem;
	font-weight: 800;
}

.sp-step:nth-child(2) .sp-step__num {
	background: var(--sp-primary);
}

.sp-step:nth-child(3) .sp-step__num {
	background: var(--sp-accent);
	color: var(--sp-deep);
}

.sp-step__text {
	padding-top: 0.3rem;
	font-weight: 600;
	line-height: 1.45;
}

/* Reviews ---------------------------------------------------------------- */

.sp-reviews__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}

.sp-review {
	padding: 1.35rem;
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.07);
}

.sp-review__text {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 1rem;
	line-height: 1.65;
}

.sp-review__text p {
	margin: 0;
}

.sp-review__name {
	margin-top: 0.9rem;
	color: var(--sp-primary);
	font-size: 0.88rem;
	font-weight: 800;
}

/* Closing CTA ------------------------------------------------------------ */

.sp-cta {
	padding-block: 2.75rem 0;
}

.sp-cta__inner {
	padding: 2.25rem 1.35rem;
	border-radius: 40px 40px 0 0;
	background: var(--sp-deep);
	color: var(--sp-bg);
}

.sp-cta__title {
	max-width: 20ch;
	color: var(--sp-bg);
	font-size: clamp(1.8rem, 6vw, 2.8rem);
}

.sp-cta__actions {
	margin: 1.25rem 0 0;
}

.sp-cta__btn {
	background: var(--sp-bg);
	color: var(--sp-deep);
}

.sp-cta__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem 1rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
}

.sp-cta__list li {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	min-width: 0;
	color: var(--sp-bg);
	font-size: 0.87rem;
	font-weight: 600;
	line-height: 1.3;
}

.sp-cta__icon {
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.12);
	color: var(--sp-bg);
}

.sp-cta__icon svg {
	width: 20px;
	height: 20px;
}

.sp-layout-sage .sp-cta__inner {
	border-radius: var(--sp-radius);
	background:
		radial-gradient(circle at 92% 10%, var(--sp-tint) 0 9%, transparent 10%),
		radial-gradient(circle at 82% 18%, var(--sp-sky) 0 7%, transparent 8%),
		var(--sp-card);
	color: var(--sp-deep);
	box-shadow: 0 14px 34px rgba(47, 74, 51, 0.08);
}

.sp-layout-sage .sp-cta__title,
.sp-layout-sage .sp-cta__list li {
	color: var(--sp-deep);
}

.sp-layout-sage .sp-cta__icon {
	background: var(--sp-tint);
	color: var(--sp-deep);
}

.sp-layout-sage .sp-cta__btn {
	background: var(--sp-primary);
	color: #fff;
}

/* -------------------------------------------------------------------------
 * Brand Core mobile bottom navigation
 * ---------------------------------------------------------------------- */

.bc-bottom-nav {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 60;
	width: 100%;
	background: var(--sp-card);
	border-top: 1px solid rgba(47, 74, 51, 0.12);
	box-shadow: 0 -6px 20px rgba(47, 74, 51, 0.08);
	padding-bottom: env(safe-area-inset-bottom, 0px);
}

.bc-bottom-nav__list {
	display: flex;
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-bottom-nav__list li {
	display: flex;
	flex: 1 1 0;
	min-width: 0;
}

.bc-bottom-nav__link {
	position: relative;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 2px;
	min-width: 0;
	padding: 8px 4px;
	color: var(--sp-deep);
	font-size: 0.68rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
}

.bc-bottom-nav__link:hover,
.bc-bottom-nav__link:focus-visible {
	text-decoration: none;
}

.bc-bottom-nav__link.is-active {
	color: var(--sp-primary);
}

.bc-bottom-nav__icon {
	position: relative;
	display: block;
	width: 24px;
	height: 24px;
}

.bc-bottom-nav__icon svg {
	display: block;
	width: 24px;
	height: 24px;
}

.bc-bottom-nav__cart-count {
	position: absolute;
	top: -6px;
	right: -8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	border-radius: 999px;
	background: var(--sp-primary);
	color: #fff;
	font-size: 10px;
	font-weight: 800;
	line-height: 1;
}

.bc-bottom-nav__link--whatsapp {
	color: #1f8f4e;
}

@media (max-width: 899px) {
	body {
		padding-bottom: calc(64px + env(safe-area-inset-bottom, 0px));
	}
}

@media (min-width: 900px) {
	.bc-bottom-nav {
		display: none;
	}
}

/* -------------------------------------------------------------------------
 * Footer
 * ---------------------------------------------------------------------- */

.sp-footer {
	margin-top: 0;
	background: var(--sp-deep);
	color: var(--sp-bg);
}

.sp-footer__inner {
	display: grid;
	gap: 2rem;
	align-items: center;
	padding-block: 48px 36px;
	text-align: center;
}

.sp-footer a {
	color: var(--sp-bg);
	text-decoration: none;
}

.sp-footer a:hover {
	color: var(--sp-accent);
	text-decoration: underline;
}

/* Clear the URL-path "current" highlight on WooCommerce pages (footer only). */
body.woocommerce-page .sp-footer__menu .current-menu-item > a,
body.woocommerce-page .sp-footer__menu .current_page_item > a,
body.woocommerce-page .sp-footer__menu .current-menu-ancestor > a,
body.woocommerce-page .sp-footer__menu .current-menu-parent > a,
body.woocommerce-page .sp-footer__menu .current_page_parent > a,
body.woocommerce-page .sp-footer__menu .current_page_ancestor > a,
body.woocommerce-page .sp-footer__menu a[aria-current="page"] {
	color: var(--sp-bg);
}

.sp-footer .bc-wordmark,
.sp-footer .bc-wordmark:hover,
.sp-footer .bc-wordmark:focus {
	text-decoration: none;
}

.sp-footer .bc-wordmark__name span,
.sp-footer .bc-wordmark__name span:first-child,
.sp-footer .bc-wordmark__name span:last-child {
	color: var(--sp-bg);
}

.sp-footer .bc-wordmark__tagline {
	color: rgba(251, 244, 234, 0.72);
	font-size: 0.78rem;
}

.sp-brand__text {
	color: inherit;
}

.sp-footer__brand {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.sp-footer__brand .sp-brand__text,
.sp-footer__brand a {
	color: var(--sp-bg);
}

.sp-footer__tag {
	margin: 0.45rem 0 0;
	color: rgba(251, 244, 234, 0.8);
	font-size: 0.92rem;
}

.sp-footer__menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.55rem 1.15rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-footer__menu a {
	font-size: 0.92rem;
	font-weight: 600;
}

.sp-footer__contact {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.45rem;
	color: rgba(251, 244, 234, 0.85);
	font-size: 0.9rem;
}

.sp-footer__legal {
	padding-block: 1rem;
	border-top: 1px solid rgba(251, 244, 234, 0.16);
	font-size: 0.82rem;
	text-align: center;
}

.sp-footer__legal p {
	margin: 0;
	opacity: 0.8;
}

/* -------------------------------------------------------------------------
 * Pages, prose and 404
 * ---------------------------------------------------------------------- */

.sp-prose {
	max-width: 780px;
	padding-block: 2.75rem 3.5rem;
	overflow-wrap: anywhere;
}

.sp-prose h1,
.sp-prose h2,
.sp-prose h3,
.sp-prose h4 {
	margin-top: 1.4em;
}

.sp-prose h1 {
	margin-top: 0;
	font-size: clamp(2rem, 6vw, 3rem);
}

.sp-prose p,
.sp-prose li {
	line-height: 1.75;
}

.sp-prose a {
	font-weight: 600;
}

.sp-prose blockquote {
	margin: 1.5rem 0;
	padding: 0.85rem 1.15rem;
	border-left: 4px solid var(--sp-primary);
	background: var(--sp-card);
	border-radius: 0 var(--sp-radius) var(--sp-radius) 0;
}

.sp-prose img {
	margin-block: 1rem;
	border-radius: var(--sp-radius);
}

.sp-page__body > *:first-child,
.sp-entry__body > *:first-child {
	margin-top: 0;
}

.sp-entry {
	padding-block: 1.4rem;
	border-bottom: 1px solid rgba(47, 74, 51, 0.12);
}

.sp-entry__title {
	font-size: clamp(1.5rem, 4vw, 2rem);
}

.sp-entry__title a {
	color: inherit;
	text-decoration: none;
}

.sp-entry__title a:hover {
	color: var(--sp-primary);
}

.sp-center {
	text-align: center;
}

.sp-center .sp-btn {
	margin-top: 0.5rem;
}

/* -------------------------------------------------------------------------
 * WooCommerce basics
 * ---------------------------------------------------------------------- */

.sp-woo {
	padding-block: 2rem 3.5rem;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .cart .button,
.woocommerce .cart input.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0.65rem 1.15rem;
	border: 0;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background: var(--sp-primary);
	color: #fff;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce #respond input#submit.alt,
.woocommerce a.button.checkout-button {
	background: var(--sp-primary);
	color: #fff;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover,
.woocommerce a.button.checkout-button:hover {
	background: var(--sp-deep);
}

.woocommerce .quantity,
.quantity {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.woocommerce .quantity input.qty,
.quantity input.qty,
.woocommerce input.qty {
	width: 4.5rem;
	min-height: 42px;
	padding: 0.45rem 0.55rem;
	border: 1px solid rgba(47, 74, 51, 0.22);
	border-radius: 12px;
	background: var(--sp-card);
	text-align: center;
}

.bc-price,
.woocommerce .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--sp-deep);
	font-weight: 800;
}

.bc-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
}

.bc-price del,
.bc-price__was {
	color: var(--sp-deep);
	font-size: 0.85em;
	font-weight: 500;
	opacity: 0.55;
	text-decoration: line-through;
}

.bc-price__save {
	display: inline-flex;
	align-items: center;
	padding: 2px 10px;
	border-radius: 999px;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-size: 0.8rem;
	font-weight: 800;
	line-height: 1.4;
}

.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	color: var(--sp-primary);
	text-decoration: none;
}

.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	opacity: 0.55;
}

.bc-product-card__commerce {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.6rem;
}

.bc-card-bundles {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.bc-card-bundles__chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 0.35rem 0.8rem;
	border: 1px solid rgba(47, 74, 51, 0.2);
	border-radius: 999px;
	background: var(--sp-card);
	color: var(--sp-deep);
	font-size: 0.82rem;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
}

.bc-card-bundles__chip:hover {
	border-color: var(--sp-primary);
}

.bc-card-bundles__chip.is-selected,
.bc-card-bundles__chip[aria-pressed="true"] {
	border-color: var(--sp-deep);
	background: var(--sp-deep);
	color: var(--sp-bg);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error {
	margin: 0 0 1.25rem;
	padding: 0.9rem 1rem 0.9rem 2.6rem;
	border-top: 0;
	border-left: 4px solid var(--sp-primary);
	border-radius: 12px;
	background: var(--sp-card);
	color: var(--sp-deep);
	list-style: none;
	overflow-wrap: anywhere;
}

.woocommerce-error {
	border-left-color: #b23b2e;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	color: var(--sp-primary);
}

.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce,
.woocommerce-order-received .woocommerce {
	max-width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.woocommerce table.shop_table {
	width: 100%;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--sp-card);
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 0.8rem;
	border-bottom: 1px solid rgba(47, 74, 51, 0.1);
	text-align: left;
	vertical-align: top;
}

.woocommerce table.shop_table th {
	font-weight: 800;
}

.woocommerce table.shop_table tbody tr:last-child td,
.woocommerce table.shop_table tbody tr:last-child th {
	border-bottom: 0;
}

.woocommerce .cart-collaterals,
.woocommerce-checkout .col2-set,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review,
.woocommerce #customer_details {
	width: 100%;
	max-width: 100%;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container .select2-selection--single {
	min-height: 44px;
	padding: 0.55rem 0.7rem;
	border: 1px solid rgba(47, 74, 51, 0.22);
	border-radius: 12px;
	background: var(--sp-card);
}

.woocommerce form .form-row label {
	font-weight: 600;
}

.woocommerce ul.products,
.wc-block-grid__products,
body.woocommerce ul.products,
body.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products li.product,
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product {
	float: none;
	width: 100%;
	margin: 0;
	padding: 16px;
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.07);
}

/* -------------------------------------------------------------------------
 * Responsive
 * ---------------------------------------------------------------------- */

@media (min-width: 600px) {
	.sp-trust__inner {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.sp-ingredients__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.sp-reviews__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

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

	.sp-footer__inner {
		grid-template-columns: 1.2fr 1fr;
		align-items: start;
	}

	.sp-footer__contact {
		grid-column: 1 / -1;
	}
}

@media (max-width: 599px) {
	.sp-section {
		padding-block: 2.4rem;
	}

	.sp-hero {
		padding-block: 1.75rem 2.25rem;
	}

	.sp-hero__title {
		font-size: clamp(2.2rem, 12vw, 3.1rem);
	}

	.sp-hero__placeholder {
		min-height: 230px;
	}

	.sp-story__panel {
		padding: 1.6rem 1.15rem;
	}

	.sp-layout-sage .sp-steps {
		margin-inline: 0;
		padding-inline: 0.75rem;
		border-radius: 28px;
	}

	.sp-cta__inner {
		padding: 1.75rem 1.1rem;
	}

	.woocommerce table.shop_table_responsive tr td,
	.woocommerce-page table.shop_table_responsive tr td {
		padding: 0.65rem;
	}
}

@media (min-width: 900px) {
	.sp-hero {
		min-height: 560px;
		padding-block: 56px;
	}

	.sp-hero__inner {
		position: relative;
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: 3.25rem;
	}

	.sp-hero__note {
		position: absolute;
		top: -8px;
		right: 16px;
		z-index: 2;
		max-width: min(280px, 45%);
		margin: 0;
		text-align: right;
	}

	.sp-hero__buy {
		position: relative;
		z-index: 2;
		width: calc(100% - 40px);
		margin: -48px auto 0;
	}

	.sp-hero__body {
		font-size: 1.08rem;
	}

	.sp-section {
		padding-block: 4rem;
	}

	.sp-story__inner {
		grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
	}

	.sp-story__media {
		border-radius: var(--sp-radius) 0 0 var(--sp-radius);
	}

	.sp-story__media img {
		min-height: 420px;
	}

	.sp-story__placeholder {
		height: 100%;
		min-height: 420px;
	}

	.sp-story__panel {
		display: flex;
		flex-direction: column;
		justify-content: center;
		padding: 3rem 2.75rem;
		border-radius: 0 var(--sp-radius) var(--sp-radius) 0;
	}

	.sp-layout-terracotta .sp-story__panel {
		border-radius: 48px 0 0 48px;
		box-shadow: -18px 0 0 0 var(--sp-primary);
	}

	.sp-layout-sage .sp-story__media {
		border-radius: 46% 54% 48% 52% / 52% 44% 56% 48%;
		overflow: hidden;
	}

	.sp-layout-sage .sp-story__panel {
		border-radius: var(--sp-radius);
	}

	.sp-steps__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1rem;
	}

	.sp-layout-sage .sp-steps {
		max-width: 1180px;
		margin-inline: auto;
	}

	.sp-cta {
		padding-block: 3.5rem 0;
	}

	.sp-cta__inner {
		display: grid;
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		gap: 2rem;
		align-items: center;
		padding: 3rem;
	}

	.sp-cta__list {
		margin-top: 0;
	}

	.sp-footer__inner {
		grid-template-columns: 1.3fr 0.9fr 1fr;
		align-items: start;
		padding-block: 48px 36px;
		text-align: left;
	}

	.sp-footer__brand {
		align-items: flex-start;
	}

	.sp-footer__menu {
		flex-direction: column;
		align-items: flex-start;
		justify-content: flex-start;
		gap: 0.45rem;
	}

	.sp-footer__contact {
		grid-column: auto;
		align-items: flex-start;
	}
}

/* -------------------------------------------------------------------------
 * Reduced motion
 * ---------------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.sp-btn:hover {
		transform: none;
	}
}

/* -------------------------------------------------------------------------
 * Commerce page shell (cart, checkout, account, thank-you)
 * ---------------------------------------------------------------------- */

body.woocommerce-cart .sp-prose,
body.woocommerce-checkout .sp-prose,
body.woocommerce-account .sp-prose,
body.woocommerce-order-received .sp-prose {
	max-width: 1180px;
	padding-block: 2rem 3.5rem;
}

body.woocommerce-cart .sp-page__title,
body.woocommerce-checkout .sp-page__title,
body.woocommerce-account .sp-page__title {
	margin-bottom: 1.25rem;
	font-size: clamp(2rem, 4vw, 2.8rem);
}

body.woocommerce-cart .sp-main a:not(.button):not(.wc-block-components-button):not(.remove),
body.woocommerce-checkout .sp-main a:not(.button):not(.wc-block-components-button):not(.remove),
body.woocommerce-account .sp-main a:not(.button):not(.wc-block-components-button):not(.remove) {
	color: var(--sp-deep);
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

body.woocommerce-cart .wc-block-components-button:not(.is-link),
body.woocommerce-checkout .wc-block-components-button:not(.is-link),
body.woocommerce-account .wc-block-components-button:not(.is-link) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.7rem 1.25rem;
	border: 0;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-family: var(--sp-font-body);
	font-size: 0.95rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

body.sp-layout-sage.woocommerce-cart .wc-block-components-button:not(.is-link),
body.sp-layout-sage.woocommerce-checkout .wc-block-components-button:not(.is-link),
body.sp-layout-sage.woocommerce-account .wc-block-components-button:not(.is-link) {
	background: var(--sp-primary);
	color: #fff;
}

/* -------------------------------------------------------------------------
 * Shop / product archive and shared product cards
 * ---------------------------------------------------------------------- */

.woocommerce .woocommerce-products-header,
.woocommerce-page .woocommerce-products-header {
	margin-bottom: 1.25rem;
}

.woocommerce .woocommerce-products-header__title,
.woocommerce-page .woocommerce-products-header__title {
	font-size: clamp(1.9rem, 5vw, 2.8rem);
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin: 0 0 1rem;
	color: var(--sp-deep);
	font-size: 0.9rem;
}

.woocommerce .woocommerce-ordering select {
	min-height: 48px;
	padding: 0.55rem 2.2rem 0.55rem 0.85rem;
	border: 1px solid rgba(47, 74, 51, 0.24);
	border-radius: 12px;
	background-color: var(--sp-card);
	color: var(--sp-deep);
	font-weight: 600;
}

.woocommerce ul.products,
.wc-block-grid__products,
body.woocommerce ul.products,
body.woocommerce-page ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 24px;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none;
}

.woocommerce ul.products li.product,
.wc-block-grid__product,
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product {
	display: flex;
	flex-direction: column;
	float: none;
	width: 100%;
	margin: 0;
	padding: 16px;
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.12);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.07);
	text-align: left;
}

.woocommerce ul.products li.product .woocommerce-loop-product__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	color: inherit;
	text-decoration: none;
}

.woocommerce ul.products li.product a img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	border-radius: calc(var(--sp-radius) - 6px);
	background: var(--sp-tint);
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	margin: 0.9rem 0 0.35rem;
	padding: 0;
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.25;
}

.woocommerce ul.products li.product .price {
	margin: 0 0 0.9rem;
	color: var(--sp-deep);
	font-size: 1.05rem;
	font-weight: 800;
}

.woocommerce ul.products li.product .price:not(.bc-price) {
	display: block;
}

.woocommerce ul.products li.product > .button,
.woocommerce ul.products li.product > .added_to_cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	margin: auto 0 0;
	padding: 0.65rem 1rem;
	border: 0;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
}

.sp-layout-sage .woocommerce ul.products li.product .button,
.sp-layout-sage .woocommerce ul.products li.product .added_to_cart {
	background: var(--sp-primary);
	color: #fff;
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product .added_to_cart:hover {
	filter: brightness(0.95);
}

/* Brand Core shared product-card block ---------------------------------- */

.woocommerce ul.products li.product .bc-product-card__commerce {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	margin-top: auto;
	padding: 0;
}

.woocommerce ul.products li.product .bc-product-card__price {
	margin: 0;
}

.woocommerce ul.products li.product .bc-product-card__buy {
	display: grid;
	gap: 0.75rem;
	margin: 0;
}

.woocommerce ul.products li.product .bc-product-card__actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.6rem;
}

.bc-product-card__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 0.65rem 1rem;
	border: 0;
	border-radius: 999px;
	font-family: var(--sp-font-body);
	font-size: 0.95rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.bc-product-card__button--buy {
	background: var(--sp-deep);
	color: var(--sp-bg);
}

.sp-layout-sage .bc-product-card__button--buy {
	background: var(--sp-primary);
	color: #fff;
}

.woocommerce ul.products li.product .bc-product-card__button,
.woocommerce ul.products li.product .bc-product-card__actions .button,
.woocommerce ul.products li.product .bc-product-card__actions a.button,
.woocommerce ul.products li.product .bc-product-card__actions button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 0.65rem 1rem;
	border: 0;
	border-radius: 999px;
	font-family: var(--sp-font-body);
	font-size: 0.95rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.woocommerce ul.products li.product .bc-product-card__button--buy {
	background: var(--sp-deep);
	color: var(--sp-bg);
}

.woocommerce ul.products li.product .bc-product-card__actions .button,
.woocommerce ul.products li.product .bc-product-card__actions a.button,
.woocommerce ul.products li.product .bc-product-card__actions button.button {
	border: 2px solid var(--sp-deep);
	background: transparent;
	color: var(--sp-deep);
}

.sp-layout-sage .woocommerce ul.products li.product .bc-product-card__button--buy {
	background: var(--sp-primary);
	color: #fff;
}

.sp-layout-sage .woocommerce ul.products li.product .bc-product-card__actions .button,
.sp-layout-sage .woocommerce ul.products li.product .bc-product-card__actions a.button,
.sp-layout-sage .woocommerce ul.products li.product .bc-product-card__actions button.button {
	border-color: var(--sp-primary);
	background: transparent;
	color: var(--sp-primary);
}

.woocommerce ul.products li.product .bc-product-card__button:hover,
.woocommerce ul.products li.product .bc-product-card__actions .button:hover {
	filter: brightness(0.96);
}

/* Bundle chips (cards) --------------------------------------------------- */

.woocommerce ul.products li.product .bc-card-bundles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(5.5rem, 1fr));
	gap: 0.5rem;
}

.woocommerce ul.products li.product .bc-card-bundles__chip {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.45rem 0.6rem;
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.24);
	border-radius: 14px;
	background: var(--sp-card);
	color: var(--sp-deep);
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
}

.woocommerce ul.products li.product .bc-card-bundles__chip:hover {
	border-color: var(--sp-deep);
}

.woocommerce ul.products li.product .bc-card-bundles__chip:focus-within {
	outline: 3px solid var(--sp-accent);
	outline-offset: 2px;
}

.woocommerce ul.products li.product .bc-card-bundles__chip.is-selected,
.woocommerce ul.products li.product .bc-card-bundles__chip[aria-pressed="true"] {
	border-color: var(--sp-deep);
	background: var(--sp-deep);
	color: var(--sp-bg);
}

.sp-layout-sage .woocommerce ul.products li.product .bc-card-bundles__chip.is-selected,
.sp-layout-sage .woocommerce ul.products li.product .bc-card-bundles__chip[aria-pressed="true"] {
	border-color: var(--sp-primary);
	background: var(--sp-primary);
	color: #fff;
}

.woocommerce ul.products li.product .bc-card-bundles__radio {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.woocommerce ul.products li.product .bc-card-bundles__label {
	position: relative;
	z-index: 1;
	pointer-events: none;
}

/* Brand Core price markup ------------------------------------------------ */

.woocommerce ul.products li.product .bc-price,
.woocommerce div.product .bc-price,
.bc-product .bc-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px;
	color: var(--sp-deep);
}

.woocommerce ul.products li.product .bc-price__current,
.woocommerce div.product .bc-price__current,
.bc-product .bc-price__current {
	color: var(--sp-deep);
	font-size: 1.2rem;
	font-weight: 800;
}

.woocommerce ul.products li.product .bc-price__was,
.woocommerce div.product .bc-price__was,
.bc-product .bc-price__was {
	color: var(--sp-deep);
	font-size: 0.85em;
	font-weight: 500;
	opacity: 0.55;
	text-decoration: line-through;
}

.woocommerce ul.products li.product .bc-price__save,
.woocommerce div.product .bc-price__save,
.bc-product .bc-price__save {
	display: inline-flex;
	align-items: center;
	padding: 2px 10px;
	border-radius: 999px;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-size: 0.8rem;
	font-weight: 800;
	line-height: 1.4;
}

/* -------------------------------------------------------------------------
 * Single product (default WooCommerce + Brand Core layout)
 * ---------------------------------------------------------------------- */

.woocommerce-breadcrumb,
.sp-breadcrumb,
.bc-breadcrumb {
	margin: 0 0 1rem;
	padding: 0.5rem 0;
	color: var(--sp-deep);
	font-size: 0.82rem;
}

.woocommerce-breadcrumb a,
.sp-breadcrumb a,
.bc-breadcrumb a {
	color: var(--sp-deep);
	text-decoration: underline;
	text-underline-offset: 0.16em;
}

.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
}

.woocommerce div.product > * {
	grid-column: 1 / -1;
	min-width: 0;
}

.woocommerce div.product div.images,
.woocommerce div.product .woocommerce-product-gallery,
.woocommerce div.product div.summary {
	float: none;
	width: 100%;
	max-width: 100%;
	margin: 0;
}

.woocommerce div.product div.images,
.woocommerce div.product .woocommerce-product-gallery {
	overflow: hidden;
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 16px 40px rgba(47, 74, 51, 0.09);
}

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	margin: 0;
}

.woocommerce div.product div.images img {
	width: 100%;
	border-radius: inherit;
}

.woocommerce div.product div.images .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.75rem 0 0;
	padding: 0 0.75rem 0.75rem;
	list-style: none;
}

.woocommerce div.product div.images .flex-control-thumbs li {
	width: 4.5rem;
	margin: 0;
}

.woocommerce div.product div.images .flex-control-thumbs img {
	border: 2px solid transparent;
	border-radius: 10px;
	opacity: 1;
}

.woocommerce div.product div.images .flex-control-thumbs img:hover,
.woocommerce div.product div.images .flex-control-thumbs img.flex-active {
	border-color: var(--sp-deep);
}

.woocommerce div.product .summary {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid rgba(47, 74, 51, 0.1);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.06);
}

.woocommerce div.product .summary .product_title {
	margin: 0;
	font-size: clamp(1.8rem, 4vw, 2.7rem);
}

.woocommerce div.product .summary .woocommerce-product-details__short-description {
	color: var(--sp-deep);
}

.woocommerce div.product .summary p.price,
.woocommerce div.product .summary span.price {
	margin: 0;
	color: var(--sp-deep);
	font-size: 1.35rem;
	font-weight: 800;
}

.woocommerce div.product .summary p.price del,
.woocommerce div.product .summary span.price del,
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
	opacity: 1;
	color: var(--sp-deep);
}

.woocommerce div.product .summary p.price ins,
.woocommerce div.product .summary span.price ins,
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
	color: var(--sp-deep);
	text-decoration: none;
}

.woocommerce div.product .summary .product_meta {
	color: var(--sp-deep);
	font-size: 0.82rem;
}

.woocommerce div.product form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
	margin: 0.5rem 0 0;
}

.woocommerce div.product form.cart div.quantity {
	display: inline-flex;
	align-items: center;
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.24);
	border-radius: 999px;
	background: var(--sp-bg);
}

.woocommerce div.product form.cart .quantity input.qty {
	width: 4.5rem;
	height: 48px;
	padding: 0.4rem 0.55rem;
	border: 0;
	background: transparent;
	color: var(--sp-deep);
	font-weight: 700;
	text-align: center;
}

.woocommerce div.product form.cart .single_add_to_cart_button {
	flex: 1 1 100%;
	width: 100%;
	min-height: 52px;
	padding: 0.75rem 1.25rem;
	border: 0;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.2;
	text-transform: none;
}

.sp-layout-sage .woocommerce div.product form.cart .single_add_to_cart_button {
	background: var(--sp-primary);
	color: #fff;
}

.woocommerce div.product form.cart .single_add_to_cart_button:hover {
	filter: brightness(0.96);
}

/* WooCommerce tabs and related products --------------------------------- */

.woocommerce div.product .woocommerce-tabs {
	padding-top: 0.5rem;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0 0 1rem;
	padding: 0;
	border: 0;
	list-style: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
	display: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
	display: block;
	padding: 0.55rem 0.9rem;
	border-radius: 999px;
	background: var(--sp-card);
	color: var(--sp-deep);
	font-weight: 700;
	text-decoration: none;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
	background: var(--sp-deep);
	color: var(--sp-bg);
}

.woocommerce div.product .woocommerce-tabs .panel {
	margin: 0;
	padding: 1.1rem 1.25rem;
	border: 1px solid rgba(47, 74, 51, 0.1);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	color: var(--sp-deep);
}

.woocommerce .related.products,
.woocommerce .upsells.products {
	margin-top: 2rem;
}

.woocommerce .related.products > h2,
.woocommerce .upsells.products > h2 {
	margin-bottom: 1rem;
	font-size: clamp(1.4rem, 3vw, 2rem);
}

/* Brand Core product layout ---------------------------------------------- */

.bc-product__hero {
	padding-block: 1rem 2rem;
}

.bc-product__hero-inner {
	display: grid;
	gap: 1.5rem;
	align-items: start;
}

.bc-product__gallery {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	min-width: 0;
}

.bc-product__media {
	overflow: hidden;
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 16px 40px rgba(47, 74, 51, 0.09);
}

.bc-product__image {
	width: 100%;
	height: auto;
}

.bc-product__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-product__thumb {
	width: 4.5rem;
	aspect-ratio: 1;
	padding: 0;
	overflow: hidden;
	border: 2px solid transparent;
	border-radius: 12px;
	background: var(--sp-card);
	cursor: pointer;
}

.bc-product__thumb.is-active {
	border-color: var(--sp-deep);
}

.bc-product__summary {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	border: 1px solid rgba(47, 74, 51, 0.1);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.06);
}

.bc-product__badge {
	align-self: flex-start;
	padding: 0.35rem 0.75rem;
	border-radius: 999px;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.bc-product__title {
	margin: 0;
	font-size: clamp(1.8rem, 4vw, 2.7rem);
}

.bc-product__subtitle {
	margin: 0;
	color: var(--sp-deep);
	font-weight: 600;
}

.bc-product__short-desc {
	color: var(--sp-deep);
}

.bc-product__features {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-product__features li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	min-width: 0;
	color: var(--sp-deep);
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.3;
}

.bc-product__feature-icon {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: var(--sp-tint);
	color: var(--sp-deep);
}

.bc-product__feature-icon svg {
	width: 1.25rem;
	height: 1.25rem;
	fill: none;
	stroke: currentColor;
}

.bc-product__pack {
	margin: 0;
	color: var(--sp-deep);
}

.bc-product__purchase {
	margin-top: 0.5rem;
}

/* Bundle selector (product page) ---------------------------------------- */

.bc-bundle {
	margin: 0 0 1rem;
}

.bc-bundle__title {
	margin: 0 0 0.6rem;
	color: var(--sp-deep);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.bc-bundle__offers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
	gap: 0.5rem;
	margin-top: 0.65rem;
}

.bc-bundle__offer {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.2rem;
	min-height: 6.75rem;
	padding: 0.75rem 0.4rem;
	border: 1px solid rgba(47, 74, 51, 0.24);
	border-radius: 14px;
	background: var(--sp-card);
	text-align: center;
	cursor: pointer;
}

.bc-bundle__offer:hover {
	border-color: var(--sp-deep);
}

.bc-bundle__offer:focus-within {
	outline: 3px solid var(--sp-accent);
	outline-offset: 2px;
}

.bc-bundle__offer.is-selected {
	border-color: var(--sp-deep);
	background: var(--sp-tint);
	box-shadow: inset 0 0 0 1px var(--sp-deep);
}

.sp-layout-sage .bc-bundle__offer.is-selected {
	border-color: var(--sp-primary);
	box-shadow: inset 0 0 0 1px var(--sp-primary);
}

.bc-bundle__ribbon {
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 1;
	padding: 0.14rem 0.5rem;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	line-height: 1.4;
	text-transform: uppercase;
	white-space: nowrap;
	transform: translate(-50%, -50%);
}

.sp-layout-sage .bc-bundle__ribbon {
	background: var(--sp-primary);
	color: #fff;
}

.bc-bundle__radio {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.bc-bundle__qty {
	color: var(--sp-deep);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.bc-bundle__price {
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: 1.05rem;
	font-weight: 800;
}

.bc-bundle__was {
	color: var(--sp-deep);
	font-size: 0.75rem;
	text-decoration: line-through;
}

.bc-bundle__badge {
	display: block;
	max-width: 100%;
	padding: 0.1rem 0.35rem;
	overflow: hidden;
	border-radius: 999px;
	background: var(--sp-card);
	color: var(--sp-deep);
	font-size: 0.68rem;
	font-weight: 800;
	line-height: 1.35;
	white-space: nowrap;
}

/* Product story / benefits / inside / how-to-use ------------------------- */

.bc-product__band {
	background: var(--sp-tint);
}

.bc-product__band-inner {
	display: grid;
	gap: 1.25rem;
	padding-block: 2rem;
}

.bc-product__band-title {
	margin: 0;
	font-size: clamp(1.6rem, 3vw, 2.3rem);
}

.bc-product__band-body {
	margin-top: 0.75rem;
	color: var(--sp-deep);
}

.bc-product__band-image {
	width: 100%;
	height: auto;
	border-radius: var(--sp-radius);
}

.bc-product__story {
	padding-block: 1.5rem 2rem;
}

.bc-product__card {
	padding: clamp(1.1rem, 2.5vw, 1.75rem);
	border: 1px solid rgba(47, 74, 51, 0.1);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.06);
}

.bc-product__card + .bc-product__card {
	margin-top: 1.25rem;
}

.bc-product__cards {
	display: grid;
	gap: 1.25rem;
	margin-top: 1.25rem;
}

.bc-product__card-title {
	margin: 0 0 0.85rem;
	font-size: clamp(1.35rem, 2.4vw, 1.85rem);
}

.bc-product__card-body {
	color: var(--sp-deep);
	line-height: 1.7;
}

.bc-product__card-body p:last-child {
	margin-bottom: 0;
}

.bc-product__checklist,
.bc-product__ingredients,
.bc-product__steps,
.bc-product__how-steps {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-product__checklist li,
.bc-product__ingredient {
	display: flex;
	align-items: flex-start;
	gap: 0.6rem;
}

.bc-product__checklist svg {
	flex: 0 0 auto;
	width: 1.1rem;
	height: 1.1rem;
	margin-top: 0.2rem;
	fill: none;
	stroke: var(--sp-deep);
}

.bc-product__swatch,
.bc-product__item-icon {
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 1.1rem;
	height: 1.1rem;
	margin-top: 0.2rem;
	border-radius: 50%;
}

.bc-product__swatch {
	box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12);
}

.bc-product__item-icon svg {
	width: 100%;
	height: 100%;
	fill: none;
	stroke: var(--sp-deep);
}

.bc-product__ingredient-text {
	display: grid;
	gap: 0.1rem;
}

.bc-product__ingredient-text strong {
	color: var(--sp-deep);
}

.bc-product__ingredient-text small {
	color: var(--sp-deep);
	font-size: 0.82rem;
}

.bc-product__benefit-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-product__benefit-grid li {
	display: grid;
	justify-items: center;
	gap: 0.35rem;
	text-align: center;
}

.bc-product__benefit-icon {
	display: grid;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	background: var(--sp-tint);
	color: var(--sp-deep);
}

.bc-product__benefit-icon svg {
	width: 1.4rem;
	height: 1.4rem;
	fill: none;
	stroke: currentColor;
}

.bc-product__benefit-label {
	color: var(--sp-deep);
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1.3;
}

.bc-product__benefit-desc {
	color: var(--sp-deep);
	font-size: 0.78rem;
	line-height: 1.3;
}

.bc-product__note {
	display: inline-block;
	margin: 0;
	padding: 0.4rem 0.8rem;
	border-radius: 999px;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-size: 0.82rem;
	font-weight: 600;
}

.bc-product__steps li {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
}

.bc-product__step-num {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 1.8rem;
	height: 1.8rem;
	border-radius: 50%;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-size: 0.8rem;
	font-weight: 800;
}

.bc-product__step-text {
	display: grid;
	gap: 0.1rem;
	color: var(--sp-deep);
	font-size: 0.9rem;
}

.bc-product__how-steps {
	grid-template-columns: repeat(auto-fit, minmax(5.5rem, 1fr));
	text-align: center;
}

.bc-product__how-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.3rem;
}

.bc-product__how-step svg {
	width: 2.25rem;
	height: 2.25rem;
	fill: none;
	stroke: var(--sp-deep);
}

.bc-product__how-step-main {
	color: var(--sp-deep);
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.2;
}

.bc-product__how-step-sub {
	color: var(--sp-deep);
	font-size: 0.78rem;
	line-height: 1.2;
}

.bc-product__tip {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 1rem 0 0;
	padding: 0.75rem 0.9rem;
	border-radius: 14px;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-size: 0.85rem;
	font-weight: 600;
}

.bc-product__tip svg {
	flex: 0 0 auto;
	width: 1.2rem;
	height: 1.2rem;
	fill: none;
	stroke: var(--sp-deep);
}

.bc-product__story-image,
.bc-product__whats-inside-image {
	width: 100%;
	height: auto;
	border-radius: var(--sp-radius);
}

.bc-product__whats-inside-media {
	margin-top: 1rem;
}

.bc-product__promo {
	padding-block: 1.5rem;
	background: var(--sp-tint);
}

.bc-product__promo-text {
	margin: 0;
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: 1.2rem;
}

.bc-product__also {
	padding-block: 1.75rem;
}

.bc-product__also-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.25rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bc-product__also-link {
	color: var(--sp-deep);
	font-weight: 700;
}

/* -------------------------------------------------------------------------
 * Cart and checkout: shared controls
 * ---------------------------------------------------------------------- */

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea,
.woocommerce .select2-container .select2-selection--single,
body.woocommerce-cart .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-select select,
body.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input,
body.woocommerce-checkout .wc-block-components-address-form input,
body.woocommerce-checkout .wc-block-components-address-form select,
body.woocommerce-account .wc-block-components-text-input input {
	width: 100%;
	min-height: 48px;
	padding: 0.7rem 0.9rem;
	border: 1px solid rgba(47, 74, 51, 0.28);
	border-radius: 12px;
	background: var(--sp-card);
	color: var(--sp-deep);
	font-size: 1rem;
	line-height: 1.3;
}

body.woocommerce-cart .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-select select,
body.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input,
body.woocommerce-checkout .wc-block-components-address-form input,
body.woocommerce-checkout .wc-block-components-address-form select,
body.woocommerce-account .wc-block-components-text-input input {
	height: 48px;
}

.woocommerce form .form-row textarea {
	min-height: 120px;
	height: auto;
}

.woocommerce .select2-container .select2-selection--single {
	display: flex;
	align-items: center;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__rendered {
	padding: 0;
	color: var(--sp-deep);
	line-height: 1.3;
}

.woocommerce .select2-container .select2-selection--single .select2-selection__arrow {
	height: 46px;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce .select2-container--focus .select2-selection--single,
body.woocommerce-cart .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-select select:focus,
body.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input:focus,
body.woocommerce-checkout .wc-block-components-address-form input:focus,
body.woocommerce-checkout .wc-block-components-address-form select:focus,
body.woocommerce-account .wc-block-components-text-input input:focus {
	outline: 3px solid var(--sp-accent);
	outline-offset: 2px;
	border-color: var(--sp-deep);
}

.woocommerce form .form-row label {
	display: block;
	margin-bottom: 0.35rem;
	color: var(--sp-deep);
	font-size: 0.9rem;
	font-weight: 700;
}

body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-select label,
body.woocommerce-cart .wc-block-components-text-input label,
body.woocommerce-account .wc-block-components-text-input label {
	color: var(--sp-deep);
	font-size: 0.85rem;
	font-weight: 600;
}

.woocommerce form .form-row .required {
	color: #B3261E;
}

/* Validation and error notices ------------------------------------------- */

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select,
.woocommerce form .form-row.woocommerce-invalid textarea,
.wc-block-components-text-input.has-error input,
.wc-block-components-text-input.is-invalid input,
.wc-block-components-select.has-error select {
	border-color: #B3261E;
	background: #FDECEA;
}

.woocommerce form .form-row .wc-block-components-validation-error,
.wc-block-components-validation-error,
.wc-block-components-validation-error p,
.woocommerce-error,
.woocommerce-error li {
	color: #B3261E;
}

.woocommerce-notices-wrapper .woocommerce-error,
body.woocommerce-cart .wc-block-components-notice-banner.is-error,
body.woocommerce-checkout .wc-block-components-notice-banner.is-error,
body.woocommerce-account .wc-block-components-notice-banner.is-error {
	margin: 0 0 1.25rem;
	padding: 1rem 1.15rem;
	border: 1px solid #B3261E;
	border-left: 5px solid #B3261E;
	border-radius: 12px;
	background: #FDECEA;
	color: #B3261E;
	list-style: none;
}

.woocommerce-error {
	border: 1px solid #B3261E;
	border-left: 5px solid #B3261E;
	background: #FDECEA;
}

.woocommerce-notices-wrapper .woocommerce-error::before,
.woocommerce-notices-wrapper .woocommerce-error li::before {
	color: #B3261E;
}

body.woocommerce-cart .wc-block-components-notice-banner.is-error .wc-block-components-notice-banner__content,
body.woocommerce-checkout .wc-block-components-notice-banner.is-error .wc-block-components-notice-banner__content,
body.woocommerce-account .wc-block-components-notice-banner.is-error .wc-block-components-notice-banner__content {
	color: #B3261E;
}

body.woocommerce-cart .wc-block-components-notice-banner.is-error svg,
body.woocommerce-checkout .wc-block-components-notice-banner.is-error svg,
body.woocommerce-account .wc-block-components-notice-banner.is-error svg {
	fill: #B3261E;
}

.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
body.woocommerce-cart .wc-block-components-notice-banner.is-success,
body.woocommerce-checkout .wc-block-components-notice-banner.is-success,
body.woocommerce-cart .wc-block-components-notice-banner.is-info,
body.woocommerce-checkout .wc-block-components-notice-banner.is-info {
	margin: 0 0 1.25rem;
	padding: 1rem 1.15rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-left: 5px solid var(--sp-deep);
	border-radius: 12px;
	background: var(--sp-card);
	color: var(--sp-deep);
	list-style: none;
}

/* Cart ------------------------------------------------------------------- */

.woocommerce table.shop_table {
	width: 100%;
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--sp-card);
}

.woocommerce table.shop_table th {
	padding: 0.85rem;
	border-bottom: 1px solid rgba(47, 74, 51, 0.12);
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-weight: 800;
	text-align: left;
}

.woocommerce table.shop_table td {
	padding: 0.85rem;
	border-bottom: 1px solid rgba(47, 74, 51, 0.1);
	color: var(--sp-deep);
	text-align: left;
	vertical-align: top;
}

.woocommerce table.shop_table tbody tr:last-child td,
.woocommerce table.shop_table tbody tr:last-child th {
	border-bottom: 0;
}

.woocommerce table.shop_table .product-name a {
	color: var(--sp-deep);
	font-weight: 700;
}

.woocommerce table.shop_table .product-thumbnail img {
	width: 64px;
	height: auto;
	border-radius: 12px;
}

.woocommerce .cart .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--sp-bg);
	color: #B3261E;
	font-weight: 800;
	text-decoration: none;
}

.woocommerce .cart .product-remove a.remove:hover {
	background: #B3261E;
	color: #fff;
}

.woocommerce .cart-collaterals .cart_totals {
	padding: 1.1rem 1.25rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.06);
}

.woocommerce .cart-collaterals .cart_totals h2 {
	margin-top: 0;
	font-size: 1.3rem;
}

.woocommerce .wc-proceed-to-checkout {
	padding: 1rem 0 0;
}

.woocommerce .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 54px;
	margin: 0;
	padding: 0.85rem 1.25rem;
	border: 0;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
}

body.sp-layout-sage.woocommerce-cart .woocommerce .wc-proceed-to-checkout a.checkout-button {
	background: var(--sp-primary);
	color: #fff;
}

body.woocommerce-cart .wc-block-cart-items {
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
}

body.woocommerce-cart .wc-block-cart-items__header {
	background: var(--sp-tint);
}

body.woocommerce-cart .wc-block-cart-items__header th {
	color: var(--sp-deep);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

body.woocommerce-cart .wc-block-cart-item {
	border-bottom: 1px solid rgba(47, 74, 51, 0.1);
}

body.woocommerce-cart .wc-block-cart-item__image img {
	border-radius: 12px;
	background: var(--sp-tint);
}

body.woocommerce-cart .wc-block-components-product-name {
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.2;
}

body.woocommerce-cart .wc-block-cart-item__total,
body.woocommerce-cart .wc-block-cart-item__price {
	color: var(--sp-deep);
	font-weight: 800;
}

body.woocommerce-cart .wc-block-cart-item__remove-link {
	color: #B3261E;
	font-size: 0.8rem;
	font-weight: 700;
	text-decoration: underline;
}

body.woocommerce-cart .wc-block-components-quantity-selector {
	display: inline-flex;
	align-items: center;
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.24);
	border-radius: 999px;
	background: var(--sp-bg);
}

body.woocommerce-cart .wc-block-components-quantity-selector__button {
	min-width: 2.4rem;
	min-height: 44px;
	background: transparent;
	color: var(--sp-deep);
	border: 0;
	cursor: pointer;
}

body.woocommerce-cart .wc-block-components-quantity-selector__input {
	width: 3rem;
	min-height: 44px;
	background: transparent;
	color: var(--sp-deep);
	font-weight: 700;
	text-align: center;
	border: 0;
}

body.woocommerce-cart .wc-block-cart__sidebar {
	align-self: start;
	padding: 1.1rem 1.25rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.06);
}

body.woocommerce-cart .wc-block-cart__submit-button {
	width: 100%;
	min-height: 54px;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-weight: 800;
}

body.sp-layout-sage.woocommerce-cart .wc-block-cart__submit-button {
	background: var(--sp-primary);
	color: #fff;
}

/* Checkout --------------------------------------------------------------- */

body.woocommerce-checkout .wc-block-components-checkout-step {
	margin-bottom: 1.1rem;
	padding: 1.1rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
}

body.woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-checkout-step__heading .wc-block-components-title {
	color: var(--sp-deep);
	font-size: 1.2rem;
	font-weight: 700;
}

body.woocommerce-checkout .wc-block-components-checkout-step__description {
	color: var(--sp-deep);
	font-size: 0.86rem;
}

body.woocommerce-checkout .wc-block-components-radio-control__option {
	padding: 0.85rem 1rem 0.85rem 3rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: 12px;
	background: var(--sp-card);
}

body.woocommerce-checkout .wc-block-components-radio-control__option + .wc-block-components-radio-control__option {
	margin-top: 0.6rem;
}

body.woocommerce-checkout .wc-block-components-radio-control__input {
	accent-color: var(--sp-deep);
}

body.woocommerce-checkout .wc-block-components-radio-control__label {
	color: var(--sp-deep);
	font-size: 0.92rem;
}

body.woocommerce-checkout .wc-block-components-radio-control__option-checked {
	border-color: var(--sp-deep);
	box-shadow: 0 0 0 1px var(--sp-deep);
}

body.woocommerce-checkout .wc-block-components-radio-control-accordion-option {
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: 12px;
	background: var(--sp-card);
	box-shadow: none;
}

body.woocommerce-checkout .wc-block-components-radio-control-accordion-option + .wc-block-components-radio-control-accordion-option {
	margin-top: 0.6rem;
}

body.woocommerce-checkout .wc-block-components-checkbox__input {
	accent-color: var(--sp-deep);
}

body.woocommerce-checkout .wc-block-components-checkbox__label {
	color: var(--sp-deep);
	font-size: 0.86rem;
}

body.woocommerce-checkout .wc-block-components-checkout-order-summary__title,
body.woocommerce-checkout .wc-block-components-order-summary__title {
	color: var(--sp-deep);
	font-size: 1.2rem;
	font-weight: 700;
}

body.woocommerce-checkout .wc-block-components-order-summary,
body.woocommerce-checkout .wc-block-components-checkout-order-summary,
body.woocommerce-checkout #order_review,
body.woocommerce-checkout .woocommerce-checkout-review-order {
	padding: 1.1rem 1.25rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.06);
}

body.woocommerce-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name {
	color: var(--sp-deep);
	font-weight: 700;
}

body.woocommerce-checkout .wc-block-components-order-summary-item__total-price,
body.woocommerce-checkout .wc-block-components-product-price,
body.woocommerce-checkout .wc-block-components-totals-item,
body.woocommerce-checkout .wc-block-components-totals-item__value {
	color: var(--sp-deep);
}

body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--sp-deep);
	font-size: 1.2rem;
	font-weight: 800;
}

body.woocommerce-checkout #order_review_heading {
	margin: 0 0 0.75rem;
	font-size: 1.3rem;
}

body.woocommerce-checkout #payment {
	border-radius: 0;
	background: transparent;
}

body.woocommerce-checkout #payment ul.payment_methods {
	margin: 0 0 1rem;
	padding: 0;
	border: 0;
	list-style: none;
}

body.woocommerce-checkout #payment ul.payment_methods li {
	margin-bottom: 0.6rem;
}

body.woocommerce-checkout #payment div.payment_box {
	border-radius: 12px;
	background: var(--sp-tint);
	color: var(--sp-deep);
}

body.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--sp-tint);
}

body.woocommerce-checkout #payment #place_order,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 56px;
	padding: 0.85rem 1.5rem;
	border: 0;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-family: var(--sp-font-body);
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
}

body.sp-layout-sage.woocommerce-checkout #payment #place_order,
body.sp-layout-sage.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	background: var(--sp-primary);
	color: #fff;
}

body.woocommerce-checkout #payment #place_order:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
	filter: brightness(0.96);
}

/* My Account ------------------------------------------------------------- */

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	list-style: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 0.85rem 1.1rem;
	border-bottom: 1px solid rgba(47, 74, 51, 0.1);
	color: var(--sp-deep);
	font-size: 0.9rem;
	font-weight: 600;
	text-decoration: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li:last-child a {
	border-bottom: 0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-weight: 800;
}

body.woocommerce-account .woocommerce-MyAccount-content {
	color: var(--sp-deep);
}

body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register,
body.woocommerce-account form.login,
body.woocommerce-account form.register {
	padding: 1.25rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.06);
}

body.woocommerce-account .woocommerce-orders-table {
	width: 100%;
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	border-collapse: separate;
	border-spacing: 0;
	background: var(--sp-card);
}

body.woocommerce-account .woocommerce-orders-table th {
	padding: 0.75rem;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-weight: 800;
	text-align: left;
}

body.woocommerce-account .woocommerce-orders-table td {
	padding: 0.75rem;
	border-top: 1px solid rgba(47, 74, 51, 0.1);
	color: var(--sp-deep);
	text-align: left;
}

body.woocommerce-account .woocommerce-orders-table .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0.45rem 0.9rem;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: none;
}

/* Order received / thank-you --------------------------------------------- */

body.woocommerce-checkout .woocommerce-order,
body.woocommerce-checkout .wc-block-order-confirmation {
	color: var(--sp-deep);
}

body.woocommerce-checkout .woocommerce-thankyou-order-received,
body.woocommerce-checkout .wc-block-order-confirmation__title {
	margin: 0 0 1rem;
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	line-height: 1.12;
}

body.woocommerce-checkout .woocommerce-order-overview,
body.woocommerce-checkout .wc-block-order-confirmation-summary {
	display: grid;
	gap: 0.75rem;
	margin: 0 0 1.25rem;
	padding: 1.1rem 1.25rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	list-style: none;
}

body.woocommerce-checkout .woocommerce-order-overview li,
body.woocommerce-checkout .wc-block-order-confirmation-summary-item {
	color: var(--sp-deep);
	font-size: 0.82rem;
}

body.woocommerce-checkout .woocommerce-order-overview li strong,
body.woocommerce-checkout .wc-block-order-confirmation-summary-item__value {
	display: block;
	margin-top: 0.15rem;
	color: var(--sp-deep);
	font-size: 1rem;
	font-weight: 800;
}

body.woocommerce-checkout .woocommerce-order-details,
body.woocommerce-checkout .woocommerce-customer-details,
body.woocommerce-checkout .wc-block-order-confirmation-totals,
body.woocommerce-checkout .wc-block-order-confirmation-details {
	margin-bottom: 1.1rem;
	padding: 1.15rem 1.25rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
}

body.woocommerce-checkout .woocommerce-order-details__title,
body.woocommerce-checkout .woocommerce-column__title,
body.woocommerce-checkout .wc-block-order-confirmation-totals__title,
body.woocommerce-checkout .wc-block-order-confirmation-details__title {
	color: var(--sp-deep);
	font-size: 1.2rem;
	font-weight: 700;
}

/* -------------------------------------------------------------------------
 * Content pages: About, FAQs, Contact
 * ---------------------------------------------------------------------- */

.sp-page-hero {
	max-width: 780px;
	margin: 0 0 1.5rem;
}

.sp-page-hero__title {
	margin: 0.2rem 0 0;
	font-size: clamp(2rem, 6vw, 3.2rem);
}

.sp-about,
.sp-faqs,
.sp-contact {
	padding-block: 2.25rem 3rem;
}

.sp-about__hero {
	display: grid;
	gap: 1.5rem;
	align-items: center;
	margin-bottom: 1.5rem;
}

.sp-about__hero-content {
	min-width: 0;
}

.sp-about__hero.sp-about__hero--text {
	grid-template-columns: minmax(0, 1fr);
}

.sp-about__media {
	min-width: 0;
}

.sp-about__media:empty {
	display: none;
}

.sp-about__image {
	width: 100%;
	height: auto;
	border-radius: var(--sp-radius);
	box-shadow: 0 16px 40px rgba(47, 74, 51, 0.1);
}

.sp-about__body.sp-prose,
.sp-faqs__intro.sp-prose,
.sp-contact__body.sp-prose {
	max-width: 780px;
	padding-block: 0;
}

.sp-faqs__list {
	display: grid;
	gap: 0.75rem;
	margin-top: 1.5rem;
}

.sp-faq {
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 10px 24px rgba(47, 74, 51, 0.05);
}

.sp-faq__question {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 1.25rem;
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.35;
	cursor: pointer;
	list-style: none;
}

.sp-faq__question::-webkit-details-marker {
	display: none;
}

.sp-faq__question::after {
	flex: 0 0 auto;
	width: 1.6rem;
	height: 1.6rem;
	border-radius: 50%;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-family: var(--sp-font-body);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.6rem;
	text-align: center;
	content: "+";
}

.sp-faq[open] .sp-faq__question::after {
	content: "\2212";
}

.sp-faq__question:focus-visible {
	outline: 3px solid var(--sp-accent);
	outline-offset: -3px;
}

.sp-faq__answer {
	padding: 0 1.25rem 1.25rem;
	color: var(--sp-deep);
	overflow-wrap: anywhere;
}

.sp-faq__answer > *:first-child {
	margin-top: 0;
}

.sp-faq__answer > *:last-child {
	margin-bottom: 0;
}

.sp-faq__more a {
	color: var(--sp-deep);
	font-weight: 800;
}

.sp-faqs__empty {
	margin-top: 1.5rem;
	color: var(--sp-deep);
}

.sp-contact__cards {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

.sp-contact__card {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	padding: 1.25rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.06);
}

.sp-contact__label {
	color: var(--sp-deep);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.sp-contact__value {
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: 1.1rem;
	font-weight: 700;
	overflow-wrap: anywhere;
}

/* -------------------------------------------------------------------------
 * Commerce and content responsive enhancements
 * ---------------------------------------------------------------------- */

@media (min-width: 600px) {
	.woocommerce ul.products li.product .bc-product-card__actions {
		grid-template-columns: minmax(0, 1fr);
	}

	.bc-product__features {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.sp-contact__cards {
		grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	}

	.sp-about__hero {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	}

	.woocommerce div.product form.cart .single_add_to_cart_button {
		flex: 1 1 12rem;
		width: auto;
	}
}

@media (min-width: 900px) {
	.woocommerce div.product {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: clamp(2rem, 4vw, 3.25rem);
		align-items: start;
	}

	.woocommerce div.product > .woocommerce-product-gallery,
	.woocommerce div.product > div.images {
		grid-column: 1;
		grid-row: 1;
	}

	.woocommerce div.product > div.summary {
		grid-column: 2;
		grid-row: 1;
	}

	.bc-product__hero-inner {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: 2.5rem;
	}

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

	.bc-product__benefit-grid {
		grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
	}

	.bc-product__band-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem;
		align-items: center;
	}

	.sp-about__hero {
		gap: 2.5rem;
	}

	.sp-page-hero {
		margin-bottom: 2rem;
	}

	body.woocommerce-cart .woocommerce {
		display: grid;
		grid-template-columns: minmax(0, 1.5fr) minmax(300px, 0.72fr);
		gap: 2rem;
		align-items: start;
	}

	body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
	body.woocommerce-cart .woocommerce > .cross-sells {
		grid-column: 1 / -1;
	}

	body.woocommerce-cart .woocommerce > form.woocommerce-cart-form {
		grid-column: 1;
	}

	body.woocommerce-cart .woocommerce > .cart-collaterals {
		grid-column: 2;
	}

	body.woocommerce-cart .wc-block-components-sidebar-layout,
	body.woocommerce-checkout .wc-block-components-sidebar-layout {
		display: grid;
		grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.78fr);
		gap: 2rem;
		align-items: start;
	}

	body.woocommerce-cart .wc-block-components-sidebar-layout > .wc-block-components-main,
	body.woocommerce-checkout .wc-block-components-sidebar-layout > .wc-block-components-main {
		grid-column: 1;
	}

	body.woocommerce-cart .wc-block-components-sidebar-layout > .wc-block-components-sidebar,
	body.woocommerce-checkout .wc-block-components-sidebar-layout > .wc-block-components-sidebar {
		grid-column: 2;
	}

	body.woocommerce-checkout .wc-block-components-sidebar-layout > .wc-block-components-sidebar {
		position: sticky;
		top: 96px;
	}

	body.woocommerce-checkout form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.8fr);
		column-gap: 2rem;
		align-items: start;
	}

	body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
	body.woocommerce-checkout form.checkout > .woocommerce-notices-wrapper,
	body.woocommerce-checkout form.checkout > .woocommerce-form-coupon-toggle,
	body.woocommerce-checkout form.checkout > .woocommerce-form-coupon,
	body.woocommerce-checkout form.checkout > .woocommerce-form-login-toggle,
	body.woocommerce-checkout form.checkout > .woocommerce-form-login {
		grid-column: 1 / -1;
	}

	body.woocommerce-checkout form.checkout > .col2-set,
	body.woocommerce-checkout form.checkout > #customer_details {
		grid-column: 1;
	}

	body.woocommerce-checkout form.checkout > #order_review_heading {
		grid-column: 2;
		margin-top: 0;
	}

	body.woocommerce-checkout form.checkout > #order_review {
		grid-column: 2;
		position: sticky;
		top: 96px;
	}
}

@media (max-width: 599px) {
	.woocommerce table.shop_table_responsive tr td,
	.woocommerce-page table.shop_table_responsive tr td {
		padding: 0.7rem;
	}

	body.woocommerce-cart .sp-prose,
	body.woocommerce-checkout .sp-prose,
	body.woocommerce-account .sp-prose,
	body.woocommerce-order-received .sp-prose {
		padding-block: 1.5rem 2.75rem;
	}

	body.woocommerce-checkout .wc-block-components-checkout-step {
		padding: 1rem;
	}

	.sp-about,
	.sp-faqs,
	.sp-contact {
		padding-block: 1.5rem 2.5rem;
	}
}

/* T6b: full-bleed hero, purchase strip, logo ------------------------------ */

.sp-hero {
	position: relative;
	padding-block: 0;
	overflow: hidden;
}

.sp-hero__visual {
	position: relative;
	aspect-ratio: 4 / 3;
	background: var(--sp-tint);
}

.sp-hero__visual picture,
.sp-hero__visual > * {
	display: block;
	width: 100%;
	height: 100%;
}

.sp-hero__visual .sp-hero__img,
.sp-hero__visual img {
	display: block;
	width: 100%;
	height: 100%;
	max-height: none;
	object-fit: cover;
	object-position: 65% center;
	border-radius: 0;
	box-shadow: none;
}

.sp-hero__visual .sp-hero__placeholder {
	min-height: 0;
	aspect-ratio: auto;
	border-radius: 0;
	box-shadow: none;
}

.sp-hero__inner {
	display: block;
	padding-block: 1.5rem 2rem;
}

.sp-hero__copy {
	max-width: 32rem;
}

.sp-hero__purchase {
	position: relative;
	z-index: 3;
	margin-top: 0;
}

.sp-hero__purchase .sp-hero__buy {
	width: 100%;
	margin: 0;
	flex-direction: column;
	align-items: stretch;
	padding: 18px 20px;
	border-radius: 20px;
	box-shadow: 0 14px 34px rgba(47, 74, 51, 0.14);
}

.sp-hero__buy .bc-price {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 0.75rem;
}

@media (min-width: 900px) {
	.sp-hero {
		display: flex;
		align-items: center;
		min-height: 580px;
		padding-block: 0;
	}

	.sp-hero__visual {
		position: absolute;
		inset: 0;
		z-index: 0;
		aspect-ratio: auto;
	}

	.sp-hero__visual .sp-hero__img,
	.sp-hero__visual img {
		object-position: right center;
	}

	.sp-hero::before {
		content: "";
		position: absolute;
		inset: 0;
		z-index: 1;
		pointer-events: none;
		background: linear-gradient(to right, rgba(251, 244, 234, 0.96) 0%, rgba(251, 244, 234, 0.86) 34%, rgba(251, 244, 234, 0) 60%);
	}

	.sp-hero__inner {
		position: static;
		z-index: 2;
		width: 100%;
		padding-block: 56px;
	}

	.sp-hero__copy {
		position: relative;
		z-index: 2;
		max-width: 520px;
	}

	.sp-hero__note {
		position: absolute;
		top: 24px;
		right: 32px;
		z-index: 2;
		max-width: min(280px, 30%);
		margin: 0;
		text-align: right;
	}

	.sp-hero__purchase {
		margin-top: -28px;
	}

	.sp-hero__purchase .sp-hero__buy {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
		flex-wrap: wrap;
		padding: 16px 28px;
		gap: 0.6rem 1.5rem;
	}
}

@media (max-width: 899px) {
	.sp-hero__note {
		position: static;
		margin-top: 0.6rem;
	}
}

/* Header and footer logo images */

.sp-brand--image img,
.sp-brand--image .custom-logo,
.sp-brand .bc-wordmark--image img {
	display: block;
	width: auto;
	height: 46px;
	max-width: 160px;
	max-height: none;
}

.sp-brand--image .bc-wordmark__tagline {
	display: none;
}

@media (min-width: 720px) {
	.sp-brand--image img,
	.sp-brand--image .custom-logo,
	.sp-brand .bc-wordmark--image img {
		height: 64px;
		max-width: 200px;
	}
}

.sp-footer__logo-badge {
	display: inline-block;
	padding: 12px 18px;
	border-radius: 18px;
	background: var(--sp-bg);
}

.sp-footer__logo-badge img {
	display: block;
	width: auto;
	height: 52px;
	max-width: 100%;
	max-height: none;
	filter: none;
	opacity: 1;
}

@media (min-width: 720px) {
	.sp-footer__logo-badge img {
		height: 64px;
	}
}

/* T6c: keep hero text and note clear of the pack ------------------------- */

@media (min-width: 900px) {
	.sp-hero__title {
		font-size: clamp(2.4rem, 4.1vw, 4.25rem);
	}

	.sp-hero__copy {
		max-width: min(520px, 42vw);
	}

	.sp-hero__note {
		top: auto;
		bottom: 64px;
		right: 24px;
		max-width: 22%;
		font-size: clamp(1.1rem, 1.8vw, 1.6rem);
	}
}
/* T6d: anchor the hero note to the container, not the narrow text column - */

@media (min-width: 900px) {
	.sp-hero__inner {
		position: relative;
		z-index: 2;
	}

	.sp-hero__copy {
		position: static;
	}

	.sp-hero__title {
		font-size: clamp(2.6rem, 4.6vw, 4.25rem);
	}

	.sp-hero__note {
		top: auto;
		bottom: 28px;
		right: 0;
		left: auto;
		width: auto;
		max-width: none;
		white-space: nowrap;
		font-size: clamp(1.2rem, 1.9vw, 1.7rem);
	}
}

/* T6e: hero note sits top-right, above the bananas ----------------------- */

@media (min-width: 900px) {
	.sp-hero__inner {
		position: static;
		z-index: auto;
	}

	.sp-hero__copy {
		position: relative;
		z-index: 2;
	}

	.sp-hero__note {
		position: absolute;
		z-index: 2;
		top: 12%;
		right: 4%;
		bottom: auto;
		left: auto;
		width: auto;
		max-width: none;
		white-space: nowrap;
		text-align: right;
		font-size: clamp(1.2rem, 2vw, 1.8rem);
	}
}

/* T6f: anchor the hero note to the full-height inner container ----------- */

@media (min-width: 900px) {
	.sp-hero__inner {
		position: relative;
		z-index: 2;
		align-self: stretch;
		display: flex;
		align-items: center;
	}

	.sp-hero__copy {
		position: static;
	}

	.sp-hero__note {
		top: 10%;
		right: 0;
		bottom: auto;
		left: auto;
	}
}

/* T6g: keep the hero photo in proportion on wide screens ----------------- */

@media (min-width: 900px) {
	.sp-hero {
		min-height: 0;
		aspect-ratio: 16 / 9;
		max-height: 720px;
		max-width: 1600px;
		margin-inline: auto;
	}

	.sp-hero__visual .sp-hero__img,
	.sp-hero__visual img {
		object-position: 60% center;
	}
}

@media (min-width: 1601px) {
	.sp-hero__visual {
		-webkit-mask-image: linear-gradient(to right, transparent 0, #000 12%, #000 90%, transparent 100%);
		mask-image: linear-gradient(to right, transparent 0, #000 12%, #000 90%, transparent 100%);
	}
}

/* T6h: frosted panel behind the hero copy (desktop) and note above bananas */

@media (min-width: 900px) {
	.sp-hero__copy {
		padding: 28px 32px;
		border-radius: 28px;
		background: rgba(251, 244, 234, 0.5);
		-webkit-backdrop-filter: blur(8px);
		backdrop-filter: blur(8px);
	}

	.sp-hero__note {
		top: 16%;
		right: 2%;
	}
}

/* T6i: hero note position chosen by Ali (desktop) ------------------------ */

@media (min-width: 900px) {
	.sp-hero__note {
		top: 71%;
		right: 56%;
	}
}

/* T6j: make the hero note a bit bolder ----------------------------------- */

.sp-hero__note {
	font-weight: 700;
	-webkit-text-stroke: 0.5px currentColor;
}

/* T6k: corrected hero note position (Ali's tested values) ---------------- */

@media (min-width: 900px) {
	.sp-hero__note {
		top: 83%;
		right: 3%;
	}
}

/* T7: editable ingredient photos ----------------------------------------- */

.sp-ing__photo {
	display: block;
	width: 140px;
	height: 140px;
	margin: 0 auto 1rem;
	border-radius: 50%;
	overflow: hidden;
	background: var(--sp-tint);
}

.sp-ing__photo img,
.sp-ing__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* T7: outlined Add to cart button in Brand Core product cards ------------ */

.bc-product-card__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
}

.bc-product-card__actions .add_to_cart_button,
.bc-product-card__actions a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 46px;
	padding: 0 24px;
	border: 2px solid var(--sp-primary);
	border-radius: 999px;
	background: transparent;
	color: var(--sp-primary);
	font-family: var(--sp-font-body);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.bc-product-card__actions .add_to_cart_button:hover,
.bc-product-card__actions .add_to_cart_button:focus-visible,
.bc-product-card__actions a.button:hover,
.bc-product-card__actions a.button:focus-visible {
	background: var(--sp-primary);
	color: var(--sp-card);
	text-decoration: none;
	transform: translateY(-1px);
}

.bc-product-card__actions .add_to_cart_button.loading {
	opacity: 0.6;
	pointer-events: none;
}

.bc-product-card__actions .added_to_cart {
	color: var(--sp-deep);
	font-weight: 700;
	text-decoration: underline;
}

@media (max-width: 599px) {
	.sp-hero__buy .bc-product-card__actions .add_to_cart_button,
	.sp-hero__buy .bc-product-card__actions .bc-product-card__button {
		flex: 1 1 100%;
	}
}

.bc-product-card__actions .bc-product-card__button,
.bc-product-card__actions .bc-product-card__button--buy {
	min-height: 46px;
}

/* T10 Our Story */

.sp-story {
	overflow-x: clip;
	background: var(--sp-bg);
	color: var(--sp-deep);
}

.sp-story-rule {
	display: block;
	width: 2.4rem;
	height: 2px;
	margin: 1.1rem 0 1.25rem;
	border-radius: 2px;
	background: var(--sp-primary);
}

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

.sp-story-hero {
	padding-block: 2rem 2.5rem;
}

.sp-story-hero__inner {
	display: grid;
	gap: 1.75rem;
	align-items: center;
}

.sp-story-hero__content,
.sp-story-hero__media,
.sp-story-split__content,
.sp-story-split__media,
.sp-story-cta__content,
.sp-story-cta__media,
.sp-story-media {
	min-width: 0;
}

.sp-story-hero__title {
	margin: 0;
	font-family: var(--sp-font-heading);
	font-size: clamp(2.2rem, 8vw, 3.8rem);
	line-height: 1.05;
	letter-spacing: -0.015em;
}

.sp-story-hero__body {
	max-width: 60ch;
	margin: 0 0 0.9rem;
	font-size: 1.02rem;
	line-height: 1.7;
	opacity: 0.86;
}

.sp-story-hero__body:last-child {
	margin-bottom: 0;
}

/* Media and decorative placeholders -------------------------------------- */

.sp-story-media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 28px;
}

.sp-story-media picture,
.sp-story-media img,
.sp-story-media .sp-story-image {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	object-fit: cover;
}

.sp-story-ph {
	position: relative;
	display: grid;
	place-items: center;
	width: 100%;
	height: 100%;
	overflow: hidden;
	border-radius: inherit;
	background: linear-gradient(145deg, var(--sp-tint), var(--sp-card));
	box-shadow: inset 0 0 0 1px rgba(47, 74, 51, 0.08);
}

.sp-story-ph::before {
	content: "";
	position: absolute;
	inset: 12%;
	border-radius: 48% 52% 44% 56% / 56% 44% 56% 44%;
	background: var(--sp-tint);
	opacity: 0.55;
	transform: rotate(-8deg);
}

.sp-story-ph::after {
	content: "";
	position: absolute;
	right: 8%;
	bottom: 10%;
	width: 28%;
	aspect-ratio: 1;
	border-radius: 50%;
	background: var(--sp-card);
	opacity: 0.55;
}

.sp-story-ph svg {
	position: relative;
	z-index: 1;
	width: clamp(84px, 28%, 170px);
	height: auto;
	color: var(--sp-primary);
	opacity: 0.32;
}

.sp-story-ph--cream {
	background: linear-gradient(145deg, var(--sp-card), var(--sp-bg));
}

.sp-story-ph--cream::before {
	background: var(--sp-tint);
	opacity: 0.5;
}

.sp-story-ph--terracotta {
	background: linear-gradient(145deg, var(--sp-primary), var(--sp-accent));
}

.sp-story-ph--terracotta::before {
	background: var(--sp-bg);
	opacity: 0.18;
}

.sp-story-ph--terracotta::after {
	background: var(--sp-bg);
	opacity: 0.24;
}

.sp-story-ph--terracotta svg {
	color: var(--sp-bg);
	opacity: 0.6;
}

/* Editable page content under the hero ------------------------------------ */

.sp-story-content.sp-prose {
	max-width: 60ch;
	padding-block: 1.5rem 0;
}

.sp-story-content > *:first-child {
	margin-top: 0;
}

/* Alternating editorial sections ----------------------------------------- */

.sp-story-split {
	padding-block: 2.5rem;
}

.sp-story-split__inner {
	display: grid;
	gap: 1.75rem;
	align-items: center;
}

.sp-story-split__content {
	max-width: 60ch;
}

.sp-story-heading {
	margin: 0 0 0.85rem;
	font-family: var(--sp-font-heading);
	font-size: clamp(1.65rem, 5vw, 2.5rem);
	line-height: 1.12;
	letter-spacing: -0.01em;
}

.sp-story-body {
	max-width: 60ch;
	margin: 0;
	font-size: 1rem;
	line-height: 1.7;
	opacity: 0.86;
}

/* Values band ------------------------------------------------------------ */

.sp-story-values {
	padding-block: 2.75rem;
	background: var(--sp-tint);
}

.sp-story-values__inner {
	display: grid;
	gap: 1.5rem;
}

.sp-story-values__head {
	max-width: 60ch;
}

.sp-story-values__title {
	margin: 0;
	font-family: var(--sp-font-heading);
	font-size: clamp(1.75rem, 5vw, 2.6rem);
	line-height: 1.1;
}

.sp-story-values__list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-story-value {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 1rem 1.1rem;
	border-radius: 20px;
	background: var(--sp-card);
	box-shadow: 0 10px 24px rgba(47, 74, 51, 0.05);
}

.sp-story-value__icon {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--sp-bg);
	color: var(--sp-primary);
}

.sp-story-value__icon svg {
	width: 22px;
	height: 22px;
}

.sp-story-value__label {
	font-weight: 700;
	line-height: 1.35;
}

/* Closing CTA ------------------------------------------------------------ */

.sp-story-cta {
	padding-block: 2.75rem;
}

.sp-story-cta__inner {
	display: grid;
	gap: 1.5rem;
	padding: 1.75rem 1.25rem;
	border-radius: 28px;
	background: var(--sp-primary);
	color: #fff;
}

.sp-layout-sage .sp-story-cta__inner {
	background: var(--sp-deep);
}

.sp-story-cta__content {
	max-width: 60ch;
}

.sp-story-cta__title {
	margin: 0 0 0.65rem;
	color: inherit;
	font-family: var(--sp-font-heading);
	font-size: clamp(1.75rem, 5vw, 2.6rem);
	line-height: 1.1;
}

.sp-story-cta__body {
	margin: 0 0 1.25rem;
	color: rgba(255, 255, 255, 0.85);
}

.sp-story-cta__button {
	background: var(--sp-bg);
	color: var(--sp-deep);
}

.sp-story-cta__button:hover {
	background: var(--sp-card);
	color: var(--sp-deep);
}

/* Tagline strip ---------------------------------------------------------- */

.sp-story-tagline {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding-block: 2.25rem 2.75rem;
}

.sp-story-tagline__rule {
	flex: 1 1 auto;
	min-width: 16px;
	height: 1px;
	background: rgba(47, 74, 51, 0.2);
}

.sp-story-tagline__text {
	flex: 0 1 auto;
	min-width: 0;
	margin: 0;
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: clamp(0.76rem, 2.4vw, 0.95rem);
	font-weight: 700;
	letter-spacing: 0.14em;
	line-height: 1.4;
	text-align: center;
	text-transform: uppercase;
}

@media (min-width: 600px) {
	.sp-story-values__list {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.sp-story-hero {
		padding-block: 3rem 4rem;
	}

	.sp-story-hero__inner {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: clamp(2rem, 4vw, 3.5rem);
	}

	.sp-story-split {
		padding-block: 3.5rem;
	}

	.sp-story-split__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: clamp(2rem, 4vw, 3.5rem);
	}

	.sp-story-split--reverse .sp-story-split__media {
		order: -1;
	}

	.sp-story-values {
		padding-block: 3.5rem;
	}

	.sp-story-values__inner {
		grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
		align-items: center;
		gap: 2.5rem;
	}

	.sp-story-cta {
		padding-block: 3.5rem;
	}

	.sp-story-cta__inner {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		align-items: center;
		gap: 2.5rem;
		padding: 2.75rem 2.5rem;
	}

	.sp-story-tagline {
		padding-block: 2.75rem 3.25rem;
	}
}

/* T11 Contact */

.sp-contact {
	overflow-x: clip;
	background: var(--sp-bg);
	color: var(--sp-deep);
}

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

.sp-contact-hero {
	padding-block: 2rem 2.5rem;
}

.sp-contact-hero__inner {
	display: grid;
	gap: 1.75rem;
	align-items: center;
}

.sp-contact-hero__content,
.sp-contact-hero__media,
.sp-contact-ways-wrap,
.sp-contact-notes {
	min-width: 0;
}

.sp-contact-hero__title {
	margin: 0;
	font-family: var(--sp-font-heading);
	font-size: clamp(2.2rem, 8vw, 3.8rem);
	line-height: 1.05;
	letter-spacing: -0.015em;
}

.sp-contact-hero__body {
	max-width: 60ch;
	margin: 0;
	font-size: 1.02rem;
	line-height: 1.7;
	opacity: 0.86;
}

/* Support values --------------------------------------------------------- */

.sp-contact-value__body {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	min-width: 0;
}

.sp-contact-value__title {
	font-weight: 700;
	line-height: 1.3;
}

.sp-contact-value__sub {
	font-size: 0.92rem;
	line-height: 1.45;
	opacity: 0.78;
}

/* Ways to reach us ------------------------------------------------------- */

.sp-contact-main {
	padding-block: 2.5rem;
}

.sp-contact-main__inner {
	display: grid;
	gap: 1.5rem;
}

.sp-contact-heading {
	margin: 0 0 1.25rem;
	font-family: var(--sp-font-heading);
	font-size: clamp(1.65rem, 5vw, 2.5rem);
	line-height: 1.12;
	letter-spacing: -0.01em;
}

.sp-contact-ways {
	display: grid;
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-contact-way {
	display: flex;
	align-items: flex-start;
	gap: 0.9rem;
	padding: 1.1rem 1.15rem;
	border-radius: 20px;
	background: var(--sp-card);
	box-shadow: 0 10px 24px rgba(47, 74, 51, 0.05);
}

.sp-contact-way--whatsapp {
	background: var(--sp-tint);
}

.sp-contact-way__icon {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--sp-bg);
	color: var(--sp-primary);
}

.sp-contact-way--whatsapp .sp-contact-way__icon {
	background: var(--sp-card);
}

.sp-contact-way__icon svg {
	width: 22px;
	height: 22px;
}

.sp-contact-way__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 0;
}

.sp-contact-way__label {
	color: var(--sp-primary);
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.sp-contact-way__value {
	font-weight: 700;
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.sp-contact-way__button {
	align-self: flex-start;
	min-height: 48px;
	margin-top: 0.35rem;
}

.sp-contact-way--empty {
	display: block;
	margin: 0;
	color: var(--sp-deep);
	text-align: center;
	opacity: 0.72;
}

/* Good to know notes ----------------------------------------------------- */

.sp-contact-notes {
	padding: 1.2rem 1.25rem;
	border-radius: 20px;
	background: var(--sp-tint);
}

.sp-contact-notes__title {
	margin: 0 0 0.65rem;
	font-family: var(--sp-font-heading);
	font-size: 1.1rem;
}

.sp-contact-notes__list {
	display: grid;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-contact-notes__list li {
	position: relative;
	padding-left: 1.05rem;
	font-size: 0.94rem;
	line-height: 1.55;
}

.sp-contact-notes__list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.62em;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--sp-primary);
}

@media (min-width: 900px) {
	.sp-contact-hero {
		padding-block: 3rem 4rem;
	}

	.sp-contact-hero__inner {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: clamp(2rem, 4vw, 3.5rem);
	}

	.sp-contact-main {
		padding-block: 3.5rem;
	}

	.sp-contact-main__inner {
		grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
		align-items: start;
		gap: 2.5rem;
	}
}

/* T12 Ingredient cards */

.sp-ingredients__grid {
	grid-template-columns: minmax(0, 1fr);
	gap: 1.25rem;
	width: 100%;
	max-width: 420px;
	margin-inline: auto;
}

.sp-ing {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	padding: 0;
	text-align: center;
}

.sp-ing__photo,
.sp-ing__swatch {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	margin: 0;
	overflow: hidden;
	border-radius: 20px 20px 0 0;
	background-color: var(--sp-bg);
}

.sp-ing__photo img,
.sp-ing__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.sp-ing__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: center;
	padding: 1.4rem 1.5rem 1.6rem;
}

.sp-ing__name {
	margin: 0 0 0.45rem;
	font-family: var(--sp-font-heading);
	font-size: 1.3rem;
	line-height: 1.2;
}

.sp-ing__text {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.6;
	opacity: 0.8;
}

@media (hover: hover) {
	.sp-ing {
		transition: transform 200ms ease, box-shadow 200ms ease;
	}

	.sp-ing:hover {
		transform: translateY(-4px);
		box-shadow: 0 18px 40px rgba(47, 74, 51, 0.12);
	}
}

@media (min-width: 900px) {
	.sp-ingredients__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.5rem;
		max-width: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sp-ing {
		transition: none;
	}

	.sp-ing:hover {
		transform: none;
	}
}

/* T13 FAQs */

.sp-faqs {
	padding-block: 0;
	overflow-x: clip;
	background: var(--sp-bg);
	color: var(--sp-deep);
}

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

.sp-faqs-hero {
	padding-block: 2rem 2.5rem;
}

.sp-faqs-hero__inner {
	display: grid;
	gap: 1.75rem;
	align-items: center;
}

.sp-faqs-hero__content,
.sp-faqs-hero__media,
.sp-faqs-list-wrap,
.sp-faqs-side {
	min-width: 0;
}

.sp-faqs-hero__title {
	margin: 0;
	font-family: var(--sp-font-heading);
	font-size: clamp(2.2rem, 8vw, 3.8rem);
	line-height: 1.05;
	letter-spacing: -0.015em;
}

.sp-faqs-hero__body {
	max-width: 60ch;
	margin: 0;
	font-size: 1.02rem;
	line-height: 1.7;
	opacity: 0.86;
}

/* Editable intro under the hero ------------------------------------------ */

.sp-faqs-intro.sp-prose {
	max-width: 60ch;
	padding-block: 0 1.5rem;
}

.sp-faqs-intro > *:first-child {
	margin-top: 0;
}

/* Category tabs ---------------------------------------------------------- */

.sp-faqs-cats {
	border-block: 1px solid rgba(47, 74, 51, 0.1);
	background: var(--sp-bg);
}

.sp-faqs-cats__inner {
	display: flex;
	gap: 0.6rem;
	padding-block: 0.85rem;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.sp-faqs-cat {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.6rem 1.1rem;
	border: 1px solid rgba(47, 74, 51, 0.16);
	border-radius: 999px;
	background: var(--sp-card);
	color: var(--sp-deep);
	font-family: var(--sp-font-body);
	font-size: 0.88rem;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.sp-faqs-cat:hover {
	border-color: var(--sp-primary);
}

.sp-faqs-cat.is-active {
	border-color: var(--sp-primary);
	background: var(--sp-primary);
	color: #fff;
}

.sp-faqs-cat:focus-visible {
	outline: 3px solid var(--sp-accent);
	outline-offset: 2px;
}

/* Main layout ------------------------------------------------------------ */

.sp-faqs-main {
	padding-block: 1.5rem 3rem;
}

.sp-faqs-main__inner {
	display: grid;
	gap: 2rem;
	align-items: start;
}

/* Accordion list --------------------------------------------------------- */

.sp-faqs-list {
	display: grid;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-faqs-item {
	overflow: hidden;
	scroll-margin-top: 96px;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: 20px;
	background: var(--sp-card);
	box-shadow: 0 10px 24px rgba(47, 74, 51, 0.05);
}

.sp-faqs-item[hidden] {
	display: none;
}

.sp-faqs-item.is-open {
	border-color: var(--sp-primary);
}

.sp-faqs-item__heading {
	margin: 0;
	font-size: inherit;
}

.sp-faqs-q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	width: 100%;
	min-height: 48px;
	padding: 1rem 1.1rem;
	border: 0;
	background: transparent;
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.35;
	text-align: left;
	cursor: pointer;
}

.sp-faqs-q:focus-visible {
	outline: 3px solid var(--sp-accent);
	outline-offset: -3px;
}

.sp-faqs-q__text {
	min-width: 0;
	overflow-wrap: anywhere;
}

/* Plus / minus icon (CSS only). */
.sp-faqs-q__icon {
	position: relative;
	flex: 0 0 auto;
	width: 1.1rem;
	height: 1.1rem;
}

.sp-faqs-q__icon::before,
.sp-faqs-q__icon::after {
	position: absolute;
	background: var(--sp-primary);
	border-radius: 2px;
	content: "";
}

.sp-faqs-q__icon::before {
	top: 50%;
	left: 0;
	width: 100%;
	height: 2px;
	transform: translateY(-50%);
}

.sp-faqs-q__icon::after {
	top: 0;
	left: 50%;
	width: 2px;
	height: 100%;
	transform: translateX(-50%);
	transition: transform 0.18s ease;
}

.sp-faqs-q[aria-expanded="true"] .sp-faqs-q__icon::after {
	transform: translateX(-50%) scaleY(0);
}

.sp-faqs-a {
	padding: 0 1.1rem 1.1rem;
	color: var(--sp-deep);
	overflow-wrap: anywhere;
}

.sp-faqs-a p {
	margin: 0 0 0.75rem;
	font-size: 0.95rem;
	line-height: 1.65;
}

.sp-faqs-a ul,
.sp-faqs-a ol {
	margin: 0 0 0.75rem;
	padding-left: 1.25rem;
	font-size: 0.95rem;
	line-height: 1.65;
}

.sp-faqs-a li + li {
	margin-top: 0.25rem;
}

.sp-faqs-a > *:last-child {
	margin-bottom: 0;
}

/* Collapsing is enabled only once the script has run. */
.sp-faqs-list.is-enhanced .sp-faqs-a:not(.is-open) {
	display: none;
}

.sp-faqs-item__more {
	margin: 0.75rem 0 0;
}

.sp-faqs-item__link {
	color: var(--sp-primary);
	font-size: 0.86rem;
	font-weight: 800;
	text-decoration: none;
}

.sp-faqs-item__link:hover {
	text-decoration: underline;
}

/* Sidebar ---------------------------------------------------------------- */

.sp-faqs-side {
	display: grid;
	gap: 1.25rem;
	align-content: start;
}

.sp-faqs-card {
	padding: 1.4rem;
	border-radius: 24px;
}

.sp-faqs-card--contact {
	background: var(--sp-tint);
}

.sp-faqs-card--promo {
	background: var(--sp-primary);
	color: #fff;
}

.sp-faqs-card__title {
	margin: 0 0 0.5rem;
	font-family: var(--sp-font-heading);
	font-size: 1.3rem;
	line-height: 1.15;
}

.sp-faqs-card__text {
	margin: 0 0 1.1rem;
	font-size: 0.95rem;
	line-height: 1.6;
	opacity: 0.86;
}

.sp-faqs-card--promo .sp-faqs-card__title,
.sp-faqs-card--promo .sp-faqs-card__text {
	color: inherit;
}

.sp-faqs-card__cta {
	min-height: 48px;
}

.sp-faqs-card--promo .sp-faqs-card__cta {
	background: var(--sp-bg);
	color: var(--sp-deep);
}

.sp-faqs-card--promo .sp-faqs-card__cta:hover {
	background: var(--sp-card);
	color: var(--sp-deep);
}

.sp-faqs-empty {
	margin: 0;
	padding: 1.25rem;
	border: 1px solid rgba(47, 74, 51, 0.14);
	border-radius: 20px;
	background: var(--sp-card);
	color: var(--sp-deep);
}

/* Desktop ---------------------------------------------------------------- */

@media (min-width: 900px) {
	.sp-faqs-hero {
		padding-block: 3rem 4rem;
	}

	.sp-faqs-hero__inner {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: clamp(2rem, 4vw, 3.5rem);
	}

	.sp-faqs-main {
		padding-block: 2rem 4rem;
	}

	.sp-faqs-main__inner {
		grid-template-columns: minmax(0, 1fr) minmax(0, 0.62fr);
		gap: 2.5rem;
	}

	.sp-faqs-side {
		position: sticky;
		top: 96px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.sp-faqs-cat,
	.sp-faqs-q__icon::after {
		transition: none;
	}
}

/* T15 Shop */

.sp-shop {
	overflow-x: clip;
	background: var(--sp-bg);
	color: var(--sp-deep);
}

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

.sp-shop-hero {
	padding-block: 2rem 2.5rem;
}

.sp-shop-hero__inner {
	display: grid;
	gap: 1.75rem;
	align-items: center;
}

.sp-shop-hero__content,
.sp-shop-hero__media {
	min-width: 0;
}

.sp-shop-hero__title {
	margin: 0;
	font-family: var(--sp-font-heading);
	font-size: clamp(2.2rem, 8vw, 3.8rem);
	line-height: 1.05;
	letter-spacing: -0.015em;
}

.sp-shop-hero__body {
	max-width: 58ch;
	margin: 0 0 0.9rem;
	font-size: 1.02rem;
	line-height: 1.7;
	opacity: 0.86;
}

.sp-shop-hero__body:last-child {
	margin-bottom: 0;
}

.sp-shop-hero__media {
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 28px;
}

.sp-shop-hero__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Fact strip -------------------------------------------------------------- */

.sp-shop-badges {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.6rem;
	margin: 0;
	padding: 0 0 0.5rem;
	list-style: none;
}

.sp-shop-badge {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.55rem;
	min-width: 0;
	padding: 1rem 0.5rem;
	border-radius: 18px;
	background: var(--sp-card);
	box-shadow: 0 10px 24px rgba(47, 74, 51, 0.06);
	text-align: center;
}

.sp-shop-badge__icon {
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--sp-tint);
	color: var(--sp-deep);
}

.sp-shop-badge__icon svg {
	width: 22px;
	height: 22px;
	stroke-width: 1.8;
}

.sp-shop-badge__text {
	display: grid;
	gap: 0.15rem;
	min-width: 0;
	font-size: 0.72rem;
	line-height: 1.3;
}

.sp-shop-badge__text strong {
	font-weight: 800;
}

.sp-shop-badge__text small {
	font-size: 0.68rem;
	opacity: 0.72;
}

/* Product grid ----------------------------------------------------------- */

.sp-shop__main {
	padding-block: 0.5rem 2.5rem;
}

.sp-shop ul.products {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-shop ul.products::before,
.sp-shop ul.products::after {
	display: none;
	content: none;
}

body.woocommerce .sp-shop .sp-shop-grid ul.products,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

body.woocommerce .sp-shop .sp-shop-grid ul.products li.product,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product {
	display: flex;
	flex-direction: column;
	float: none;
	clear: none;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.1);
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.07);
	text-align: left;
}

.sp-shop .sp-product-card {
	min-width: 0;
}

.sp-product-card__media {
	position: relative;
	flex: 0 0 auto;
	min-width: 0;
	overflow: hidden;
	background: var(--sp-tint);
}

.sp-product-card__media-link {
	position: relative;
	display: block;
	width: 100%;
	min-width: 0;
}

.sp-product-card__media-link img,
.sp-product-card__img,
.sp-product-card__ph {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	margin: 0;
	object-fit: cover;
	object-position: center;
	border-radius: 0;
}

body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .sp-product-card__media-link img,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .sp-product-card__media-link img {
	border-radius: 0;
}

.sp-product-card__ph {
	height: auto;
	min-height: 0;
}

.sp-main .sp-shop .sp-story-ph svg {
	max-width: 120px;
	max-height: 120px;
	stroke-width: 1.8;
}

.sp-product-card__badge {
	position: absolute;
	top: 0.85rem;
	left: 0.85rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	padding: 0.3rem 0.8rem;
	border-radius: 999px;
	background: var(--sp-primary);
	color: #fff;
	font-family: var(--sp-font-body);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.sp-product-card__body {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	min-width: 0;
	padding: 1.2rem 1.15rem 1.3rem;
}

.sp-product-card__name {
	margin: 0;
	min-width: 0;
	font-family: var(--sp-font-heading);
	font-size: clamp(1.4rem, 4vw, 1.85rem);
	font-weight: 700;
	line-height: 1.15;
	letter-spacing: -0.01em;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

.sp-product-card__name a {
	color: var(--sp-deep);
	text-decoration: none;
	overflow-wrap: normal;
	word-break: normal;
}

.sp-product-card__name a:hover {
	color: var(--sp-primary);
}

.sp-product-card__age {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	margin: 0;
	padding: 0.3rem 0.8rem;
	border-radius: 999px;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-size: 0.75rem;
	font-weight: 800;
	line-height: 1;
}

.sp-product-card__desc {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.55;
	opacity: 0.78;
}

.sp-product-card__buy {
	width: 100%;
	min-width: 0;
	margin-top: 0.15rem;
}

/* Commerce block (price + Buy Now / Add to cart) -------------------------- */

.sp-product-card .bc-product-card__commerce {
	display: flex;
	flex-direction: column;
	gap: 0.7rem;
	width: 100%;
	margin: 0;
	padding: 0;
}

.sp-product-card .bc-product-card__price {
	margin: 0;
}

body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-price,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.45rem 0.7rem;
	color: var(--sp-deep);
}

body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-price__current,
body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-price__current .woocommerce-Price-amount,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-price__current,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-price__current .woocommerce-Price-amount {
	color: var(--sp-primary);
	font-family: var(--sp-font-heading);
	font-size: clamp(1.55rem, 4.6vw, 2.05rem);
	font-weight: 800;
	line-height: 1;
}

body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-price__was,
body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-price__was .woocommerce-Price-amount,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-price__was,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-price__was .woocommerce-Price-amount {
	color: var(--sp-deep);
	font-size: 0.92rem;
	font-weight: 500;
	opacity: 0.55;
	text-decoration: line-through;
}

.sp-product-card .bc-product-card__buy {
	display: grid;
	gap: 0.65rem;
	width: 100%;
	margin: 0;
}

.sp-product-card .bc-product-card__actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.6rem;
	width: 100%;
}

body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions .add_to_cart_button,
body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions a.button,
body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions button.button,
body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__button,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions .add_to_cart_button,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions a.button,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions button.button,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 0.8rem 1rem;
	border-radius: 999px;
	font-family: var(--sp-font-body);
	font-size: 0.95rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__button--buy,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__button--buy {
	border: 2px solid var(--sp-primary);
	background: var(--sp-primary);
	color: #fff;
}

body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions .add_to_cart_button,
body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions a.button,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions .add_to_cart_button,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions a.button {
	border: 2px solid var(--sp-primary);
	background: transparent;
	color: var(--sp-primary);
}

body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions .add_to_cart_button.loading,
body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions .add_to_cart_button.added,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions .add_to_cart_button.loading,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions .add_to_cart_button.added {
	opacity: 0.72;
}

.sp-product-card .added_to_cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	color: var(--sp-deep);
	font-weight: 800;
	text-align: center;
	text-decoration: underline;
}

.sp-product-card__more {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 0.35rem;
	min-height: 48px;
	margin-top: 0.1rem;
	color: var(--sp-primary);
	font-size: 0.92rem;
	font-weight: 800;
	text-decoration: none;
}

.sp-product-card__more:hover {
	text-decoration: underline;
}

/* Empty state ------------------------------------------------------------- */

.sp-shop-empty {
	max-width: 640px;
	margin: 0 auto;
	padding: 2.25rem 1.35rem;
	border-radius: 24px;
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.07);
	text-align: center;
}

.sp-shop-empty__title {
	margin: 0 0 0.5rem;
	font-family: var(--sp-font-heading);
	font-size: clamp(1.5rem, 5vw, 2rem);
}

.sp-shop-empty__text {
	margin: 0 0 1.1rem;
	opacity: 0.8;
}

.sp-shop-empty .sp-btn {
	min-height: 48px;
}

/* Help row --------------------------------------------------------------- */

.sp-shop-info {
	padding-block: 0.5rem 2.5rem;
}

.sp-shop-info__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.85rem;
}

.sp-shop-info__card {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	min-width: 0;
	padding: 1.25rem 1.25rem 1.35rem;
	border-radius: 22px;
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.06);
}

.sp-shop-info__title {
	margin: 0;
	font-family: var(--sp-font-heading);
	font-size: 1.2rem;
	line-height: 1.2;
}

.sp-shop-info__text {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.55;
	opacity: 0.8;
}

.sp-shop-info__link {
	display: inline-flex;
	align-items: center;
	align-self: flex-start;
	gap: 0.35rem;
	min-height: 44px;
	margin-top: 0.25rem;
	color: var(--sp-primary);
	font-size: 0.9rem;
	font-weight: 800;
	text-decoration: none;
}

.sp-shop-info__link:hover {
	text-decoration: underline;
}

/* Closing band ----------------------------------------------------------- */

.sp-shop-cta {
	padding-block: 0 2.75rem;
}

.sp-shop-cta .sp-story-cta__button {
	min-height: 48px;
}

.sp-shop .sp-btn:hover {
	transform: none;
}

/* Hover lift only on devices that support it ----------------------------- */

@media (hover: hover) {
	.sp-shop .sp-btn:hover {
		transform: translateY(-1px);
	}

	body.woocommerce .sp-shop .sp-shop-grid ul.products li.product,
	body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product {
		transition: transform 0.2s ease, box-shadow 0.2s ease;
	}

	body.woocommerce .sp-shop .sp-shop-grid ul.products li.product:hover,
	body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product:hover {
		transform: translateY(-4px);
		box-shadow: 0 20px 44px rgba(47, 74, 51, 0.12);
	}

	body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions .add_to_cart_button:hover,
	body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions a.button:hover,
	body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions .add_to_cart_button:hover,
	body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__actions a.button:hover {
		background: var(--sp-primary);
		color: #fff;
		transform: translateY(-1px);
	}

	body.woocommerce .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__button--buy:hover,
	body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product .bc-product-card__button--buy:hover {
		border-color: var(--sp-deep);
		background: var(--sp-deep);
		color: var(--sp-bg);
		transform: translateY(-1px);
	}
}

/* Responsive ------------------------------------------------------------- */

@media (min-width: 600px) {
	.sp-shop-badges {
		gap: 1rem;
	}

	.sp-shop-badge {
		padding: 1.15rem 0.75rem;
	}

	.sp-shop-badge__text {
		font-size: 0.8rem;
	}

	.sp-shop-badge__text small {
		font-size: 0.74rem;
	}

	.sp-shop-info__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	body.woocommerce .sp-shop .sp-shop-grid--multi ul.products,
	body.woocommerce-page .sp-shop .sp-shop-grid--multi ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 1.25rem;
	}
}

@media (min-width: 900px) {
	.sp-shop-hero {
		padding-block: 3rem 4rem;
	}

	.sp-shop-hero__inner {
		grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
		gap: clamp(2rem, 4vw, 3.5rem);
	}

	.sp-shop__main {
		padding-block: 1rem 4rem;
	}

	.sp-shop-cta {
		padding-block: 0 3.5rem;
	}

	body.woocommerce .sp-shop .sp-shop-grid--single ul.products,
	body.woocommerce-page .sp-shop .sp-shop-grid--single ul.products {
		display: block;
		max-width: 1000px;
		margin-inline: auto;
	}

	body.woocommerce .sp-shop .sp-shop-grid--single ul.products li.product,
	body.woocommerce-page .sp-shop .sp-shop-grid--single ul.products li.product {
		display: grid;
		grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
		align-items: stretch;
	}

	.sp-shop-grid--single .sp-product-card__media {
		position: relative;
		height: 100%;
		min-height: 420px;
	}

	.sp-shop-grid--single .sp-product-card__media-link {
		position: absolute;
		inset: 0;
		height: 100%;
	}

	body.woocommerce .sp-shop .sp-shop-grid--single ul.products li.product .sp-product-card__media-link img,
	body.woocommerce-page .sp-shop .sp-shop-grid--single ul.products li.product .sp-product-card__media-link img,
	.sp-shop-grid--single .sp-product-card__ph {
		height: 100%;
		aspect-ratio: auto;
		object-fit: cover;
	}

	.sp-shop-grid--single .sp-product-card__body {
		justify-content: center;
		padding: 2rem 2.25rem;
	}
}

@media (min-width: 1000px) {
	body.woocommerce .sp-shop .sp-shop-grid--3plus ul.products,
	body.woocommerce-page .sp-shop .sp-shop-grid--3plus ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	body.woocommerce .sp-shop .sp-shop-grid ul.products li.product,
	body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product {
		transition: none;
	}

	body.woocommerce .sp-shop .sp-shop-grid ul.products li.product:hover,
	body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product:hover {
		transform: none;
	}
}

/* T16 Shop fix */

/*
 * The featured single-product card must fill the content column (up to
 * 1000px, centred) instead of inheriting the narrow legacy WooCommerce
 * product-cell width. Scoped to .sp-shop so other Woo pages are untouched.
 */
body.woocommerce .sp-shop .sp-shop-grid--single ul.products,
body.woocommerce-page .sp-shop .sp-shop-grid--single ul.products,
.sp-shop .sp-shop-grid--single ul.products {
	display: block;
	width: 100%;
	max-width: 1000px;
	margin-inline: auto;
	padding: 0;
}

body.woocommerce .sp-shop .sp-shop-grid ul.products li.product,
body.woocommerce-page .sp-shop .sp-shop-grid ul.products li.product,
body.woocommerce .sp-shop ul.products li.product,
body.woocommerce-page .sp-shop ul.products li.product {
	float: none;
	clear: none;
	width: 100%;
	max-width: none;
	min-width: 0;
	margin: 0;
	padding: 0;
}

body.woocommerce .sp-shop .sp-product-card,
body.woocommerce-page .sp-shop .sp-product-card,
body.woocommerce .sp-shop .sp-product-card__media,
body.woocommerce-page .sp-shop .sp-product-card__media,
body.woocommerce .sp-shop .sp-product-card__body,
body.woocommerce-page .sp-shop .sp-product-card__body,
body.woocommerce .sp-shop .sp-product-card__buy,
body.woocommerce-page .sp-shop .sp-product-card__buy,
body.woocommerce .sp-shop .sp-product-card .bc-product-card__commerce,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__commerce,
body.woocommerce .sp-shop .sp-product-card .bc-product-card__buy,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__buy,
body.woocommerce .sp-shop .sp-product-card .bc-product-card__actions,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__actions {
	min-width: 0;
	max-width: 100%;
}

.sp-shop .sp-product-card__name,
.sp-shop .sp-product-card__name a {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}

/* Buy Now and Add to cart: stacked full-width pills, 12px apart. */
body.woocommerce .sp-shop .sp-product-card .bc-product-card__buy,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__buy,
body.woocommerce .sp-shop .sp-product-card .bc-product-card__commerce,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__commerce,
body.woocommerce .sp-shop .sp-product-card .bc-product-card__actions,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	width: 100%;
	margin: 0;
}

body.woocommerce .sp-shop .sp-product-card .bc-product-card__actions .button,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__actions .button,
body.woocommerce .sp-shop .sp-product-card .bc-product-card__actions a.button,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__actions a.button,
body.woocommerce .sp-shop .sp-product-card .bc-product-card__actions .add_to_cart_button,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__actions .add_to_cart_button,
body.woocommerce .sp-shop .sp-product-card .bc-product-card__actions button.button,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__actions button.button,
body.woocommerce .sp-shop .sp-product-card .bc-product-card__button,
body.woocommerce-page .sp-shop .sp-product-card .bc-product-card__button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	max-width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 0.8rem 1rem;
	border-radius: 999px;
	text-align: center;
}

@media (min-width: 900px) {
	body.woocommerce .sp-shop .sp-shop-grid--single ul.products li.product,
	body.woocommerce-page .sp-shop .sp-shop-grid--single ul.products li.product,
	.sp-shop .sp-shop-grid--single ul.products li.product {
		display: grid;
		grid-template-columns: minmax(0, 0.92fr) minmax(0, 1.08fr);
		width: 100%;
		max-width: 1000px;
		margin-inline: auto;
	}

	.sp-shop .sp-shop-grid--single .sp-product-card__media {
		min-width: 0;
	}

	.sp-shop .sp-shop-grid--single .sp-product-card__body {
		min-width: 0;
	}
}

@media (max-width: 899px) {
	body.woocommerce .sp-shop .sp-shop-grid--single ul.products li.product,
	body.woocommerce-page .sp-shop .sp-shop-grid--single ul.products li.product,
	.sp-shop .sp-shop-grid--single ul.products li.product {
		display: flex;
		flex-direction: column;
		width: 100%;
	}
}

/* T17 Product */

.sp-product {
	overflow-x: clip;
	background: var(--sp-bg);
	color: var(--sp-deep);
}

/*
 * Override WooCommerce's default single-product grid. The product template owns
 * the page structure, so the article must be a plain block.
 */
.sp-product .sp-product__article.product {
	display: block;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
}

.sp-product .sp-product__article.product > * {
	min-width: 0;
}

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

.sp-product .sp-product-hero {
	padding-block: 1.5rem 2rem;
}

.sp-product .sp-product-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
}

.sp-product .sp-product-gallery,
.sp-product .sp-product-summary {
	min-width: 0;
}

.sp-product .sp-product-gallery {
	position: relative;
}

.sp-product .sp-product-gallery .woocommerce-product-gallery {
	width: 100%;
	max-width: 100%;
	margin: 0;
	overflow: hidden;
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 16px 40px rgba(47, 74, 51, 0.09);
}

.sp-product .sp-product-gallery .woocommerce-product-gallery__wrapper {
	margin: 0;
}

.sp-product .sp-product-gallery .woocommerce-product-gallery__image img,
.sp-product .sp-product-gallery .woocommerce-product-gallery img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: inherit;
}

.sp-product .sp-product-gallery .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0.75rem 0 0;
	padding: 0 0.75rem 0.75rem;
	list-style: none;
}

.sp-product .sp-product-gallery .flex-control-thumbs li {
	width: 4.5rem;
	margin: 0;
}

.sp-product .sp-product-gallery .flex-control-thumbs img {
	border: 2px solid transparent;
	border-radius: 10px;
	opacity: 1;
}

.sp-product .sp-product-gallery .flex-control-thumbs img:hover,
.sp-product .sp-product-gallery .flex-control-thumbs img.flex-active {
	border-color: var(--sp-deep);
}

.sp-product .sp-product-gallery__ph {
	height: auto;
	aspect-ratio: 4 / 5;
	border-radius: var(--sp-radius);
}

.sp-product .sp-product-gallery .sp-story-ph svg {
	max-width: 150px;
	max-height: 150px;
}

.sp-product .sp-product-gallery__badge {
	position: absolute;
	top: 0.85rem;
	left: 0.85rem;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 30px;
	padding: 0.3rem 0.8rem;
	border-radius: 999px;
	background: var(--sp-primary);
	color: #fff;
	font-family: var(--sp-font-body);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

/* Summary ---------------------------------------------------------------- */

.sp-product .sp-product-summary {
	display: flex;
	flex-direction: column;
	gap: 0.85rem;
}

.sp-product .sp-product-summary .sp-eyebrow {
	margin: 0;
}

.sp-product .sp-product-summary__title {
	margin: 0;
	font-family: var(--sp-font-heading);
	font-size: clamp(2rem, 7vw, 3.2rem);
	font-weight: 700;
	line-height: 1.05;
	letter-spacing: -0.015em;
	overflow-wrap: anywhere;
}

.sp-product .sp-product-summary__age {
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	min-height: 30px;
	margin: 0;
	padding: 0.3rem 0.8rem;
	border-radius: 999px;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-size: 0.75rem;
	font-weight: 800;
	line-height: 1;
}

.sp-product .sp-product-summary__price {
	margin: 0;
}

.sp-product .sp-product-summary__price .bc-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.45rem 0.75rem;
	color: var(--sp-deep);
}

.sp-product .sp-product-summary__price .bc-price__current {
	color: var(--sp-primary);
	font-family: var(--sp-font-heading);
	font-size: clamp(1.8rem, 6vw, 2.5rem);
	font-weight: 800;
	line-height: 1;
}

.sp-product .sp-product-summary__price .bc-price__was {
	color: var(--sp-deep);
	font-size: 0.95rem;
	font-weight: 500;
	opacity: 0.55;
	text-decoration: line-through;
}

.sp-product .sp-product-summary__price .bc-price__save {
	display: inline-flex;
	align-items: center;
	padding: 0.2rem 0.65rem;
	border-radius: 999px;
	background: var(--sp-tint);
	color: var(--sp-deep);
	font-size: 0.78rem;
	font-weight: 800;
	line-height: 1.4;
}

.sp-product .sp-product-summary__short {
	color: var(--sp-deep);
	font-size: 1rem;
	line-height: 1.65;
	opacity: 0.85;
	overflow-wrap: anywhere;
}

.sp-product .sp-product-summary__short p {
	margin: 0;
}

.sp-product .sp-product-summary__short p + p {
	margin-top: 0.75rem;
}

/* Add to cart / Buy Now (Brand Core commerce block) ---------------------- */

.sp-product .sp-product-summary__buy,
.sp-product .sp-product-summary__commerce,
.sp-product .sp-product-summary__commerce .bc-product-card__buy,
.sp-product .sp-product-summary__commerce .bc-product-card__actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	width: 100%;
	min-width: 0;
	margin: 0;
}

.sp-product .sp-product-summary__commerce {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

/*
 * The summary shows the main price above; hide the commerce block's internal
 * price row so the page never shows the same price twice.
 */
.sp-product .sp-product-summary__commerce .bc-product-card__price {
	display: none;
}

.sp-product .sp-product-summary__commerce .bc-product-card__actions .button,
.sp-product .sp-product-summary__commerce .bc-product-card__actions a.button,
.sp-product .sp-product-summary__commerce .bc-product-card__actions button.button,
.sp-product .sp-product-summary__commerce .bc-product-card__actions .add_to_cart_button,
.sp-product .sp-product-summary__commerce .bc-product-card__button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-width: 0;
	min-height: 48px;
	margin: 0;
	padding: 0.8rem 1rem;
	border-radius: 999px;
	font-family: var(--sp-font-body);
	font-size: 0.95rem;
	font-weight: 800;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
}

.sp-product .sp-product-summary__commerce .bc-product-card__button--buy {
	border: 2px solid var(--sp-primary);
	background: var(--sp-primary);
	color: #fff;
}

.sp-product .sp-product-summary__commerce .bc-product-card__actions .button,
.sp-product .sp-product-summary__commerce .bc-product-card__actions a.button,
.sp-product .sp-product-summary__commerce .bc-product-card__actions button.button,
.sp-product .sp-product-summary__commerce .bc-product-card__actions .add_to_cart_button {
	border: 2px solid var(--sp-primary);
	background: transparent;
	color: var(--sp-primary);
}

.sp-product .sp-product-summary__commerce .bc-product-card__actions .button.loading,
.sp-product .sp-product-summary__commerce .bc-product-card__actions .button.added,
.sp-product .sp-product-summary__commerce .bc-product-card__actions .add_to_cart_button.loading,
.sp-product .sp-product-summary__commerce .bc-product-card__actions .add_to_cart_button.added {
	opacity: 0.72;
}

.sp-product .sp-product-summary__commerce .bc-product-card__actions .button.loading::after,
.sp-product .sp-product-summary__commerce .bc-product-card__actions .button.added::after {
	display: none;
	content: none;
}

.sp-product .sp-product-summary__commerce .added_to_cart {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	color: var(--sp-deep);
	font-weight: 800;
	text-align: center;
	text-decoration: underline;
}

/* Optional bundle chips inside the shared commerce block ----------------- */

.sp-product .sp-product-summary__commerce .bc-card-bundles {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(5.5rem, 1fr));
	gap: 0.5rem;
	width: 100%;
}

.sp-product .sp-product-summary__commerce .bc-card-bundles__chip {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0.45rem 0.6rem;
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.24);
	border-radius: 14px;
	background: var(--sp-card);
	color: var(--sp-deep);
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	cursor: pointer;
}

.sp-product .sp-product-summary__commerce .bc-card-bundles__chip:hover {
	border-color: var(--sp-deep);
}

.sp-product .sp-product-summary__commerce .bc-card-bundles__chip:focus-within {
	outline: 3px solid var(--sp-accent);
	outline-offset: 2px;
}

.sp-product .sp-product-summary__commerce .bc-card-bundles__chip.is-selected {
	border-color: var(--sp-deep);
	background: var(--sp-deep);
	color: var(--sp-bg);
}

.sp-layout-sage .sp-product .sp-product-summary__commerce .bc-card-bundles__chip.is-selected {
	border-color: var(--sp-primary);
	background: var(--sp-primary);
	color: #fff;
}

.sp-product .sp-product-summary__commerce .bc-card-bundles__radio {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	clip-path: inset(50%);
	border: 0;
	white-space: nowrap;
}

.sp-product .sp-product-summary__commerce .bc-card-bundles__label {
	position: relative;
	z-index: 1;
	pointer-events: none;
}

/* Fallback native WooCommerce form (variable products / core missing) ---- */

.sp-product .sp-product-summary form.cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0;
}

.sp-product .sp-product-summary form.cart .quantity {
	display: inline-flex;
	align-items: center;
	overflow: hidden;
	border: 1px solid rgba(47, 74, 51, 0.24);
	border-radius: 999px;
	background: var(--sp-card);
}

.sp-product .sp-product-summary form.cart .quantity input.qty,
.sp-product .sp-product-summary .quantity input.qty {
	width: 4.5rem;
	height: 48px;
	min-height: 48px;
	padding: 0.4rem 0.55rem;
	border: 0;
	background: transparent;
	color: var(--sp-deep);
	font-weight: 700;
	text-align: center;
}

.sp-product .sp-product-summary form.cart .single_add_to_cart_button {
	flex: 1 1 100%;
	width: 100%;
	min-height: 48px;
	padding: 0.8rem 1.25rem;
	border: 0;
	border-radius: 999px;
	background: var(--sp-deep);
	color: var(--sp-bg);
	font-size: 0.95rem;
	font-weight: 800;
	line-height: 1.2;
	text-transform: none;
}

.sp-layout-sage .sp-product .sp-product-summary form.cart .single_add_to_cart_button {
	background: var(--sp-primary);
	color: #fff;
}

.sp-product .sp-product-summary form.cart .variations {
	width: 100%;
	margin: 0 0 0.75rem;
}

.sp-product .sp-product-summary form.cart .variations th,
.sp-product .sp-product-summary form.cart .variations td {
	padding: 0.35rem 0;
	text-align: left;
	vertical-align: top;
}

.sp-product .sp-product-summary form.cart .variations select {
	width: 100%;
	min-height: 48px;
	padding: 0.5rem 0.75rem;
	border: 1px solid rgba(47, 74, 51, 0.24);
	border-radius: 12px;
	background: var(--sp-card);
	color: var(--sp-deep);
}

/* Mini badges ------------------------------------------------------------ */

.sp-product .sp-product-summary__badges {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.6rem;
	margin: 0.35rem 0 0;
	padding: 0;
	list-style: none;
}

.sp-product .sp-product-summary__badge {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	min-width: 0;
	color: var(--sp-deep);
	font-size: 0.9rem;
	font-weight: 700;
	line-height: 1.35;
}

.sp-product .sp-product-summary__badge-icon {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--sp-tint);
	color: var(--sp-deep);
}

.sp-product .sp-product-summary__badge-icon svg {
	width: 20px;
	height: 20px;
	stroke-width: 1.8;
}

/* Long description ------------------------------------------------------- */

.sp-product .sp-product-description {
	padding-block: 0.5rem 2.25rem;
}

.sp-product .sp-product-description__content {
	max-width: 760px;
	margin-inline: auto;
	color: var(--sp-deep);
	font-size: 1rem;
	line-height: 1.7;
	overflow-wrap: anywhere;
}

.sp-product .sp-product-description__content > *:first-child {
	margin-top: 0;
}

.sp-product .sp-product-description__content > *:last-child {
	margin-bottom: 0;
}

.sp-product .sp-product-description__content img {
	width: auto;
	max-width: 100%;
	height: auto;
	border-radius: 16px;
}

.sp-product .sp-product-description__content table {
	width: 100%;
	border-collapse: collapse;
}

/* What is inside --------------------------------------------------------- */

.sp-product .sp-product-inside {
	padding-block: 2.25rem;
}

.sp-product .sp-product-inside .sp-section__head {
	margin-bottom: 1.5rem;
}

/* How to prepare --------------------------------------------------------- */

.sp-product .sp-product-prepare {
	padding-block: 2.25rem;
}

.sp-product .sp-product-prepare__steps {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.85rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-product .sp-product-prepare__step {
	display: flex;
	align-items: center;
	gap: 0.9rem;
	min-width: 0;
	padding: 1.1rem 1.15rem;
	border-radius: var(--sp-radius);
	background: var(--sp-card);
	box-shadow: 0 10px 24px rgba(47, 74, 51, 0.06);
}

.sp-product .sp-product-prepare__num {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--sp-deep);
	color: #fff;
	font-family: var(--sp-font-heading);
	font-size: 1.15rem;
	font-weight: 800;
}

.sp-product .sp-product-prepare__step:nth-child(2) .sp-product-prepare__num {
	background: var(--sp-primary);
}

.sp-product .sp-product-prepare__step:nth-child(3) .sp-product-prepare__num {
	background: var(--sp-accent);
	color: var(--sp-deep);
}

.sp-product .sp-product-prepare__icon {
	display: grid;
	place-items: center;
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	color: var(--sp-primary);
}

.sp-product .sp-product-prepare__icon svg {
	width: 24px;
	height: 24px;
	stroke-width: 1.8;
}

.sp-product .sp-product-prepare__text {
	min-width: 0;
	font-weight: 600;
	line-height: 1.45;
}

.sp-product .sp-product-prepare__note {
	margin: 1.25rem 0 0;
	font-size: 0.9rem;
	line-height: 1.5;
	opacity: 0.72;
}

/* Info row --------------------------------------------------------------- */

.sp-product .sp-product-info {
	padding-block: 0.5rem 2.5rem;
}

.sp-product .sp-product-info__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.85rem;
}

.sp-product .sp-product-info__card {
	display: flex;
	flex-direction: column;
	gap: 0.4rem;
	min-width: 0;
	padding: 1.25rem 1.25rem 1.35rem;
	border-radius: 22px;
	background: var(--sp-card);
	box-shadow: 0 12px 28px rgba(47, 74, 51, 0.06);
}

.sp-product .sp-product-info__title {
	margin: 0;
	font-family: var(--sp-font-heading);
	font-size: 1.2rem;
	line-height: 1.2;
}

.sp-product .sp-product-info__text {
	margin: 0;
	font-size: 0.94rem;
	line-height: 1.55;
	opacity: 0.8;
}

.sp-product .sp-product-info__links {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem 1rem;
	margin: 0.25rem 0 0;
}

.sp-product .sp-product-info__link {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	min-height: 44px;
	color: var(--sp-primary);
	font-size: 0.9rem;
	font-weight: 800;
	text-decoration: none;
}

.sp-product .sp-product-info__link:hover {
	text-decoration: underline;
}

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

.sp-product .sp-btn {
	min-height: 48px;
}

/* No lift on touch devices; the lift is re-enabled in @media (hover: hover). */
.sp-product .sp-btn:hover {
	transform: none;
}

/* Closing band ----------------------------------------------------------- */

.sp-product .sp-product-cta {
	padding-block: 0.5rem 2.5rem;
}

.sp-product .sp-product-cta .sp-story-cta__button {
	min-height: 48px;
}

/* Related products ------------------------------------------------------- */

.sp-product .sp-product-related {
	padding-block: 0.5rem 2.5rem;
}

.sp-product .sp-product-related .related.products {
	margin: 0;
}

.sp-product .sp-product-related .related.products > h2 {
	margin: 0 0 1.25rem;
	color: var(--sp-deep);
	font-family: var(--sp-font-heading);
	font-size: clamp(1.5rem, 5vw, 2.2rem);
	line-height: 1.15;
	text-align: center;
}

.sp-product .sp-product-related ul.products {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-product .sp-product-related ul.products li.product {
	padding: 0;
	overflow: hidden;
}

.sp-product .sp-product-related .sp-product-card__body {
	padding: 1.15rem 1.15rem 1.25rem;
}

/* Hover lift only where hover exists ------------------------------------- */

@media (hover: hover) {
	.sp-product .sp-btn:hover {
		transform: translateY(-1px);
	}

	.sp-product .sp-product-summary__commerce .bc-product-card__button--buy:hover,
	.sp-product .sp-product-summary__commerce .bc-product-card__button--buy:focus-visible {
		border-color: var(--sp-deep);
		background: var(--sp-deep);
		color: var(--sp-bg);
		transform: translateY(-1px);
	}

	.sp-product .sp-product-summary__commerce .bc-product-card__actions .button:hover,
	.sp-product .sp-product-summary__commerce .bc-product-card__actions a.button:hover,
	.sp-product .sp-product-summary__commerce .bc-product-card__actions button.button:hover,
	.sp-product .sp-product-summary__commerce .bc-product-card__actions .add_to_cart_button:hover {
		background: var(--sp-primary);
		color: #fff;
		transform: translateY(-1px);
	}
}

/* Responsive ------------------------------------------------------------- */

@media (min-width: 600px) {
	.sp-product .sp-product-info__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.sp-product .sp-product-related ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 900px) {
	.sp-product .sp-product-hero {
		padding-block: 2.5rem 3.5rem;
	}

	.sp-product .sp-product-hero__inner {
		grid-template-columns: minmax(0, 1.02fr) minmax(0, 0.98fr);
		gap: clamp(2rem, 4vw, 3.5rem);
		align-items: start;
	}

	.sp-product .sp-product-summary {
		padding-top: 0.25rem;
	}

	.sp-product .sp-product-inside,
	.sp-product .sp-product-prepare {
		padding-block: 3.5rem;
	}

	.sp-product .sp-product-prepare__steps {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.25rem;
	}

	.sp-product .sp-product-prepare__step {
		flex-direction: column;
		align-items: flex-start;
		gap: 0.85rem;
	}

	.sp-product .sp-product-cta {
		padding-block: 0.5rem 3.5rem;
	}

	.sp-product .sp-product-related {
		padding-block: 0.5rem 3.5rem;
	}

	.sp-product .sp-product-related ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 1.25rem;
	}
}

@media (min-width: 1000px) {
	.sp-product .sp-product-related ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (prefers-reduced-motion: reduce) {
	.sp-product .sp-btn:hover,
	.sp-product .sp-product-summary__commerce .bc-product-card__button--buy:hover,
	.sp-product .sp-product-summary__commerce .bc-product-card__actions .button:hover,
	.sp-product .sp-product-summary__commerce .bc-product-card__actions a.button:hover,
	.sp-product .sp-product-summary__commerce .bc-product-card__actions button.button:hover,
	.sp-product .sp-product-summary__commerce .bc-product-card__actions .add_to_cart_button:hover {
		transform: none;
	}
}

/* T18 Product gallery */

/*
 * Defensive: WooCommerce's gallery stays at opacity: 0 until its scripts run,
 * and Brand Core/theme dequeue those scripts. The theme renders its own gallery
 * markup, but if a Woo gallery class is ever present it must stay visible.
 */
.sp-product .sp-product-gallery .woocommerce-product-gallery,
.sp-product .woocommerce-product-gallery {
	opacity: 1 !important;
}

.sp-product .sp-product-gallery__main {
	position: relative;
	overflow: hidden;
	aspect-ratio: 4 / 5;
	border-radius: 28px;
	background: var(--sp-card);
	box-shadow: 0 16px 40px rgba(47, 74, 51, 0.09);
}

.sp-product .sp-product-gallery__main img,
.sp-product .sp-product-gallery__img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	object-fit: cover;
	object-position: center;
}

.sp-product .sp-product-gallery__thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin-top: 0.75rem;
}

.sp-product .sp-product-gallery__thumb {
	display: block;
	width: 96px;
	height: 96px;
	max-width: 100%;
	padding: 0;
	overflow: hidden;
	border: 2px solid transparent;
	border-radius: 14px;
	background: var(--sp-card);
	cursor: pointer;
	line-height: 0;
}

.sp-product .sp-product-gallery__thumb.is-active {
	border-color: var(--sp-deep);
}

.sp-product .sp-product-gallery__thumb:focus-visible {
	outline: 2px solid var(--sp-primary);
	outline-offset: 2px;
}

.sp-product .sp-product-gallery__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	border-radius: inherit;
	object-fit: cover;
	object-position: center;
}

@media (min-width: 900px) {
	.sp-product .sp-product-gallery {
		position: sticky;
		top: 100px;
		align-self: start;
	}
}

/* T19 Checkout selects */

/*
 * WooCommerce Blocks renders address selects as
 * .wc-blocks-components-select > __container > label + select + __expand.
 * Style the select itself like the text inputs, keep the container as the
 * positioning context, and pin the small label above the value.
 */
body.woocommerce-checkout .wc-block-checkout .wc-block-components-address-form .wc-blocks-components-select__container,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-country-input .wc-blocks-components-select__container,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-state-input .wc-blocks-components-select__container {
	display: block;
	position: relative;
	width: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
}

body.woocommerce-checkout .wc-block-checkout .wc-block-components-address-form select,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-country-input select,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-state-input select {
	width: 100%;
	height: 48px;
	min-height: 48px;
	margin: 0;
	padding: 20px 44px 6px 16px;
	border: 1px solid rgba(47, 74, 51, 0.28);
	border-radius: 12px;
	background-color: var(--sp-card);
	background-image: none;
	color: var(--sp-deep);
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.25;
	-webkit-appearance: none;
	appearance: none;
	box-shadow: none;
	cursor: pointer;
}

body.woocommerce-checkout .wc-block-checkout .wc-block-components-address-form .wc-blocks-components-select__label,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-country-input .wc-blocks-components-select__label,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-state-input .wc-blocks-components-select__label {
	position: absolute;
	top: 8px;
	left: 16px;
	right: 48px;
	z-index: 2;
	margin: 0;
	padding: 0;
	overflow: hidden;
	color: var(--sp-deep);
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.01em;
	white-space: nowrap;
	text-overflow: ellipsis;
	transform: none;
	pointer-events: none;
}

body.woocommerce-checkout .wc-block-checkout .wc-block-components-address-form .wc-blocks-components-select__expand,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-country-input .wc-blocks-components-select__expand,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-state-input .wc-blocks-components-select__expand {
	position: absolute;
	top: 50%;
	right: 14px;
	width: 18px;
	height: 18px;
	margin: 0;
	color: var(--sp-deep);
	fill: currentColor;
	transform: translateY(-50%);
	pointer-events: none;
}

body.woocommerce-checkout .wc-block-checkout .wc-block-components-address-form select:focus,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-country-input select:focus,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-state-input select:focus {
	border-color: var(--sp-deep);
	outline: 3px solid var(--sp-accent);
	outline-offset: 2px;
	box-shadow: none;
}

body.woocommerce-checkout .wc-block-checkout .wc-block-components-address-form .wc-blocks-components-select.has-error .wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-address-form .wc-blocks-components-select.is-invalid .wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-country-input .wc-blocks-components-select.has-error .wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-state-input .wc-blocks-components-select.has-error .wc-blocks-components-select__select {
	border-color: #B3261E;
	background-color: #FDECEA;
}

/* No payment methods notice: keep normal banner padding. */
body.woocommerce-checkout .wc-block-checkout .wc-block-components-notice-banner,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__no-payment-methods-notice,
body.woocommerce-checkout .wc-block-checkout .wc-block-checkout__payment-method .wc-block-components-notice-banner,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-checkout-payment-method .wc-block-components-notice-banner {
	padding: 1rem 1.15rem;
}

/* T20 Checkout select match */

/*
 * Live checkout text inputs render with a 4px radius and this 1px dark border,
 * while the T19 select styles keep the lighter theme border and 12px radius.
 * Match the address select to the input and reuse the input focus ring.
 */
body.woocommerce-checkout .wc-block-checkout .wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-address-form select.wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-country-input select.wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-state-input select.wc-blocks-components-select__select {
	border: 1px solid color(srgb 0.1686 0.1765 0.1843 / 0.8);
	border-radius: 4px;
}

body.woocommerce-checkout .wc-block-checkout .wc-blocks-components-select__select:focus,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-address-form select.wc-blocks-components-select__select:focus,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-country-input select.wc-blocks-components-select__select:focus,
body.woocommerce-checkout .wc-block-checkout .wc-block-components-state-input select.wc-blocks-components-select__select:focus {
	border-color: var(--sp-deep);
	outline: 3px solid var(--sp-accent);
	outline-offset: 2px;
}

/* T22 Footer legal */

/* The bottom bar already uses .sp-footer__legal; reset the base bar styles on the nested nav. */
nav.sp-footer__legal {
	margin-top: 0.35rem;
	padding: 0;
	border: 0;
	font-size: inherit;
	line-height: 1.2;
}

.sp-footer__legal-links {
	display: flex;
	flex-direction: column;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sp-footer__legal-links li {
	display: flex;
	align-items: center;
	justify-content: center;
}

.sp-footer__legal-links a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 0.55rem;
	color: rgba(251, 244, 234, 0.8);
	font-size: 0.82rem;
	font-weight: 500;
	text-decoration: none;
}

.sp-footer__legal-links a:hover,
.sp-footer__legal-links a:focus-visible {
	color: rgba(251, 244, 234, 0.8);
	text-decoration: underline;
}

.sp-footer__legal-links a:focus-visible {
	outline: 2px solid var(--sp-accent);
	outline-offset: 2px;
}

@media (min-width: 600px) {
	.sp-footer__legal-links {
		flex-direction: row;
	}

	.sp-footer__legal-links li + li::before {
		content: "\00b7";
		color: rgba(251, 244, 234, 0.45);
		font-size: 1rem;
		line-height: 1;
	}
}
