/**
 * KefirBuy design layer.
 *
 * Section layouts, cards and header components, with values taken from the
 * design project's Kefir Buy Home.dc.html template. Content stays in blocks
 * and is fully editable; these rules only reproduce the design's geometry.
 *
 * Loaded on the front end and inside the editor (add_editor_style), so what
 * editors see matches the site.
 */

/* ------------------------------------------------------------ keyframes */

@keyframes kbMorph {
	0%, 100% { border-radius: 46% 54% 58% 42% / 48% 42% 58% 52%; transform: rotate(0) scale(1); }
	33% { border-radius: 58% 42% 40% 60% / 55% 60% 40% 45%; transform: rotate(40deg) scale(1.06); }
	66% { border-radius: 40% 60% 55% 45% / 40% 50% 50% 60%; transform: rotate(-20deg) scale(.95); }
}
@keyframes kbFloat {
	0%, 100% { transform: translateY(0) rotate(var(--r, 0deg)); }
	50% { transform: translateY(-7%) rotate(calc(var(--r, 0deg) + 3deg)); }
}
@keyframes kbSpin { to { transform: rotate(360deg); } }
@keyframes kbRise {
	0% { transform: translate3d(0, 0, 0) scale(.6); opacity: 0; }
	15% { opacity: .9; }
	100% { transform: translate3d(var(--dx), -520px, 0) scale(1); opacity: 0; }
}
@keyframes kbPulse { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@keyframes kbBob {
	0%, 100% { transform: translateY(0) rotate(var(--r)); }
	50% { transform: translateY(-6px) rotate(calc(var(--r) + 2deg)); }
}
@keyframes kbWiggle {
	0%, 86%, 100% { transform: rotate(0); }
	89% { transform: rotate(-8deg) scale(1.08); }
	92% { transform: rotate(7deg) scale(1.08); }
	95% { transform: rotate(-4deg); }
}

@keyframes kbTrail {
	0% { transform: translate3d(-50%, -50%, 0) scale(.4); opacity: .9; }
	100% { transform: translate3d(-50%, calc(-50% - 60px), 0) scale(1.2); opacity: 0; }
}
@keyframes kbFizz {
	0% { transform: translate3d(0, 0, 0) scale(.5); opacity: 0; }
	20% { opacity: 1; }
	100% { transform: translate3d(var(--dx), -70px, 0) scale(1.1); opacity: 0; }
}
@keyframes kbBurst {
	0% { transform: translate3d(0, 0, 0) scale(1); opacity: 1; }
	100% { transform: translate3d(var(--bx), var(--by), 0) scale(.3); opacity: 0; }
}
@keyframes kbFly {
	0% { transform: translate3d(0, 0, 0) scale(1); opacity: 1; }
	100% { transform: translate3d(var(--fx), var(--fy), 0) scale(.4); opacity: .2; }
}
@keyframes kbBump { 0% { transform: scale(1); } 40% { transform: scale(1.35); } 100% { transform: scale(1); } }
@keyframes kbToast {
	0% { transform: translateY(16px); opacity: 0; }
	10% { transform: translateY(0); opacity: 1; }
	85% { opacity: 1; }
	100% { opacity: 0; }
}

/* ---------------------------------------------------------- illustrations */

.kb-art {
	position: relative;
	overflow: hidden;
}
.kb-art__layer {
	position: absolute;
	inset: 0;
	overflow: hidden;
	pointer-events: none;
}
.kb-bubble {
	will-change: transform, opacity;
}
/* A layer fills its section behind the content. */
.wp-block-kefirbuy-art.kb-art--layer {
	position: absolute;
	inset: 0;
	margin: 0 !important;
	z-index: 0;
	pointer-events: none;
}

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

.wp-block-post-content > .kb-section,
.kb-section > * {
	margin-block: 0;
}
.kb-section {
	position: relative;
	padding-top: clamp(40px, 5vw, 64px);
}
.kb-section--tight {
	padding-top: clamp(32px, 4vw, 52px);
}
.kb-section--last {
	padding-bottom: clamp(40px, 5vw, 64px);
}

.kb-head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 16px;
	flex-wrap: wrap;
}
.kb-head h2 {
	margin: 0;
	font: 400 clamp(28px, 3vw, 38px) / 1.1 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
}
.kb-head p {
	margin: 0;
	font-size: 14.5px;
	font-weight: 700;
	white-space: nowrap;
}

/* Buttons share the design's pill geometry. */
.kb-section .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
}

/* ------------------------------------------------------------------ hero */

.kb-hero {
	position: relative;
	overflow: hidden;
	background: var(--wp--preset--color--paper);
	/* Vertical only: the sides carry WordPress's root padding, which is the
	   page gutter on narrow screens. */
	padding-block: 0;
}
.kb-hero::before {
	content: "";
	position: absolute;
	right: -6%;
	top: -30%;
	width: min(56vw, 760px);
	aspect-ratio: 1;
	border-radius: 46% 54% 58% 42% / 48% 42% 58% 52%;
	background: var(--wp--preset--color--sage);
	pointer-events: none;
}
.kb-hero__inner {
	position: relative;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr));
	gap: 28px 32px;
	align-items: center;
	padding-block: clamp(28px, 4vw, 52px);
}
.kb-hero__inner > * {
	margin: 0 !important;
}
.kb-hero h1 {
	margin: 0;
	font: 400 clamp(40px, 5vw, 66px) / 1 var(--wp--preset--font-family--display);
	letter-spacing: -.02em;
	text-wrap: balance;
	color: var(--wp--preset--color--forest);
}
.kb-hero__lede {
	margin: 14px 0 0 !important;
	max-width: 460px;
	font-size: clamp(16px, 1.3vw, 18px);
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
	text-wrap: pretty;
}
.kb-hero .wp-block-buttons {
	gap: 12px;
	margin-top: 22px !important;
}
.kb-hero .wp-block-button__link {
	height: 52px;
	padding: 0 28px;
	border-radius: 26px;
	font-size: 16px;
	font-weight: 700;
}
.kb-hero .is-style-outline .wp-block-button__link {
	padding: 0 24px;
	border: 1px solid var(--wp--preset--color--forest);
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--forest);
	font-weight: 600;
}
.kb-hero .is-style-outline .wp-block-button__link:hover {
	border-color: var(--wp--preset--color--forest-deep);
	color: var(--wp--preset--color--forest-deep);
}

/* Four icon points under the hero buttons; also used by the gut band. */
.kb-points {
	list-style: none;
	margin: 26px 0 0 !important;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	max-width: 480px;
}
.kb-points li {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin: 0;
	text-align: center;
	font-size: 12.5px;
	font-weight: 600;
	line-height: 1.25;
}

.kb-hero__art {
	position: relative;
}
.kb-hero__art .wp-block-kefirbuy-art {
	aspect-ratio: 16 / 10;
	max-height: 340px;
	max-width: 560px;
	margin: 0 0 0 auto !important;
	border-radius: 28px;
	background: var(--wp--preset--color--forest);
	box-shadow: 0 26px 50px rgba(56, 89, 59, .2);
}
.kb-hero__note {
	position: absolute;
	left: -6px;
	top: -18px;
	margin: 0 !important;
	padding: 6px 14px;
	border-radius: 14px;
	background: var(--wp--preset--color--paper);
	box-shadow: 0 8px 20px rgba(30, 41, 59, .1);
	font: 600 clamp(22px, 2.2vw, 30px) / 1 var(--wp--preset--font-family--accent);
	color: var(--wp--preset--color--forest);
	white-space: nowrap;
	--r: -8deg;
	transform: rotate(var(--r));
	animation: kbBob 4s ease-in-out infinite;
	z-index: 2;
}
.kb-hero__rating {
	position: absolute;
	right: 14px;
	bottom: -16px;
	margin: 0 !important;
	padding: 9px 14px;
	border-radius: 14px;
	background: var(--wp--preset--color--paper);
	border: 1px solid var(--wp--preset--color--sand);
	box-shadow: 0 10px 24px rgba(30, 41, 59, .12);
	font-size: 13px;
	white-space: nowrap;
	color: var(--wp--preset--color--muted);
	z-index: 2;
}
.kb-hero__rating strong {
	color: var(--wp--preset--color--ink);
}

/* ------------------------------------------------------- category shelf */

.kb-shelf {
	position: relative;
	margin-top: 10px !important;
	overflow-x: auto;
	overflow-y: hidden;
	padding: 24px 10px 20px;
	scrollbar-width: thin;
}
.kb-shelf__row {
	position: relative;
	min-width: 800px;
	display: grid;
	grid-template-columns: repeat(8, minmax(88px, 1fr));
	gap: 10px;
}
/* The shelf itself: a front lip and a top surface behind the jars. */
.kb-shelf__row::before,
.kb-shelf__row::after {
	content: "";
	position: absolute;
	left: -6px;
	right: -6px;
	pointer-events: none;
}
.kb-shelf__row::before {
	top: 146px;
	height: 30px;
	border-radius: 15px;
	background: #C9D6BE;
	box-shadow: 0 18px 22px -10px rgba(44, 71, 47, .45), 0 4px 6px rgba(44, 71, 47, .12);
}
.kb-shelf__row::after {
	top: 132px;
	height: 24px;
	border-radius: 14px 14px 10px 10px;
	background: linear-gradient(180deg, #EEF3EA 0%, #DFE8D7 70%, #D3DFCA 100%);
	box-shadow: inset 0 1px 0 #FDFBF7;
}
.kb-cat {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0 !important;
}
.kb-cat > * {
	margin: 0 !important;
}
/* The jar. Its liquid is the group's own background colour, so editors can
   recolour a jar from the block's colour settings. */
.kb-cat__jar {
	position: relative;
	width: min(80%, 100px);
	height: 136px;
	margin-top: 10px !important;
	border-radius: 24px 24px 12px 12px;
	background-image: linear-gradient(180deg, rgba(253, 251, 247, .55) 0 20%, transparent 20% 100%);
	border: 2px solid rgba(56, 89, 59, .28);
	box-shadow: inset 0 -10px 16px rgba(56, 89, 59, .06);
	transform-origin: 50% 100%;
	transition: transform .45s cubic-bezier(.34, 1.8, .5, 1);
}
.kb-cat__jar::before {
	content: "";
	position: absolute;
	top: -12px;
	left: 12%;
	right: 12%;
	height: 14px;
	border-radius: 6px 6px 3px 3px;
	background: var(--wp--preset--color--forest);
	box-shadow: inset 0 -3px 0 var(--wp--preset--color--forest-deep);
}
.kb-cat__jar::after {
	content: "";
	position: absolute;
	left: 10px;
	top: 20px;
	width: 8px;
	height: 58%;
	border-radius: 4px;
	background: rgba(253, 251, 247, .6);
}
.kb-cat:hover .kb-cat__jar,
.kb-cat:focus-within .kb-cat__jar {
	transform: rotate(-4deg) translateY(-6px);
}
.kb-cat__name {
	margin-top: 44px !important;
	min-height: 29px;
	font: 800 12px / 1.2 var(--wp--preset--font-family--body);
	letter-spacing: .06em;
	text-transform: uppercase;
	text-align: center;
	text-wrap: balance;
}
.kb-cat__name a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
/* Whole tile is the link. */
.kb-cat__name a::after {
	content: "";
	position: absolute;
	inset: 0;
}
/* The amber dash sits below the name's 29px box, not inside it. */
.kb-cat::after {
	content: "";
	width: 24px;
	height: 3px;
	margin-top: 6px;
	border-radius: 2px;
	background: var(--wp--preset--color--amber);
}

/* ---------------------------------------------------------- deal of day */

.kb-deal__card {
	position: relative;
	overflow: hidden;
	border-radius: 26px;
	background: var(--wp--preset--color--sage);
	padding: clamp(20px, 3vw, 32px);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 20px 32px;
	align-items: center;
}
.kb-deal__card > * {
	position: relative;
	margin: 0 !important;
}
.kb-deal__title {
	font: 400 clamp(28px, 3vw, 38px) / 1 var(--wp--preset--font-family--display) !important;
	color: var(--wp--preset--color--forest);
}
.kb-deal__product {
	margin-top: 8px !important;
	font-size: 17px;
	font-weight: 700;
}
.kb-deal__desc {
	margin: 0 !important;
	font-size: 14px;
	color: var(--wp--preset--color--muted);
}
.kb-deal__prices {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 10px !important;
}
.kb-deal__prices > * {
	margin: 0 !important;
}
.kb-deal__was {
	text-decoration: line-through;
	color: var(--wp--preset--color--muted);
	font-weight: 600;
}
.kb-deal__now {
	font-size: 26px;
	font-weight: 700;
	color: var(--wp--preset--color--amber);
	white-space: nowrap;
}
.kb-deal__badge {
	display: inline-block;
	padding: 5px 10px;
	border-radius: 12px;
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--paper);
	font-size: 13px;
	font-weight: 800;
	white-space: nowrap;
	animation: kbWiggle 3.5s ease-in-out infinite;
}
.kb-deal__badge:empty {
	display: none;
}
.kb-deal__art .wp-block-kefirbuy-art,
.kb-deal__art.wp-block-kefirbuy-art {
	aspect-ratio: 16 / 9;
	max-height: 170px;
	width: 100%;
	border-radius: 18px;
	background: var(--wp--preset--color--paper);
}
.kb-deal__timer {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}
.kb-deal__timer > * {
	margin: 0 !important;
}
.kb-deal__hurry {
	font-size: 14px;
	font-weight: 700;
	color: var(--wp--preset--color--forest);
}
.kb-deal .wp-block-button__link {
	height: 48px;
	padding: 0 28px;
	border-radius: 24px;
	font-size: 15px;
	font-weight: 700;
}

.kb-countdown {
	display: flex;
	gap: 10px;
}
.kb-countdown__box {
	width: 68px;
	padding: 8px 0;
	border-radius: 12px;
	background: var(--wp--preset--color--paper);
	text-align: center;
	box-shadow: 0 4px 10px rgba(30, 41, 59, .06);
}
.kb-countdown__num {
	display: block;
	font: 800 26px / 1 var(--wp--preset--font-family--body);
	font-variant-numeric: tabular-nums;
}
.kb-countdown__label {
	display: block;
	margin-top: 3px;
	font-size: 11px;
	color: var(--wp--preset--color--muted);
}

/* -------------------------------------------------- product cards (Woo) */

.kb-best .wc-block-product-template,
.kb-grid-products .wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr));
	gap: 16px;
	margin: 20px 0 0 !important;
	padding: 0;
	list-style: none;
}
.kb-best .wc-block-product,
.kb-grid-products .wc-block-product {
	display: flex;
	flex-direction: column;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 12px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 20px;
	background: var(--wp--preset--color--paper);
	transition: box-shadow .2s ease-out;
}
.kb-best .wc-block-product:hover,
.kb-grid-products .wc-block-product:hover {
	box-shadow: 0 14px 30px rgba(30, 41, 59, .1);
	transform: none;
}
.kb-best .wc-block-product > *,
.kb-grid-products .wc-block-product > * {
	margin-block: 0 !important;
}
.kb-best .wc-block-components-product-image,
.kb-grid-products .wc-block-components-product-image {
	position: relative;
	aspect-ratio: 1;
	margin: 0 !important;
	border-radius: 14px;
	overflow: hidden;
}
.kb-card-art {
	position: absolute;
	inset: 0;
	border-radius: 14px;
	overflow: hidden;
}
.kb-card-badge {
	position: absolute;
	left: 10px;
	top: 10px;
	z-index: 1;
	padding: 4px 9px;
	border-radius: 8px;
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--paper);
	font: 700 11.5px var(--wp--preset--font-family--body);
}
.kb-best .wp-block-post-title,
.kb-grid-products .wp-block-post-title {
	margin: 12px 4px 0 !important;
	font: 700 16.5px / 1.25 var(--wp--preset--font-family--body) !important;
}
.kb-best .wp-block-post-title a,
.kb-grid-products .wp-block-post-title a {
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}
.kb-best .wp-block-post-excerpt,
.kb-grid-products .wp-block-post-excerpt {
	margin: 2px 4px 0 !important;
	font-size: 13.5px;
	color: var(--wp--preset--color--muted);
}
.kb-best .wp-block-post-excerpt__excerpt,
.kb-grid-products .wp-block-post-excerpt__excerpt {
	margin: 0;
}
.kb-rating {
	margin: 6px 4px 0;
	font-size: 13px;
	color: var(--wp--preset--color--muted);
	white-space: nowrap;
}
.kb-rating__star {
	color: var(--wp--preset--color--amber);
}
.kb-best .wc-block-components-product-price,
.kb-grid-products .wc-block-components-product-price {
	margin: 6px 4px 0 !important;
	font-size: 20px !important;
	font-weight: 700;
	color: var(--wp--preset--color--amber) !important;
	text-align: left !important;
	white-space: nowrap;
}
.kb-best .wp-block-button.wc-block-components-product-button,
.kb-grid-products .wp-block-button.wc-block-components-product-button {
	margin-top: auto !important;
	padding-top: 12px;
}
.kb-best .wc-block-components-product-button__button,
.kb-grid-products .wc-block-components-product-button__button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	flex: 1 1 auto;
	width: 100% !important; /* WooCommerce sizes this button to its text */
	height: 46px;
	padding: 0 !important;
	border: none;
	border-radius: 23px !important;
	background: var(--wp--preset--color--amber) !important;
	color: var(--wp--preset--color--paper) !important;
	font: 700 14.5px var(--wp--preset--font-family--body) !important;
	white-space: nowrap;
}
.kb-best .wc-block-components-product-button__button::before,
.kb-grid-products .wc-block-components-product-button__button::before {
	content: "";
	width: 17px;
	height: 17px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 4h2l2.4 11h10.2L20 8H6.2'/%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='17' cy='20' r='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 4h2l2.4 11h10.2L20 8H6.2'/%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='17' cy='20' r='1.4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.kb-best .wc-block-components-product-button__button:hover,
.kb-grid-products .wc-block-components-product-button__button:hover {
	background: var(--wp--preset--color--amber-deep) !important;
}

/* ---------------------------------------------------------- gut health */

.kb-gut__card {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 400px), 1fr));
	align-items: stretch;
	border-radius: 26px;
	background: var(--wp--preset--color--sage);
	overflow: hidden;
}
.kb-gut__card > * {
	margin: 0 !important;
}
.kb-gut__text {
	padding: clamp(24px, 4vw, 44px);
}
.kb-gut__text > * {
	margin-block: 0;
}
.kb-gut h2 {
	margin: 0;
	font: 400 clamp(30px, 3.4vw, 44px) / 1.05 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
	text-wrap: balance;
}
.kb-gut__lede {
	margin: 10px 0 0 !important;
	font-size: 15.5px;
	color: var(--wp--preset--color--muted);
}
.kb-gut .kb-points {
	margin-top: 24px !important;
	max-width: 460px;
}
.kb-gut .kb-points li {
	gap: 8px;
	font-size: 13px;
}
.kb-gut .wp-block-buttons {
	margin-top: 26px !important;
}
.kb-gut .wp-block-button__link {
	height: 44px;
	padding: 0 22px;
	border: 1px solid var(--wp--preset--color--forest);
	border-radius: 22px;
	background: var(--wp--preset--color--paper) !important;
	color: var(--wp--preset--color--forest) !important;
	font-size: 14.5px;
	font-weight: 700;
}
.kb-gut__art {
	position: relative;
	min-height: 260px;
	background: var(--wp--preset--color--paper);
	overflow: hidden;
}
.kb-gut__art > .wp-block-kefirbuy-art {
	position: absolute;
	inset: 0;
	margin: 0 !important;
}
.kb-gut__note {
	position: absolute;
	left: 24px;
	top: 24px;
	margin: 0 !important;
	font: 600 clamp(26px, 2.6vw, 36px) / .95 var(--wp--preset--font-family--accent);
	color: var(--wp--preset--color--forest);
	--r: -6deg;
	transform: rotate(var(--r));
	animation: kbBob 5s ease-in-out infinite;
	z-index: 1;
}

/* --------------------------------------------------------- learn cards */

.kb-learn__grid,
.kb-reviews__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
	gap: 16px;
	margin-top: 20px !important;
}
.kb-learn__grid > *,
.kb-reviews__grid > * {
	margin: 0 !important;
}
.kb-learn__card {
	position: relative;
	display: flex;
	gap: 16px;
	padding: 12px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 18px;
	background: var(--wp--preset--color--paper);
	transition: box-shadow .2s ease-out;
}
.kb-learn__card:hover {
	box-shadow: 0 12px 26px rgba(30, 41, 59, .08);
}
.kb-learn__card > * {
	margin: 0 !important;
}
.kb-learn__card > .wp-block-kefirbuy-art {
	flex: none;
	width: 84px;
	aspect-ratio: 1;
	border-radius: 12px;
}
.kb-learn__body {
	padding: 6px 0;
}
.kb-learn__body > * {
	margin: 0;
}
.kb-learn__body h3 {
	font: 400 20px / 1.2 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
}
.kb-learn__body h3 a {
	color: inherit;
	text-decoration: none;
}
.kb-learn__body h3 a::after {
	content: "";
	position: absolute;
	inset: 0;
}
.kb-learn__body p {
	margin-top: 6px;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--wp--preset--color--muted);
}
.kb-learn__body .kb-learn__more {
	margin-top: 8px;
	font-weight: 700;
	color: var(--wp--preset--color--forest);
}

/* --------------------------------------------------- collection banners */

.kb-banners {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
	gap: 18px;
}
.kb-banners > * {
	margin: 0 !important;
}
.kb-banner {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	min-height: 220px;
	border-radius: 24px;
	overflow: hidden;
}
.kb-banner > * {
	margin: 0 !important;
}
.kb-banner__text {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 26px;
}
.kb-banner__text > * {
	margin: 0;
}
.kb-banner__eyebrow {
	font-size: 13.5px;
	font-weight: 600;
}
.kb-banner h2 {
	margin-top: 4px;
	font: 400 clamp(28px, 2.8vw, 36px) / 1.05 var(--wp--preset--font-family--display);
}
.kb-banner__text p:not(.kb-banner__eyebrow) {
	margin-top: 8px;
	font-size: 14px;
	line-height: 1.45;
}
.kb-banner .wp-block-buttons {
	margin-top: 16px;
}
.kb-banner .wp-block-button__link {
	height: 42px;
	padding: 0 20px;
	border-radius: 21px;
	font-size: 14px;
	font-weight: 700;
}
.kb-banner > .wp-block-kefirbuy-art:not(.kb-art--layer) {
	position: relative;
	min-height: 220px;
}

/* -------------------------------------------------------------- reviews */

.kb-review {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 22px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 18px;
	background: var(--wp--preset--color--paper);
}
.kb-review > * {
	margin: 0 !important;
}
.kb-review__stars {
	color: var(--wp--preset--color--amber);
	letter-spacing: 2px;
}
.kb-review .wp-block-quote {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 15.5px;
	line-height: 1.5;
	font-style: normal;
}
.kb-review .wp-block-quote p {
	margin: 0;
}
.kb-review .wp-block-quote cite {
	display: block;
	margin-top: 12px;
	font-size: 13.5px;
	font-style: normal;
	color: var(--wp--preset--color--muted);
}
.kb-review .wp-block-quote cite strong {
	color: var(--wp--preset--color--ink);
}

/* ------------------------------------------------------ newsletter card */

.kb-cta__card {
	position: relative;
	overflow: hidden;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	padding: clamp(26px, 4vw, 44px);
	border-radius: 26px;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
}
.kb-cta__card > * {
	position: relative;
	margin: 0 !important;
}
.kb-cta__text {
	max-width: 560px;
}
.kb-cta__text > * {
	margin: 0;
}
.kb-cta h2 {
	font: 400 clamp(28px, 3vw, 38px) / 1.05 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--paper);
}
.kb-cta__text p {
	margin-top: 8px;
	font-size: 15.5px;
	line-height: 1.5;
}
.kb-cta .wp-block-button__link {
	height: 52px;
	padding: 0 28px;
	border-radius: 26px;
	font-size: 15.5px;
	font-weight: 700;
}

/* --------------------------------------------------------------- header */

.kb-announce {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 20px;
	padding: 8px var(--wp--custom--container--gutter);
	background: var(--wp--preset--color--forest-deep);
	color: var(--wp--preset--color--paper);
	font-size: 13px;
	font-weight: 600;
	text-align: center;
}
.kb-announce > * {
	margin: 0 !important;
}
.kb-announce::before {
	content: "";
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--paper);
	animation: kbPulse 1.6s ease-in-out infinite;
}
.kb-tick {
	font-variant-numeric: tabular-nums;
}

/* Sticky has to be on the template part, not the masthead inside it: sticky
   only holds within its parent, and the part is the full-page child. The
   negative offset lets the announcement bar scroll away first. */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) - var(--kb-announce-h, 32px));
	z-index: 20;
}
.kb-masthead {
	position: relative;
	z-index: 10;
	background: var(--wp--preset--color--forest);
	box-shadow: 0 6px 18px rgba(30, 41, 59, .12);
}
/* A grid, so the header reflows on purpose instead of wrapping wherever
   flexbox runs out of room. The tools group is display:contents, so its
   search, account and cart are placed individually at each width:
     wide     logo · nav · search account cart
     medium   logo · search account cart / nav centred underneath
     phone    logo · account cart menu / search full width underneath */
.kb-masthead__row {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto auto auto;
	grid-template-areas: "logo nav search account cart";
	align-items: center;
	gap: 12px 10px;
	padding-block: 10px;
}
.kb-masthead__row > .kb-logo { grid-area: logo; justify-self: start; }
.kb-masthead__row > .wp-block-navigation { grid-area: nav; justify-content: center; padding-inline: 10px; }
.kb-masthead__row > .kb-tools { display: contents; }
.kb-tools > .wp-block-search { grid-area: search; }
.kb-tools > .wp-block-woocommerce-customer-account { grid-area: account; }
.kb-tools > .wp-block-woocommerce-mini-cart { grid-area: cart; }
@media (max-width: 1119px) {
	.kb-masthead__row {
		grid-template-areas:
			"logo . search account cart"
			"nav  nav nav  nav     nav";
		row-gap: 8px;
	}
	.kb-masthead__row > .wp-block-navigation { padding-inline: 0; }
}
/* Tighter nav spacing so all seven items stay on one line down to 600px
   (WordPress's layout rule sets the gap, hence !important). */
@media (max-width: 899px) {
	.kb-masthead .wp-block-navigation,
	.kb-masthead .wp-block-navigation__container { gap: 6px 16px !important; }
}
@media (max-width: 699px) {
	.kb-masthead .wp-block-navigation,
	.kb-masthead .wp-block-navigation__container { gap: 6px 13px !important; }
}
@media (max-width: 599px) {
	.kb-masthead__row {
		grid-template-columns: auto minmax(0, 1fr) auto auto auto;
		grid-template-areas:
			"logo   .      account cart   nav"
			"search search search  search search";
	}
	.kb-masthead__row > .wp-block-navigation { justify-self: end; margin-left: 4px !important; }
	.kb-masthead .kb-tools .wp-block-search__inside-wrapper { width: 100%; }
}
.kb-masthead__row > * {
	margin: 0 !important;
}
.kb-logo {
	display: block;
	padding: 4px 10px;
	border-radius: 14px;
	background: var(--wp--preset--color--paper);
}
.kb-logo .wp-block-site-logo img {
	height: 38px;
	width: auto;
}
.kb-logo .wp-block-site-title {
	margin: 0;
	font-size: 22px;
	line-height: 38px;
}
.kb-logo .wp-block-site-title a {
	color: var(--wp--preset--color--forest);
	text-decoration: none;
}
.kb-masthead .wp-block-navigation {
	font-size: 14.5px;
	font-weight: 600;
	gap: 6px 22px;
}
.kb-masthead .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--paper);
}
.kb-masthead .wp-block-navigation .wp-block-navigation-item__content:hover {
	color: var(--wp--preset--color--sage);
}
.kb-tools {
	display: flex;
	align-items: center;
	gap: 10px;
}
.kb-tools > * {
	margin: 0 !important;
}

/* Search pill */
.kb-tools .wp-block-search__inside-wrapper {
	box-sizing: border-box; /* 200px including the icon padding, as designed */
	width: 200px;
	height: 40px;
	padding: 0 14px 0 36px;
	border: 0;
	border-radius: 20px;
	background: var(--wp--preset--color--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E") 14px center / 16px no-repeat;
}
.kb-tools .wp-block-search__input {
	height: 100%;
	padding: 0;
	border: 0;
	background: transparent;
	font: 500 14px var(--wp--preset--font-family--body);
	color: var(--wp--preset--color--ink);
}
.kb-tools .wp-block-search__input:focus {
	outline: none;
}
.kb-tools .wp-block-search__inside-wrapper:focus-within {
	outline: 2px solid var(--wp--preset--color--sage);
	outline-offset: 2px;
}

/* Account: outlined circle */
.kb-tools .wp-block-woocommerce-customer-account a {
	width: 42px;
	height: 42px;
	padding: 0;
	border: 1.5px solid rgba(253, 251, 247, .7);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--paper);
}
.kb-tools .wp-block-woocommerce-customer-account a:hover,
.woocommerce-account .kb-tools .wp-block-woocommerce-customer-account a {
	background: var(--wp--preset--color--forest-deep); /* also marks "you are here" on account pages */
}
.kb-tools .wp-block-woocommerce-customer-account svg {
	width: 20px;
	height: 20px;
}

/* Cart: amber circle with a count badge */
.kb-tools .wc-block-mini-cart__button {
	position: relative;
	width: 42px;
	height: 42px;
	padding: 0;
	border-radius: 50%;
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--paper);
	display: flex;
	align-items: center;
	justify-content: center;
}
.kb-tools .wc-block-mini-cart__button:hover {
	background: var(--wp--preset--color--amber-deep);
}
.kb-tools .wc-block-mini-cart__icon {
	width: 21px;
	height: 21px;
	color: var(--wp--preset--color--paper);
}
.kb-tools .wc-block-mini-cart__badge {
	top: -5px;
	right: -6px;
	left: auto;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border: 2px solid var(--wp--preset--color--forest);
	border-radius: 10px;
	background: var(--wp--preset--color--paper) !important;
	color: var(--wp--preset--color--forest-deep) !important;
	font-size: 11.5px;
	font-weight: 700;
	line-height: 16px;
	transform: none;
}


/* --------------------------------------------------- icon point lists */

/* Icons are drawn by position so the list stays plain, editable text. */
.kb-points li::before {
	content: "";
	flex: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: var(--wp--preset--color--sage) center / 20px no-repeat;
}
.kb-gut .kb-points li::before {
	width: 52px;
	height: 52px;
	background-color: var(--wp--preset--color--paper);
	background-size: 22px;
}
.kb-hero .kb-points li:nth-child(1)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2338593B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19c0-8 6-14 14-14 0 8-6 14-14 14z'/%3E%3Cpath d='M5 19 13 11'/%3E%3C/svg%3E"); }
.kb-hero .kb-points li:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2338593B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='6' y='7' width='12' height='14' rx='3'/%3E%3Cpath d='M8 3h8v4H8z'/%3E%3C/svg%3E"); }
.kb-hero .kb-points li:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2338593B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 7h11v9H2zM13 10h4l3 3v3h-7'/%3E%3Ccircle cx='6' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E"); }
.kb-hero .kb-points li:nth-child(4)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2338593B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.5A4 4 0 0 1 19 10c0 5.5-7 10-7 10z'/%3E%3C/svg%3E"); }
.kb-gut .kb-points li:nth-child(1)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2338593B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 3v5a3 3 0 0 0 3 3h2a4 4 0 0 1 0 8H8'/%3E%3Cpath d='M6 19h2'/%3E%3C/svg%3E"); }
.kb-gut .kb-points li:nth-child(2)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2338593B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 6v6c0 5 3.5 8 8 9 4.5-1 8-4 8-9V6z'/%3E%3Cpath d='M12 9v6M9 12h6'/%3E%3C/svg%3E"); }
.kb-gut .kb-points li:nth-child(3)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2338593B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 5 14h6l-1 8 8-12h-6z'/%3E%3C/svg%3E"); }
.kb-gut .kb-points li:nth-child(4)::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%2338593B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21c-5-3-8-6-8-10a8 8 0 0 1 16 0c0 4-3 7-8 10z'/%3E%3Cpath d='M12 7v8M8.5 11 12 15l3.5-4'/%3E%3C/svg%3E"); }


/* ------------------------------------------------ fidelity corrections */

/* The hero's first child is the bubble layer, so core's flow rules would
   push the grid down by one block gap. */
.kb-hero > * {
	margin-block: 0;
}

/* Template parts sit flush, as in the design. WordPress would otherwise put
   its root block gap between the header and <main>. */
.wp-site-blocks > * {
	margin-block-start: 0;
}

/* Core pads any group that has a background colour (1.25em 2.375em). The
   design's banners and jars have their own geometry. */
.kb-banner.has-background,
.kb-cat__jar.has-background {
	padding: 0;
}

/* Where the design leaves line-height unset it is "normal", not the theme's
   body 1.6. These are the small labels that would otherwise grow. */
.kb-announce,
.kb-head p,
.kb-banner__eyebrow,
.kb-gut__lede,
.kb-deal__product,
.kb-deal__desc,
.kb-deal__prices,
.kb-deal__hurry,
.kb-countdown__label,
.kb-best .wp-block-post-title,
.kb-best .wp-block-post-excerpt,
.kb-rating,
.kb-best .wc-block-components-product-price,
.kb-hero__rating,
.kb-review .wp-block-quote cite,
.kb-review__stars,
.kb-learn__more {
	line-height: normal !important;
}


/* ------------------------------------------------ pointer and cart effects */

/* Bubble cursor. Follows the pointer alongside the native cursor, which is
   never hidden. Swells and turns amber over anything clickable. */
.kb-cursor-ring,
.kb-cursor-dot {
	position: fixed;
	left: 0;
	top: 0;
	border-radius: 50%;
	pointer-events: none;
	z-index: 2147482500;
	opacity: 0;
}
.kb-cursor-ring {
	width: 36px;
	height: 36px;
	margin: -18px 0 0 -18px;
	border: 1.5px solid rgba(56, 89, 59, .55);
	background: rgba(223, 232, 215, .25);
	transition: width .25s, height .25s, margin .25s, background .25s, border-color .25s, opacity .3s;
}
.kb-cursor-ring.is-hot {
	width: 58px;
	height: 58px;
	margin: -29px 0 0 -29px;
	background: rgba(217, 119, 6, .14);
	border-color: rgba(217, 119, 6, .7);
}
.kb-cursor-dot {
	width: 7px;
	height: 7px;
	margin: -3.5px 0 0 -3.5px;
	background: var(--wp--preset--color--amber);
	transition: opacity .3s;
}

/* Bubbles trailing the pointer across the hero. */
.kb-trail {
	position: absolute;
	inset: 0;
	pointer-events: none;
	z-index: 2;
}
.kb-trail__b {
	position: absolute;
	border-radius: 50%;
	border: 1.5px solid rgba(56, 89, 59, .55);
	background: rgba(223, 232, 215, .6);
	animation: kbTrail 1.1s ease-out forwards;
}

/* Fizz rising out of the category jars. */
.kb-fizz {
	position: absolute;
	left: 0;
	right: 0;
	top: 6px;
	height: 1px;
	pointer-events: none;
}
.kb-fizz__b {
	position: absolute;
	top: 0;
	display: none;
	border-radius: 50%;
	border: 1.5px solid rgba(56, 89, 59, .5);
	background: rgba(223, 232, 215, .7);
	animation: kbFizz var(--hot-dur) ease-out var(--hot-delay) infinite;
}
.kb-fizz__b.is-idle {
	display: block;
	animation-duration: var(--idle-dur);
	animation-delay: var(--idle-delay);
}
.kb-cat:hover .kb-fizz__b,
.kb-cat:focus-within .kb-fizz__b {
	display: block;
	animation-duration: var(--hot-dur);
	animation-delay: var(--hot-delay);
}

/* Add to cart: a burst where you clicked, and a dot that flies to the cart. */
.kb-fx-layer {
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 60;
}
.kb-burst {
	position: absolute;
	border-radius: 50%;
	border: 1.5px solid var(--wp--preset--color--amber);
	background: rgba(253, 251, 247, .9);
	animation: kbBurst .6s ease-out forwards;
}
.kb-burst.is-tint {
	background: rgba(217, 119, 6, .25);
}
.kb-fly {
	position: absolute;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--wp--preset--color--amber);
	box-shadow: 0 4px 10px rgba(217, 119, 6, .4);
	animation: kbFly .65s cubic-bezier(.5, -.3, .7, .6) forwards;
}
.kb-bump {
	animation: kbBump .35s ease-out;
}

/* "✓ Name added · Checkout" */
.kb-toast {
	position: fixed;
	left: 50%;
	bottom: 84px;
	z-index: 50;
	width: min(340px, calc(100vw - 32px));
	margin-left: calc(min(340px, 100vw - 32px) / -2);
	padding: 14px 18px;
	border-radius: 16px;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
	font-size: 14px;
	font-weight: 600;
	display: flex;
	justify-content: space-between;
	gap: 12px;
	box-shadow: 0 12px 30px rgba(56, 89, 59, .3);
	animation: kbToast 2.8s ease-out forwards;
}
.kb-toast a {
	color: var(--wp--preset--color--paper);
	white-space: nowrap;
}

/* --------------------------------------------------------- reduced motion */

/*
 * The design hides every illustration under reduced motion (opacity: 0),
 * which leaves those visitors looking at empty panels. Stop the movement
 * instead and keep the pictures; only the purely animated bubbles go.
 */
@media (prefers-reduced-motion: reduce) {
	.kb-anim,
	.kb-hero__note,
	.kb-gut__note,
	.kb-deal__badge,
	.kb-announce::before,
	[class*="kb-"] [style*="animation"] {
		animation: none !important;
	}
	.kb-bubble,
	.kb-fizz,
	.kb-trail,
	.kb-fx-layer {
		display: none;
	}
	.kb-bump,
	.kb-toast {
		animation: none;
	}
	.kb-cat__jar {
		transition: none;
	}
}

/* =====================================================================
   Inner pages
   Values from each page's template in the design project.
   ===================================================================== */

/* Widths: inner pages are 1240px boxes, so 1160px of content; the Learn
   page is 1040px and the sign-in screen 1100px. Text pages use the 800px
   content size set in theme.json (an 880px box). */
body.kb-inner { --wp--style--global--wide-size: 1160px; }
/* Main only: the header and footer keep the site width. */
body.kb-page-learn .kb-page-main { --wp--style--global--wide-size: 960px; }
body.kb-page-login .kb-page-main { --wp--style--global--wide-size: 1020px; }

.kb-page-main {
	padding-block: clamp(40px, 6vw, 72px) clamp(56px, 7vw, 96px);
}
.kb-page-learn .kb-page-main,
.kb-page-weekly-refill .kb-page-main,
.kb-page-cart .kb-page-main,
.kb-page-checkout .kb-page-main {
	padding-block: clamp(28px, 4vw, 48px) 80px;
}
.kb-page-login .kb-page-main {
	padding-block: clamp(40px, 6vw, 80px);
}
.kb-page-my-account:not(.kb-page-login) .kb-page-main {
	padding-top: clamp(36px, 5vw, 64px);
}
.kb-page-main > .wp-block-post-content > * {
	margin-block: 0;
}
.kb-page-main > .wp-block-post-content > * + * {
	margin-top: 0;
}

/* Shared intro: eyebrow, title, lede. */
.kb-eyebrow {
	margin: 0;
	font: 600 12px / normal var(--wp--preset--font-family--body);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--forest);
}
.kb-eyebrow--mono {
	font-family: var(--wp--preset--font-family--mono);
}
.kb-title {
	/* Top only: a margin shorthand would zero the auto side margins that
	   centre this in the content column. */
	margin-top: 10px !important;
	margin-bottom: 0 !important;
	font: 400 clamp(36px, 4.6vw, 56px) / 1.05 var(--wp--preset--font-family--display);
	letter-spacing: -.02em;
	text-wrap: balance;
	color: var(--wp--preset--color--forest);
}
.kb-lede {
	margin-top: 16px !important;
	margin-bottom: 0 !important;
	font-size: 17px;
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
	text-wrap: pretty;
}
.kb-cta-btn .wp-block-button__link {
	height: 48px;
	padding: 0 24px;
	border-radius: 24px;
	font-size: 15px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
}

/* Delivery, privacy and terms. */
.kb-doc-updated {
	margin-top: 14px !important;
	margin-bottom: 0 !important;
	font-size: 13.5px;
	color: var(--wp--preset--color--muted);
}
.kb-doc h2 {
	margin: 36px 0 0;
	font: 400 26px / 1.15 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
}
.kb-doc ul {
	margin: 12px 0 0;
	padding-left: 22px;
	font-size: 16px;
	line-height: 1.7;
}
.kb-doc > p:not([class]) {
	margin: 12px 0 0;
	font-size: 16px;
	line-height: 1.65;
}
.kb-notice {
	margin-top: 36px !important;
	padding: 16px 18px;
	border-radius: 14px;
	background: var(--wp--preset--color--sage);
	font-size: 14px;
	line-height: 1.55;
	color: var(--wp--preset--color--ink);
}

/* FAQ accordion. */
.kb-faq {
	margin-top: 28px !important;
	border-top: 1px solid var(--wp--preset--color--sand);
}
.kb-faq .wp-block-details {
	margin: 0 !important;
	padding: 0;
	border-bottom: 1px solid var(--wp--preset--color--sand);
}
.kb-faq summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 20px 4px;
	list-style: none;
	font: 600 17px / 1.35 var(--wp--preset--font-family--body);
	color: var(--wp--preset--color--forest);
	cursor: pointer;
}
.kb-faq summary::-webkit-details-marker { display: none; }
.kb-faq summary::after {
	content: "+";
	flex: none;
	width: 24px;
	font-size: 22px;
	text-align: center;
}
.kb-faq details[open] summary::after { content: "–"; }
.kb-faq details > p {
	margin: 0 !important;
	padding: 0 4px 22px;
	max-width: 720px;
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
}
.kb-faq + .wp-block-buttons { margin-top: 32px !important; }

/* Contact. */
.kb-contact-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 20px;
	margin-top: 36px !important;
}
.kb-contact-cards > *,
.kb-contact-card > * { margin: 0 !important; }
.kb-contact-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 26px;
	border-radius: 22px;
}
.kb-contact-card.is-sage { background: var(--wp--preset--color--sage); }
.kb-contact-card.is-line { border: 1px solid var(--wp--preset--color--sand); }
.kb-contact-card h2 {
	font: 400 24px / 1.15 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
}
.kb-contact-card p { font-size: 15px; line-height: 1.55; color: var(--wp--preset--color--muted); }
.kb-contact-card .kb-strong { font-size: 18px; font-weight: 700; color: var(--wp--preset--color--ink); }
.kb-contact-card .kb-strong.is-small { font-size: 16px; }
.kb-contact-card .kb-link { font-weight: 600; }
.kb-contact-card .kb-muted-sm { font-size: 14.5px; }
.kb-contact-card .wp-block-buttons { margin-top: 6px !important; }
.kb-contact-card p:empty { display: none; }
.kb-contact-form-title {
	margin-top: clamp(56px, 7vw, 96px) !important;
	font: 400 28px / 1.15 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
}
.kb-form { margin-top: 20px; gap: 14px; }
.kb-form input[type="text"],
.kb-form input[type="tel"],
.kb-form input[type="email"] { border-radius: 12px; }
.kb-form textarea { border-radius: 12px; }
.kb-form .wp-element-button {
	height: 48px;
	padding: 0 26px;
	border-radius: 24px;
	font-size: 15px;
	font-weight: 700;
}

/* Track order: WooCommerce's form in the design's single-row pill style. */
.kb-track .woocommerce-form-track-order {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 28px;
}
.kb-track .woocommerce-form-track-order > p:first-child,
.kb-track .woocommerce-form-track-order .clear { display: none; }
.kb-track .woocommerce-form-track-order .form-row {
	flex: 1 1 200px;
	margin: 0;
	padding: 0;
	width: auto;
	float: none;
}
.kb-track .woocommerce-form-track-order .form-row:last-of-type { flex: 0 0 auto; }
.kb-track .woocommerce-form-track-order label {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
}
.kb-track .woocommerce-form-track-order input {
	width: 100%;
	height: 50px;
	padding: 0 16px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 25px;
	background: var(--wp--preset--color--paper);
	font: 15px var(--wp--preset--font-family--body);
	color: var(--wp--preset--color--ink);
}
.kb-track .woocommerce-form-track-order button {
	height: 50px;
	padding: 0 26px;
	border: 0;
	border-radius: 25px;
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--paper);
	font: 700 15px var(--wp--preset--font-family--body);
	white-space: nowrap;
	cursor: pointer;
}
.kb-track .woocommerce-form-track-order button:hover { background: var(--wp--preset--color--amber-deep); }
.kb-track-help {
	margin-top: 28px !important;
	font-size: 15px;
	color: var(--wp--preset--color--muted);
}

/* 404. */
.kb-404 {
	padding-block: clamp(64px, 10vw, 140px);
	text-align: center;
}
.kb-404 .kb-title {
	margin-top: 12px !important;
	font-size: clamp(36px, 5vw, 64px);
}
.kb-404 .kb-lede { max-width: 460px; margin-inline: auto !important; }
.kb-404 .wp-block-buttons { gap: 12px; margin-top: 28px !important; }
.kb-404 .wp-block-button__link { height: 48px; padding: 0 24px; border-radius: 24px; font-size: 15px; font-weight: 700; display: inline-flex; align-items: center; }
.kb-404 .is-style-outline .wp-block-button__link {
	border: 1px solid var(--wp--preset--color--forest);
	background: transparent;
	color: var(--wp--preset--color--forest);
	font-weight: 600;
}

/* Photo slots: striped panel until a photo is chosen. */
.kb-photo {
	position: relative;
	margin: 0;
	overflow: hidden;
}
.kb-photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.kb-photo--empty {
	display: flex;
	align-items: flex-end;
	padding: 16px;
	background: repeating-linear-gradient(135deg, #E7E0D3 0 12px, #FDFBF7 12px 24px);
}
.kb-photo__label {
	padding: 5px 10px;
	border-radius: 6px;
	background: var(--wp--preset--color--paper);
	font: 12px var(--wp--preset--font-family--mono);
}

/* About. */
.kb-about-hero {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: clamp(24px, 4vw, 56px);
	align-items: center;
}
.kb-about-hero > *,
.kb-about-hero__text > * { margin: 0 !important; }
.kb-about-hero h1 {
	margin-top: 10px !important;
	font: 400 clamp(40px, 5.4vw, 70px) / 1 var(--wp--preset--font-family--display);
	letter-spacing: -.02em;
	text-wrap: balance;
	color: var(--wp--preset--color--forest);
}
.kb-about-hero__text p:not(.kb-eyebrow) {
	margin-top: 18px !important;
	font-size: 17px;
	line-height: 1.65;
	text-wrap: pretty;
}
.kb-about-hero .kb-photo { aspect-ratio: 4 / 5; border-radius: 28px; }
.kb-brew { padding-top: clamp(56px, 7vw, 96px); }
.kb-brew > h2,
.kb-brew__title {
	margin: 0;
	font: 400 clamp(32px, 4vw, 48px) / 1.05 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
}
.kb-brew__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
	gap: 16px;
	margin-top: 24px !important;
}
.kb-brew__grid > * { margin: 0 !important; }
.kb-brew__card {
	padding: 24px;
	border-radius: 22px;
	background: var(--wp--preset--color--sage);
}
.kb-brew__card > * { margin: 0; }
.kb-brew__card h3 {
	font: 400 22px / 1.2 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--ink);
}
.kb-brew__card p {
	margin-top: 8px;
	font-size: 15px;
	line-height: 1.55;
	color: var(--wp--preset--color--muted);
}
.kb-areas { padding-block: clamp(56px, 7vw, 96px) 0; }
.kb-areas__card {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
	gap: 32px;
	padding: clamp(24px, 4vw, 48px);
	border-radius: 30px;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
}
.kb-areas__card > *,
.kb-areas__text > * { margin: 0 !important; }
.kb-areas .kb-eyebrow { color: var(--wp--preset--color--paper); }
.kb-areas h2 {
	margin-top: 10px !important;
	font: 400 clamp(30px, 3.6vw, 44px) / 1.05 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--paper);
}
.kb-areas__text p:not(.kb-eyebrow) {
	margin-top: 12px !important;
	font-size: 16px;
	line-height: 1.55;
}
.kb-areas .wp-block-buttons { margin-top: 20px !important; }
.kb-areas .wp-block-button__link {
	height: 52px;
	padding: 0 24px;
	border-radius: 26px;
	background: var(--wp--preset--color--sage);
	color: var(--wp--preset--color--forest);
	font-weight: 700;
	display: inline-flex;
	align-items: center;
}
.kb-areas__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
	align-content: start;
	font-size: 15px;
}
.kb-areas__list li {
	margin: 0;
	padding: 12px 14px;
	border-radius: 12px;
	background: rgba(253, 251, 247, .1);
}

/* Learn: tabbed guides. */
.kb-learn-page .kb-learn-head .kb-title {
	font-size: clamp(40px, 5vw, 64px);
	line-height: 1;
}
.kb-learn-page .kb-learn-head .kb-lede {
	margin-top: 14px !important;
	max-width: 640px;
	line-height: 1.55;
}
.kb-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin-top: 26px !important;
	border-bottom: 1px solid var(--wp--preset--color--sand);
}
.kb-tabs .wp-block-button { margin: 0; }
.kb-tabs .wp-block-button__link {
	padding: 12px 18px;
	border: 0;
	border-bottom: 3px solid transparent;
	border-radius: 0;
	background: none;
	color: var(--wp--preset--color--muted);
	font: 600 15px / normal var(--wp--preset--font-family--body);
}
.kb-tabs .wp-block-button__link:hover { background: none; color: var(--wp--preset--color--forest); }
.kb-tabs .wp-block-button__link[aria-selected="true"] {
	border-bottom-color: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--forest);
}
/* Until the tab script runs (or without JavaScript) every guide shows. */
.kb-tabbed .kb-panel[hidden] { display: none !important; }
.kb-learn-media {
	position: relative;
	margin-top: 24px !important;
}
.kb-learn-media .kb-photo {
	aspect-ratio: 16 / 8;
	border-radius: 24px;
}
.kb-learn-time {
	position: absolute;
	right: 16px;
	bottom: 16px;
	margin: 0 !important;
	padding: 6px 12px;
	border-radius: 14px;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
	font-size: 13px;
	font-weight: 700;
}
.kb-steps {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-top: 28px !important;
	counter-reset: kb-step;
}
.kb-steps > * { margin: 0 !important; }
.kb-step {
	position: relative;
	padding-left: 58px;
	counter-increment: kb-step;
}
.kb-step::before {
	content: counter(kb-step);
	position: absolute;
	left: 0;
	top: 0;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--wp--preset--color--sage);
	color: var(--wp--preset--color--forest);
	font: 600 15px / 40px var(--wp--preset--font-family--mono);
	text-align: center;
}
.kb-step > * { margin: 0; }
.kb-step h3 { font: 700 19px / 1.3 var(--wp--preset--font-family--body); color: var(--wp--preset--color--ink); }
.kb-step p { margin-top: 4px; max-width: 680px; font-size: 16px; line-height: 1.6; color: var(--wp--preset--color--muted); }
.kb-learn-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 20px;
	margin-top: 40px !important;
}
.kb-learn-cards > * { margin: 0 !important; }
.kb-need {
	padding: 24px;
	border-radius: 22px;
	background: var(--wp--preset--color--sage);
}
.kb-need > * { margin: 0; }
.kb-need h2 { font: 400 24px / 1.15 var(--wp--preset--font-family--display); color: var(--wp--preset--color--forest); }
.kb-need ul { margin-top: 12px; padding-left: 18px; font-size: 15px; line-height: 1.75; }
.kb-kit {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 16px;
	padding: 24px;
	border-radius: 22px;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
}
.kb-kit > *,
.kb-kit__text > * { margin: 0; }
.kb-kit .kb-eyebrow { font-size: 11px; color: var(--wp--preset--color--paper); }
.kb-kit__name { margin-top: 6px !important; font: 400 26px / 1.1 var(--wp--preset--font-family--display); }
.kb-kit__note { margin-top: 6px !important; font-size: 14.5px; }
.kb-kit__note p { display: inline; margin: 0; }
.kb-kit .wp-block-button { width: 100%; }
.kb-kit .wp-block-button__link {
	width: 100%;
	height: 50px;
	border-radius: 25px;
	background: var(--wp--preset--color--sage);
	color: var(--wp--preset--color--forest);
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}
.kb-fix-title {
	margin-top: 48px !important;
	font: 400 clamp(28px, 3.2vw, 38px) / 1.1 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
}
.kb-fix {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 14px;
	margin-top: 16px !important;
}
.kb-fix > * { margin: 0 !important; }
.kb-fix__card {
	padding: 18px;
	border: 1.5px solid var(--wp--preset--color--sand);
	border-radius: 18px;
}
.kb-fix__card > * { margin: 0; }
.kb-fix__card p:first-child { font-size: 15.5px; font-weight: 700; }
.kb-fix__card p + p { margin-top: 4px; font-size: 14.5px; line-height: 1.55; color: var(--wp--preset--color--muted); }
.kb-still { margin-top: 20px !important; font-size: 15px; }

/* Current page in the header nav: the inner pages' amber underline. */
.kb-masthead .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--amber);
}
.kb-kit__note p + p::before { content: " "; }

/* Shop (Kefir Buy Shop.dc.html). */
.kb-shop-main { padding-block: clamp(32px, 5vw, 56px) 80px; }
.kb-shop > * { margin-block: 0 !important; }
.kb-crumbs,
.kb-crumbs .woocommerce-breadcrumb {
	margin: 0;
	font-size: 13px;
	color: var(--wp--preset--color--muted);
}
.kb-crumbs a { color: var(--wp--preset--color--muted); }
.kb-shop__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 20px;
	flex-wrap: wrap;
	margin-top: 10px !important;
}
.kb-shop__head > *,
.kb-shop__titles > * { margin: 0 !important; }
.kb-shop__title {
	font: 400 clamp(40px, 5vw, 64px) / 1 var(--wp--preset--font-family--display);
	letter-spacing: -.02em;
	color: var(--wp--preset--color--forest);
}
.kb-shop__sub {
	margin-top: 10px !important;
	font-size: 16px;
	color: var(--wp--preset--color--muted);
}
.kb-sort form,
.kb-sort .woocommerce-ordering {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	font-size: 14px;
	font-weight: 600;
}
.kb-sort .woocommerce-ordering::before { content: "Sort"; }
.kb-sort select {
	height: 42px;
	padding: 0 12px;
	border: 1.5px solid var(--wp--preset--color--sand);
	border-radius: 12px;
	background: var(--wp--preset--color--paper);
	font: 500 14px var(--wp--preset--font-family--body);
	color: var(--wp--preset--color--forest);
}
.kb-pills {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 24px !important;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--wp--preset--color--sand);
}
.kb-pill {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	height: 42px;
	padding: 0 18px;
	border: 1.5px solid var(--wp--preset--color--forest);
	border-radius: 21px;
	color: var(--wp--preset--color--forest);
	font: 600 14px var(--wp--preset--font-family--body);
	text-decoration: none;
}
.kb-pill.is-active {
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
}
.kb-pill__n { opacity: .6; font-weight: 500; }

.kb-shop-grid .wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr));
	gap: 32px 20px;
	margin: 28px 0 0 !important;
	padding: 0;
	list-style: none;
}
.kb-shop-grid .wc-block-product {
	display: flex;
	flex-direction: column;
	gap: 4px;
	width: auto !important;
	max-width: none !important;
	margin: 0 !important;
}
.kb-shop-grid .wc-block-product > * { margin-block: 0 !important; }
.kb-shop-grid .wc-block-components-product-image {
	position: relative;
	aspect-ratio: 1;
	margin: 0 !important;
	border-radius: 22px;
	overflow: hidden;
	transition: transform .25s cubic-bezier(.2, .8, .2, 1);
}
.kb-shop-grid .wc-block-components-product-image:hover { transform: translateY(-4px); }
.kb-shop-grid .kb-card-art { border-radius: 22px; }
.kb-shop-grid .kb-card-badge {
	left: 12px;
	top: 12px;
	padding: 4px 8px;
	border-radius: 6px;
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
	font: 600 10.5px var(--wp--preset--font-family--mono);
}
.kb-shop-grid .wp-block-post-title {
	margin-top: 10px !important;
	font: 600 17px / 1.3 var(--wp--preset--font-family--body) !important;
}
.kb-shop-grid .wp-block-post-title a { color: var(--wp--preset--color--forest); text-decoration: none; }
.kb-shop-grid .wp-block-post-excerpt { font-size: 14px; color: var(--wp--preset--color--muted); line-height: normal; }
.kb-shop-grid .wp-block-post-excerpt__excerpt { margin: 0; }
.kb-price-line {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	margin-top: 6px !important;
	font-size: 15px;
	line-height: normal;
	color: var(--wp--preset--color--muted);
}
.kb-price-line > * { margin: 0 !important; }
.kb-price-line > * + *::before { content: "·"; margin: 0 .35em; }
.kb-price-line > p:empty { display: none; }
.kb-price-line .wc-block-components-product-price {
	font-size: 15px !important;
	font-weight: 700;
	color: var(--wp--preset--color--amber) !important;
}
.kb-price-line .kb-rating { margin: 0; font-size: 15px; }
.kb-price-line .kb-rating__star { color: inherit; }
.kb-shop-grid .wp-block-button.wc-block-components-product-button { margin-top: 10px !important; }
.kb-shop-grid .wc-block-components-product-button__button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100% !important;
	height: 46px;
	padding: 0 !important;
	border: 0;
	border-radius: 23px !important;
	background: var(--wp--preset--color--amber) !important;
	color: var(--wp--preset--color--paper) !important;
	font: 700 14.5px var(--wp--preset--font-family--body) !important;
}
.kb-shop-grid .wc-block-components-product-button__button:hover { background: var(--wp--preset--color--amber-deep) !important; }

/* "Drink it every week?" banner. */
.kb-refill-cta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	flex-wrap: wrap;
	margin-top: 56px !important;
	padding: 28px;
	border-radius: 24px;
	background: var(--wp--preset--color--sage);
}
.kb-refill-cta > *,
.kb-refill-cta__text > * { margin: 0 !important; }
.kb-refill-cta__title { font: 400 26px / 1.2 var(--wp--preset--font-family--display); }
.kb-refill-cta__text p + p { margin-top: 4px !important; font-size: 15px; color: var(--wp--preset--color--muted); }
.kb-refill-cta .wp-block-button__link {
	height: 50px;
	padding: 0 24px;
	border-radius: 25px;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	white-space: nowrap;
}

/* Product (Kefir Buy Product.dc.html). */
.kb-product-main { padding-block: clamp(24px, 4vw, 40px) 80px; }
.kb-product > * { margin-block: 0 !important; }
.kb-product__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr));
	gap: clamp(24px, 4vw, 56px);
	align-items: start;
	margin-top: 18px !important;
}
.kb-product__grid > * { margin: 0 !important; }
.kb-product__media .woocommerce-product-gallery { margin: 0; width: 100% !important; float: none; }
.kb-product__media .woocommerce-product-gallery__image,
.kb-product__media .woocommerce-product-gallery__image--placeholder,
.kb-product__media .flex-viewport { border-radius: 26px; overflow: hidden; }
.kb-product__media .woocommerce-product-gallery__image--placeholder { position: relative; aspect-ratio: 1; }
.kb-gallery-art { position: absolute; inset: 0; }
.kb-product__media .flex-control-thumbs { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 12px !important; }
.kb-product__media .flex-control-thumbs li { width: auto !important; }
.kb-product__media .flex-control-thumbs img { border-radius: 14px; }
.kb-product__buy {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + 90px);
}
.kb-product__buy > * { margin-block: 0 !important; }
.kb-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.kb-badges > * { margin: 0 !important; }
.kb-badge {
	padding: 4px 8px;
	border-radius: 6px;
	background: var(--wp--preset--color--sage);
	font-size: 12.5px;
	font-weight: 600;
	white-space: nowrap;
}
.kb-badge.is-tag {
	font: 600 11px / normal var(--wp--preset--font-family--mono);
	letter-spacing: .08em;
	color: var(--wp--preset--color--forest);
}
.kb-badge:empty { display: none; }
.kb-product__title {
	margin-top: 12px !important;
	font: 400 clamp(36px, 4.4vw, 56px) / 1 var(--wp--preset--font-family--display) !important;
	letter-spacing: -.02em;
	color: var(--wp--preset--color--forest);
}
.kb-rating-line {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin-top: 10px !important;
	font-size: 14.5px;
}
.kb-rating-line > * { margin: 0 !important; }
.kb-rating-line p:empty { display: none; }
.kb-rl-rating { font-weight: 700; }
.kb-rl-reviews a,
.kb-rl-size { color: var(--wp--preset--color--muted); }
.kb-rl-size::before { content: "· "; }
.kb-product__desc { margin-top: 16px !important; }
.kb-product__desc p {
	margin: 0;
	font-size: 16.5px;
	line-height: 1.6;
	color: var(--wp--preset--color--muted);
	text-wrap: pretty;
}

/* One-time / weekly refill choice. */
.kb-atc { margin-top: 22px !important; }
.kb-atc form.cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 0; }
.kb-purchase {
	flex: 1 1 100%;
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 0 8px;
	padding: 0;
	border: 0;
}
.kb-opt {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px;
	border: 1.5px solid var(--wp--preset--color--sand);
	border-radius: 16px;
	color: var(--wp--preset--color--forest);
	cursor: pointer;
}
.kb-opt:has(input:checked) {
	border-color: var(--wp--preset--color--forest);
	background: var(--wp--preset--color--sage);
}
.kb-opt input { position: absolute; opacity: 0; pointer-events: none; }
.kb-opt__dot {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	border: 2px solid var(--wp--preset--color--forest);
	border-radius: 50%;
}
.kb-opt__dot::after { content: ""; width: 9px; height: 9px; border-radius: 50%; }
.kb-opt:has(input:checked) .kb-opt__dot::after { background: var(--wp--preset--color--forest); }
.kb-opt:has(input:focus-visible) { outline: 2px solid var(--wp--preset--color--forest); outline-offset: 2px; }
.kb-opt__label { flex: 1; font-size: 15px; font-weight: 600; }
.kb-opt__save {
	margin-left: 4px;
	padding: 2px 7px;
	border-radius: 6px;
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--paper);
	font-size: 11px;
	font-weight: 700;
}
.kb-opt__note { display: block; margin-top: 2px; font-size: 13px; font-weight: 400; color: var(--wp--preset--color--muted); }
.kb-opt__price { font-size: 16px; color: var(--wp--preset--color--amber); }

/* Quantity stepper and full-width button. */
.kb-atc .quantity {
	display: flex;
	align-items: center;
	height: 56px;
	margin: 0 !important;
	border: 1.5px solid var(--wp--preset--color--sand);
	border-radius: 28px;
}
.kb-atc .quantity input.qty {
	width: 32px;
	height: 100%;
	padding: 0;
	border: 0;
	background: none;
	font-weight: 700;
	text-align: center;
	-moz-appearance: textfield;
}
.kb-atc .quantity input.qty::-webkit-inner-spin-button,
.kb-atc .quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.kb-step-btn {
	width: 46px;
	height: 100%;
	border: 0;
	background: none;
	color: var(--wp--preset--color--amber);
	font-size: 22px;
	cursor: pointer;
}
.kb-atc .single_add_to_cart_button {
	flex: 1;
	height: 56px;
	border: 0;
	border-radius: 28px !important;
	background: var(--wp--preset--color--amber) !important;
	color: var(--wp--preset--color--paper) !important;
	font: 700 16px var(--wp--preset--font-family--body) !important;
}
.kb-atc .single_add_to_cart_button:hover { background: var(--wp--preset--color--amber-deep) !important; }
.kb-product__tiles {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	margin-top: 18px !important;
	font-size: 13.5px;
}
.kb-product__tiles > * { margin: 0 !important; }
.kb-tile { padding: 12px; border-radius: 12px; background: var(--wp--preset--color--sage); }
.kb-tile > * { margin: 0; }
.kb-tile__title { font-weight: 700; }
.kb-tile p + p { color: var(--wp--preset--color--muted); }
.kb-acc { margin-top: 22px !important; border-top: 1px solid var(--wp--preset--color--sand); }
.kb-acc .wp-block-details { margin: 0 !important; border-bottom: 1px solid var(--wp--preset--color--sand); }
.kb-acc summary {
	display: flex;
	justify-content: space-between;
	padding: 16px 2px;
	list-style: none;
	font: 600 15.5px var(--wp--preset--font-family--body);
	color: var(--wp--preset--color--forest);
	cursor: pointer;
}
.kb-acc summary::-webkit-details-marker { display: none; }
.kb-acc summary::after { content: "+"; }
.kb-acc details[open] summary::after { content: "–"; }
.kb-acc details > p { margin: 0 !important; padding: 0 2px 16px; font-size: 14.5px; line-height: 1.6; color: var(--wp--preset--color--muted); }

/* Reviews and "You might also like". */
.kb-product__reviews,
.kb-product__related { margin-top: clamp(56px, 7vw, 88px) !important; }
.kb-reviews-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 12px 16px; }
.kb-reviews-head > * { margin: 0 !important; }
.kb-reviews-head h2,
.kb-product__related > h2 {
	font: 400 clamp(30px, 3.6vw, 44px) / 1.05 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
}
.kb-product__related > h2 { font-size: clamp(28px, 3.2vw, 40px); }
.kb-reviews-summary { flex: 1; font-size: 26px; color: var(--wp--preset--color--muted); white-space: nowrap; }
.kb-reviews-summary:empty { display: none; }
.kb-reviews-write { font-weight: 600; }
.kb-product-reviews { margin-top: 22px !important; }
.kb-product-reviews .wc-tabs { display: none; }
.kb-product-reviews .woocommerce-Tabs-panel { margin: 0; padding: 0; border: 0; }
.kb-product-reviews .woocommerce-Reviews-title { display: none; }
.kb-product-reviews .commentlist {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.kb-product-reviews .commentlist li { margin: 0; }
.kb-product-reviews .comment_container { padding: 22px; border-radius: 20px; background: var(--wp--preset--color--sage); }
.kb-product-reviews .comment_container img.avatar { display: none; }
.kb-product-reviews .comment-text { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.kb-product-reviews .star-rating { color: var(--wp--preset--color--amber); }
.kb-product-reviews .woocommerce-noreviews { color: var(--wp--preset--color--muted); }
.kb-product-reviews #review_form_wrapper { margin-top: 24px; }
.kb-product-reviews #review_form .comment-reply-title { font: 400 22px var(--wp--preset--font-family--display); color: var(--wp--preset--color--forest); }
.kb-product-reviews #review_form input:not([type="submit"]):not([type="checkbox"]),
.kb-product-reviews #review_form textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
	background: var(--wp--preset--color--paper);
	font: 15px var(--wp--preset--font-family--body);
}
.kb-product-reviews #review_form .submit {
	height: 48px;
	padding: 0 24px;
	border: 0;
	border-radius: 24px;
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--paper);
	font-weight: 700;
}
.kb-related .wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr));
	gap: 20px;
	margin: 22px 0 0 !important;
	padding: 0;
	list-style: none;
}
.kb-related .wc-block-product { width: auto !important; max-width: none !important; margin: 0 !important; }
.kb-related .wc-block-product > * { margin-block: 0 !important; }
.kb-related .wc-block-components-product-image {
	position: relative;
	aspect-ratio: 1;
	margin: 0 !important;
	border-radius: 20px;
	overflow: hidden;
	transition: transform .25s cubic-bezier(.2, .8, .2, 1);
}
.kb-related .wc-block-components-product-image:hover { transform: translateY(-4px); }
.kb-related .kb-card-art { border-radius: 20px; }
.kb-related .kb-card-badge { display: none; }
.kb-related .wp-block-post-title { margin-top: 10px !important; font: 600 16px / 1.3 var(--wp--preset--font-family--body) !important; }
.kb-related .wp-block-post-title a { color: var(--wp--preset--color--ink); text-decoration: none; }
.kb-related .kb-price-line { font-size: 14px; }
.kb-related .kb-price-line .wc-block-components-product-price { font-size: 14px !important; font-weight: 400; color: var(--wp--preset--color--muted) !important; }
.kb-related .kb-price-line .kb-rating { font-size: 14px; }
.kb-related .kb-rating span:last-child { display: none; }

/* Weekly refill: the box builder. */
.kb-refill-head { max-width: 720px; }
.kb-refill-head > * { margin-block: 0 !important; }
.kb-refill-head .kb-title {
	margin-top: 10px !important;
	font-size: clamp(40px, 5vw, 64px);
	line-height: 1;
}
.kb-refill-head .kb-lede { margin-top: 14px !important; line-height: 1.55; }
.kb-refill {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 460px), 1fr));
	gap: clamp(24px, 4vw, 48px);
	align-items: start;
	margin-top: 32px !important;
}
.kb-refill__drinks {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.kb-refill__drink {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 12px;
	border: 1.5px solid var(--wp--preset--color--sand);
	border-radius: 20px;
	background: var(--wp--preset--color--paper);
	transition: border-color .2s;
}
.kb-refill__drink.is-picked { border-color: var(--wp--preset--color--forest); }
.kb-refill__art {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 14px;
	overflow: hidden;
	background: var(--wp--preset--color--sand-light);
}
.kb-refill__art > svg,
.kb-refill__art > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.kb-refill__meta { padding: 0 4px; }
.kb-refill__name { margin: 0; font: 600 16px / 1.35 var(--wp--preset--font-family--body); color: var(--wp--preset--color--ink); }
.kb-refill__price { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--wp--preset--color--muted); }
.kb-refill__price b { color: var(--wp--preset--color--forest); }
.kb-refill__qty {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 44px;
	margin: 0 4px 4px;
	border: 1.5px solid var(--wp--preset--color--sand);
	border-radius: 22px;
}
.kb-refill__qty button {
	width: 44px;
	height: 100%;
	padding: 0;
	border: 0;
	background: none;
	color: var(--wp--preset--color--amber);
	font-size: 20px;
	cursor: pointer;
}
.kb-refill__qty button:disabled { opacity: .35; cursor: default; }
.kb-refill__qty output { font-weight: 700; }
.kb-refill__sum {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + 100px);
	padding: 24px;
	border-radius: 22px;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
}
.kb-refill__title { margin: 0; font: 400 26px / 1.2 var(--wp--preset--font-family--display); color: var(--wp--preset--color--paper); }
.kb-refill__progress { display: flex; flex-direction: column; gap: 8px; margin-top: 14px; }
.kb-refill__msg { margin: 0; font-size: 14px; font-weight: 600; }
.kb-refill__bar { height: 8px; border-radius: 4px; background: rgba(253, 251, 247, .25); overflow: hidden; }
.kb-refill__bar span {
	display: block;
	height: 100%;
	background: var(--wp--preset--color--paper);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .45s cubic-bezier(.2, .8, .2, 1), background-color .2s;
}
.kb-refill.is-ready .kb-refill__bar span { background: var(--wp--preset--color--sage); }
.kb-refill__lines {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-height: 24px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
	font-size: 14.5px;
}
.kb-refill__lines li { display: flex; justify-content: space-between; gap: 12px; }
.kb-refill__rows {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 6px;
	margin: 14px 0 0;
	padding-top: 14px;
	border-top: 1px solid rgba(253, 251, 247, .25);
	font-size: 14.5px;
}
.kb-refill__rows dd { margin: 0; text-align: right; }
.kb-refill__total { display: flex; justify-content: space-between; align-items: baseline; margin-top: 12px; }
.kb-refill__total span { font-size: 15px; }
.kb-refill__total strong { font: 400 36px / 1.1 var(--wp--preset--font-family--display); }
.kb-refill__pay { margin: 0; padding: 0; border: 0; min-width: 0; }
.kb-refill__pay legend { margin: 16px 0 8px; padding: 0; font-size: 13px; font-weight: 600; }
.kb-refill__pay-opts { display: flex; gap: 8px; }
.kb-refill__pay label { position: relative; flex: 1; }
.kb-refill__pay input { position: absolute; opacity: 0; pointer-events: none; }
.kb-refill__pay span {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 42px;
	padding: 0 10px;
	border: 1.5px solid var(--wp--preset--color--sage);
	border-radius: 21px;
	font: 600 13.5px / 1.2 var(--wp--preset--font-family--body);
	text-align: center;
	cursor: pointer;
	transition: background-color .15s, color .15s;
}
.kb-refill__pay input:checked + span { background: var(--wp--preset--color--sage); color: var(--wp--preset--color--forest); }
.kb-refill__pay input:focus-visible + span { outline: 2px solid var(--wp--preset--color--amber); outline-offset: 2px; }
.kb-refill__cta {
	width: 100%;
	height: 56px;
	margin-top: 18px;
	border: 0;
	border-radius: 28px;
	background: rgba(253, 251, 247, .3);
	color: var(--wp--preset--color--paper);
	font: 700 16px var(--wp--preset--font-family--body);
	cursor: pointer;
	transition: background-color .2s;
}
.kb-refill.is-ready .kb-refill__cta { background: var(--wp--preset--color--amber); }
.kb-refill.is-ready .kb-refill__cta:hover { background: var(--wp--preset--color--amber-deep); }
.kb-refill__cta:disabled { cursor: default; }
.kb-refill.is-busy .kb-refill__cta { opacity: .8; }
.kb-refill__status { margin: 14px 0 0; font-size: 14px; }
.kb-refill__status:empty { display: none; }
.kb-refill__note { margin: 12px 0 0; font-size: 12.5px; line-height: 1.5; }
@media (prefers-reduced-motion: reduce) {
	.kb-refill__bar span, .kb-refill__drink { transition: none; }
}

/* Cart and checkout: the design's checkout page, spread over WooCommerce's
   two blocks. */
.kb-cart-main > *,
.kb-checkout-main > * { margin-block: 0 !important; }
.kb-cart-title,
.kb-checkout-title {
	margin-top: 0 !important;
	font-size: clamp(36px, 4.4vw, 56px);
	line-height: 1;
}
.kb-cart-main > .wp-block-post-content,
.kb-checkout-main > .wp-block-post-content { margin-top: 24px !important; }
.kb-cart-main .wp-block-woocommerce-cart,
.kb-checkout-main .wp-block-woocommerce-checkout { margin-top: 0 !important; }

/* Free-delivery progress. */
.kb-free {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 24px !important;
	padding: 16px;
	border-radius: 16px;
	background: var(--wp--preset--color--sage);
	color: var(--wp--preset--color--ink);
}
.kb-free[hidden] { display: none; }
.kb-free__msg { margin: 0; font-size: 14.5px; font-weight: 600; }
.kb-free__bar { height: 8px; border-radius: 4px; background: var(--wp--preset--color--sand); overflow: hidden; }
.kb-free__bar span {
	display: block;
	height: 100%;
	border-radius: 4px;
	background: var(--wp--preset--color--amber);
	transform-origin: left;
	transition: transform .5s cubic-bezier(.2, .8, .2, 1), background-color .2s;
}
.kb-free.is-free .kb-free__bar span { background: var(--wp--preset--color--forest); }
.kb-free__upsell {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-top: 6px;
	padding: 12px;
	border: 1.5px dashed var(--wp--preset--color--paper);
	border-radius: 14px;
}
.kb-free__upsell[hidden] { display: none; }
.kb-free__thumb { flex: none; width: 48px; height: 48px; border-radius: 10px; object-fit: cover; }
.kb-free__text { flex: 1; margin: 0; font-size: 14px; line-height: 1.4; }
.kb-free__text b, .kb-free__text span { display: block; }
.kb-free__text span { color: var(--wp--preset--color--muted); }
.kb-free__add {
	height: 38px;
	padding: 0 16px;
	border: 0;
	border-radius: 19px;
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--paper);
	font: 700 13.5px var(--wp--preset--font-family--body);
	cursor: pointer;
}
.kb-free__add:hover { background: var(--wp--preset--color--amber-deep); }
.kb-free__add:disabled { opacity: .6; cursor: default; }
@media (prefers-reduced-motion: reduce) { .kb-free__bar span { transition: none; } }

/* Two columns, as in the design. */
.wc-block-cart.wc-block-components-sidebar-layout,
.wc-block-checkout.wc-block-components-sidebar-layout { gap: clamp(24px, 4vw, 48px); margin-bottom: 0; }
@media (min-width: 782px) {
	.kb-cart-main .wc-block-components-sidebar-layout,
	.kb-checkout-main .wc-block-components-sidebar-layout { flex-wrap: nowrap; }
	.kb-cart-main .wc-block-components-main,
	.kb-checkout-main .wc-block-components-main { flex: 1 1 auto; width: auto; padding-right: 0; }
	.kb-cart-main .wc-block-components-sidebar,
	.kb-checkout-main .wc-block-components-sidebar { flex: 0 0 min(42%, 460px); width: auto; padding-left: 0; }
}

/* Cart lines. */
.kb-cart-main .wc-block-cart-items { border: 0; }
.kb-cart-main .wc-block-cart-items__header { display: none; }
/* One divider per line, drawn on the row so it spans the full width
   whatever each cell's height (WooCommerce makes the price cell a flex box,
   which does not stretch like a table cell). */
.kb-cart-main table.wc-block-cart-items { border-collapse: collapse; }
.kb-cart-main .wc-block-cart-items__row { border-bottom: 1px solid var(--wp--preset--color--sand) !important; }
.kb-cart-main .wc-block-cart-items td {
	border: 0 !important;
	padding-block: 16px !important;
	vertical-align: middle;
}
/* Wide layout (a real table row): make the price a table cell again so it
   centres on the line, as in the design. The stacked layouts stay flex. */
@media (min-width: 700px) {
	.kb-cart-main table.wc-block-cart-items .wc-block-cart-item__total { display: table-cell; text-align: right; }
	.kb-cart-main .is-medium table.wc-block-cart-items .wc-block-cart-item__total,
	.kb-cart-main .is-small table.wc-block-cart-items .wc-block-cart-item__total,
	.kb-cart-main .is-mobile table.wc-block-cart-items .wc-block-cart-item__total { display: flex; }
}
.kb-cart-main .wc-block-cart-item__image { width: 76px; padding-right: 14px !important; }
.kb-cart-main .wc-block-cart-item__image img { width: 76px; height: 76px; border-radius: 14px; object-fit: cover; }
.wc-block-mini-cart__products-table .wc-block-cart-item__image img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; }
.kb-cart-main .wc-block-components-product-name {
	color: var(--wp--preset--color--forest);
	font-size: 16px;
	font-weight: 600;
	text-decoration: none;
}
.kb-cart-main .wc-block-cart-item__prices,
.kb-cart-main .wc-block-components-product-metadata { font-size: 13px; color: var(--wp--preset--color--muted); }
.kb-cart-main .wc-block-components-product-metadata { margin-top: 2px !important; }
.kb-cart-main .wc-block-components-product-details { margin: 4px 0 0; }
.kb-cart-main .wc-block-components-product-details__name { font-weight: 600; }
.kb-cart-main .wc-block-cart-item__quantity { display: flex; align-items: center; gap: 14px; margin-top: 8px; }
.wc-block-components-quantity-selector {
	width: auto !important;
	height: 36px;
	margin: 0 !important;
	border: 1.5px solid var(--wp--preset--color--sand) !important;
	border-radius: 18px !important;
}
.wc-block-components-quantity-selector::after { display: none; }
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	min-width: 34px;
	color: var(--wp--preset--color--amber) !important;
	font-size: 18px;
	opacity: 1;
}
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__input {
	width: 24px;
	min-width: 24px;
	font-size: 14px;
	font-weight: 700;
	color: var(--wp--preset--color--ink);
	border: 0 !important;
	box-shadow: none !important;
}
.kb-cart-main .wc-block-cart-item__remove-link {
	font: 500 13px var(--wp--preset--font-family--body) !important;
	color: var(--wp--preset--color--muted) !important;
	text-decoration: underline !important;
}
.kb-cart-main .wc-block-cart-item__total { font-weight: 700; font-size: 16px; white-space: nowrap; }
.wc-block-components-sale-badge {
	border: 0 !important;
	border-radius: 8px !important;
	background: var(--wp--preset--color--sage) !important;
	color: var(--wp--preset--color--forest) !important;
	font-size: 11.5px !important;
	font-weight: 700 !important;
}

/* Summary panel: sage, sticky. */
.kb-cart-main .wc-block-cart__sidebar,
.kb-checkout-main .wc-block-checkout__sidebar {
	position: sticky;
	top: calc(var(--wp-admin--admin-bar--height, 0px) + 100px);
	align-self: flex-start;
	padding: 24px;
	border-radius: 22px;
	background: var(--wp--preset--color--sage);
}
.kb-checkout-main .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block { border: 0; }
.wc-block-cart__totals-title,
.wc-block-components-checkout-order-summary__title-text {
	margin: 0 !important;
	padding: 0 !important;
	font: 400 24px / 1.2 var(--wp--preset--font-family--display) !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--wp--preset--color--forest) !important;
}
.kb-checkout-main .wc-block-components-checkout-order-summary__title { padding: 0 0 8px; }
.kb-cart-main .wc-block-cart__sidebar .wc-block-components-totals-wrapper,
.kb-checkout-main .wc-block-checkout__sidebar .wc-block-components-totals-wrapper {
	padding-inline: 0 !important;
	border-color: rgba(56, 89, 59, .15) !important;
}
.wc-block-components-totals-item { font-size: 15px; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { font-size: 20px !important; font-weight: 700 !important; }
.wc-block-components-panel__button { font-weight: 600; }
.kb-checkout-main .wc-block-components-order-summary-item__quantity {
	background: var(--wp--preset--color--forest);
	border-color: var(--wp--preset--color--sage);
	color: var(--wp--preset--color--paper);
}

/* Buttons. */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	width: 100%;
	min-height: 58px;
	border: 0 !important;
	border-radius: 29px !important;
	background: var(--wp--preset--color--forest) !important;
	color: var(--wp--preset--color--paper) !important;
	font: 700 16px var(--wp--preset--font-family--body) !important;
	text-decoration: none;
	transition: transform .15s, background-color .15s;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { background: var(--wp--preset--color--forest-deep) !important; }
.wc-block-cart__submit-button:active,
.wc-block-components-checkout-place-order-button:active { transform: scale(.98); }
.wc-block-cart__submit-container { margin-top: 18px; padding: 0 !important; }

/* Checkout form. */
.kb-checkout-main .wc-block-components-checkout-step { margin-bottom: 28px !important; padding-left: 0 !important; }
.kb-checkout-main .wc-block-components-checkout-step::after { display: none; }
.kb-checkout-main .wc-block-components-checkout-step__heading { margin: 0 0 12px !important; }
.kb-checkout-main .wc-block-components-checkout-step__title {
	font: 400 26px / 1.2 var(--wp--preset--font-family--display) !important;
	color: var(--wp--preset--color--forest) !important;
}
.kb-checkout-main .wc-block-components-checkout-step__container { padding-left: 0; }
.kb-checkout-main .wc-block-components-checkout-step__description { font-size: 14px; color: var(--wp--preset--color--muted); }
.kb-checkout-main .wc-block-components-text-input input,
.kb-checkout-main .wc-blocks-components-select__select,
.kb-checkout-main .wc-block-components-combobox .components-combobox-control input,
.kb-checkout-main .wc-block-components-textarea {
	min-height: 50px;
	border: 1.5px solid var(--wp--preset--color--sand) !important;
	border-radius: 12px !important;
	background: var(--wp--preset--color--paper) !important;
	color: var(--wp--preset--color--forest) !important;
	font: 500 15px var(--wp--preset--font-family--body) !important;
	box-shadow: none !important;
}
.kb-checkout-main .wc-blocks-components-select__container { border: 0; background: none; }
.kb-checkout-main .wc-block-components-text-input input:focus,
.kb-checkout-main .wc-blocks-components-select__select:focus {
	border-color: var(--wp--preset--color--forest) !important;
	outline: 2px solid rgba(56, 89, 59, .15);
}
.kb-checkout-main .wc-block-components-text-input.has-error input,
.kb-checkout-main .has-error .wc-blocks-components-select__select { border-color: var(--wp--preset--color--amber) !important; }
.kb-checkout-main .wc-block-components-validation-error { color: var(--wp--preset--color--amber-deep); }
.kb-checkout-main .wc-block-components-text-input label,
.kb-checkout-main .wc-blocks-components-select__label { color: var(--wp--preset--color--muted); }

/* Delivery and payment choices: the design's option cards. */
.kb-checkout-main .wc-block-components-radio-control,
.kb-checkout-main .wc-block-components-radio-control--highlight-checked { display: flex; flex-direction: column; gap: 8px; border: 0 !important; }
.kb-checkout-main .wc-block-components-radio-control--highlight-checked::after { display: none !important; }
.kb-checkout-main .wc-block-components-radio-control__option,
.kb-checkout-main .wc-block-components-radio-control-accordion-option {
	margin: 0 !important;
	border: 1.5px solid var(--wp--preset--color--sand) !important;
	border-radius: 16px !important;
	background: var(--wp--preset--color--paper);
	box-shadow: none !important;
}
.kb-checkout-main .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option { border: 0 !important; border-radius: 16px 16px 0 0 !important; background: none; }
.kb-checkout-main .wc-block-components-radio-control__option-checked,
.kb-checkout-main .wc-block-components-radio-control-accordion-option--checked-option-highlighted,
.kb-checkout-main .wc-block-components-radio-control-accordion-option:has(.wc-block-components-radio-control__option-checked) {
	border-color: var(--wp--preset--color--forest) !important;
	background: var(--wp--preset--color--sage);
}
.kb-checkout-main .wc-block-components-radio-control__option::after,
.kb-checkout-main .wc-block-components-radio-control-accordion-option::after { display: none !important; }
.kb-checkout-main .wc-block-components-radio-control__input {
	border: 2px solid var(--wp--preset--color--forest) !important;
	background: transparent !important;
}
.kb-checkout-main .wc-block-components-radio-control__input:checked::before { background: var(--wp--preset--color--forest) !important; }
.kb-checkout-main .wc-block-components-radio-control__label,
.kb-checkout-main .wc-block-components-payment-method-label { font-size: 15px; font-weight: 600; color: var(--wp--preset--color--forest); }
.kb-checkout-main .wc-block-components-radio-control-accordion-content { padding-top: 0 !important; font-size: 13px; color: var(--wp--preset--color--muted); }
.kb-checkout-main .wc-block-checkout__terms { font-size: 13px; color: var(--wp--preset--color--muted); }
.kb-checkout-main .wc-block-checkout__actions_row { margin-top: 8px; }

/* Order received. */
.kb-thanks-main > * { margin-block: 0 !important; }
.kb-thanks { max-width: 720px; margin-inline: auto; padding-top: 24px; text-align: center; }
.kb-thanks > * { margin-block: 0 !important; }
.kb-thanks__tick {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 84px;
	height: 84px;
	margin: 0 auto !important;
	border-radius: 42px;
	background: var(--wp--preset--color--sage);
	color: var(--wp--preset--color--forest);
	font-size: 40px;
	animation: kbPop .5s cubic-bezier(.2, .8, .2, 1);
}
@keyframes kbPop { 0% { transform: scale(.6); opacity: 0; } 60% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(1); } }
.kb-thanks .kb-thanks__no { margin-top: 20px !important; }
.kb-thanks .kb-thanks__title { margin-top: 10px !important; font-size: clamp(36px, 4.4vw, 56px); line-height: 1.02; }
.kb-thanks .kb-thanks__lede { max-width: 520px; margin: 12px auto 0 !important; line-height: 1.55; }
.kb-thanks__steps {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
	margin: 32px 0 0 !important;
	padding: 0;
	list-style: none;
	text-align: left;
}
.kb-thanks__steps li { padding: 18px; border-radius: 18px; background: var(--wp--preset--color--sage); }
.kb-thanks__steps b, .kb-thanks__steps span { display: block; }
.kb-thanks__steps span { margin-top: 4px; font-size: 14px; color: var(--wp--preset--color--muted); }
.kb-thanks__actions { gap: 10px; margin-top: 28px !important; }
.kb-thanks__actions .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	height: 52px;
	padding: 0 24px;
	border-radius: 26px;
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
	font-weight: 700;
	white-space: nowrap;
}
.kb-thanks__actions .is-style-outline .wp-block-button__link {
	border: 1.5px solid var(--wp--preset--color--forest);
	background: transparent;
	color: var(--wp--preset--color--forest);
	font-weight: 600;
}
.kb-thanks-main .wc-block-order-confirmation-additional-information { max-width: 720px; margin: 28px auto 0 !important; text-align: center; color: var(--wp--preset--color--muted); }
.kb-thanks__details { max-width: 720px; margin: 40px auto 0 !important; }
.kb-thanks__h { margin: 0 0 12px !important; font: 400 26px / 1.2 var(--wp--preset--font-family--display); color: var(--wp--preset--color--forest); }
.kb-thanks-main .wc-block-order-confirmation-totals table { border-radius: 16px; overflow: hidden; }
@media (prefers-reduced-motion: reduce) { .kb-thanks__tick { animation: none; } }

/* Shared pill buttons for theme templates. */
.kb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 46px;
	padding: 0 22px;
	border: 1px solid transparent;
	border-radius: 23px;
	font: 700 14.5px var(--wp--preset--font-family--body);
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background-color .15s, color .15s, border-color .15s;
}
.kb-btn--amber { background: var(--wp--preset--color--amber); color: var(--wp--preset--color--paper); }
.kb-btn--amber:hover { background: var(--wp--preset--color--amber-deep); color: var(--wp--preset--color--paper); }
.kb-btn--outline { border-color: var(--wp--preset--color--forest); background: var(--wp--preset--color--paper); color: var(--wp--preset--color--forest); font-weight: 600; }
.kb-btn--outline:hover { border-color: var(--wp--preset--color--forest-deep); color: var(--wp--preset--color--forest-deep); }
.kb-btn--ghost { color: var(--wp--preset--color--muted); font-weight: 600; }
.kb-btn--ghost:hover { color: var(--wp--preset--color--forest); }
.kb-btn--sm { height: 42px; padding: 0 18px; border-radius: 21px; font-size: 14px; }

/* Sign in / Create account. */
.kb-account-page > * { margin-block: 0 !important; }
body.kb-page-login .kb-account-page {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
	gap: 40px;
	align-items: center;
}
.kb-login-intro > * { margin-block: 0 !important; }
.kb-login-intro .kb-title { margin-top: 10px !important; }
.kb-login-intro .kb-lede { max-width: 460px; }
.kb-checks {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 22px 0 0 !important;
	padding: 0;
	list-style: none;
	font-size: 15px;
}
.kb-checks li::before { content: "✓ "; }
.kb-account-page .woocommerce { margin: 0; }
.kb-auth {
	padding: clamp(24px, 3vw, 36px);
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 26px;
	background: var(--wp--preset--color--paper);
	box-shadow: 0 20px 50px rgba(56, 89, 59, .08);
}
.kb-auth__tabs { display: flex; gap: 4px; padding: 4px; border-radius: 14px; background: var(--wp--preset--color--sage); }
.kb-auth__tabs a {
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: center;
	height: 40px;
	border-radius: 10px;
	color: var(--wp--preset--color--forest-deep);
	font: 700 14px var(--wp--preset--font-family--body);
	text-decoration: none;
	transition: background-color .15s;
}
.kb-auth__tabs a.is-active { background: var(--wp--preset--color--paper); color: var(--wp--preset--color--forest); }
.kb-auth__tabs a:not(.is-active):hover { background: rgba(253, 251, 247, .5); }
.kb-auth__form { display: flex; flex-direction: column; gap: 14px; margin: 22px 0 0 !important; padding: 0 !important; border: 0 !important; }
.kb-auth__form > * { margin: 0 !important; }
.kb-auth__lead { font-size: 15px; line-height: 1.5; }
.kb-field { display: flex; flex-direction: column; gap: 6px; margin: 0; font-size: 14px; font-weight: 600; }
.kb-field label { font-weight: 600; }
.kb-field__row { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; }
.kb-auth__forgot { font-size: 13px; font-weight: 600; text-decoration: none; }
.kb-input,
.kb-account-page .woocommerce-MyAccount-content .input-text,
.kb-account-page .woocommerce-MyAccount-content select {
	width: 100%;
	height: 50px;
	padding: 0 14px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 12px;
	background: var(--wp--preset--color--paper);
	color: var(--wp--preset--color--ink);
	font: 15px var(--wp--preset--font-family--body);
}
.kb-input:focus,
.kb-account-page .woocommerce-MyAccount-content .input-text:focus { outline: 2px solid var(--wp--preset--color--forest); outline-offset: 1px; }
.kb-pw { position: relative; display: flex; }
.kb-pw .kb-input { padding-right: 70px; }
.kb-pw button {
	position: absolute;
	top: 6px;
	right: 6px;
	height: 38px;
	padding: 0 12px;
	border: 0;
	border-radius: 10px;
	background: transparent;
	color: var(--wp--preset--color--forest);
	font: 600 13px var(--wp--preset--font-family--body);
	cursor: pointer;
}
.kb-pw button:hover { background: var(--wp--preset--color--sage); }
.kb-check label { display: flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 400; cursor: pointer; }
.kb-check input { flex: none; width: 18px; height: 18px; margin: 0; accent-color: var(--wp--preset--color--forest); }
.kb-auth__submit {
	width: 100%;
	height: 52px;
	border: 0;
	border-radius: 26px;
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--paper);
	font: 700 16px var(--wp--preset--font-family--body);
	cursor: pointer;
	transition: background-color .15s;
}
.kb-auth__submit:hover { background: var(--wp--preset--color--amber-deep); }
.kb-auth__note,
.kb-auth__hint { font-size: 13px; line-height: 1.5; color: var(--wp--preset--color--muted); text-align: center; }
.kb-auth__back { text-align: center; font-size: 14px; font-weight: 600; }
.kb-auth__back a { text-decoration: none; }
.kb-auth__guest {
	margin: 22px 0 0;
	padding-top: 18px;
	border-top: 1px solid var(--wp--preset--color--sand);
	color: var(--wp--preset--color--muted);
	font-size: 14px;
	text-align: center;
}
.kb-auth__guest a { font-weight: 600; }
body.kb-page-login .woocommerce-notices-wrapper:not(:empty),
body.kb-page-login .woocommerce > .woocommerce-message,
body.kb-page-login .woocommerce > .woocommerce-info,
body.kb-page-login .woocommerce > .woocommerce-error { margin-bottom: 16px; }
body.kb-page-login .woocommerce-ResetPassword:not(.kb-auth__form),
body.kb-page-login .woocommerce > .woocommerce-message + p {
	padding: clamp(24px, 3vw, 36px);
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 26px;
	background: var(--wp--preset--color--paper);
}

/* WooCommerce notices, in the design's colours. */
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.kb-account-page .woocommerce-error,
.kb-account-page .woocommerce-message,
.kb-account-page .woocommerce-info {
	margin: 0 0 16px;
	padding: 14px 18px;
	border: 0;
	border-radius: 14px;
	background: var(--wp--preset--color--sage);
	color: var(--wp--preset--color--ink);
	font-size: 14.5px;
	list-style: none;
}
.woocommerce-notices-wrapper .woocommerce-error,
.kb-account-page .woocommerce-error { background: #FBEBDD; color: var(--wp--preset--color--amber-deep); }
.woocommerce-notices-wrapper .woocommerce-error::before,
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before,
.kb-account-page .woocommerce-error::before,
.kb-account-page .woocommerce-message::before,
.kb-account-page .woocommerce-info::before { display: none; }

/* Account area. */
.kb-account-page .woocommerce::before,
.kb-account-page .woocommerce::after { display: none; }
.kb-account-page .woocommerce-MyAccount-navigation,
.kb-account-page .woocommerce-MyAccount-content { float: none; width: auto; margin: 0; }
.kb-acct-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; }
.kb-acct-head__text > * { margin: 0; }
.kb-acct-title {
	margin-top: 8px !important;
	font: 400 clamp(32px, 4vw, 48px) / 1.05 var(--wp--preset--font-family--display);
	letter-spacing: -.01em;
	color: var(--wp--preset--color--forest);
}
.kb-acct-meta { margin-top: 8px !important; font-size: 15px; color: var(--wp--preset--color--muted); }
.kb-acct-head__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.kb-acct-head__actions .kb-btn--outline { padding: 0 20px; }
.kb-acct-tabs { padding-top: 22px; border-bottom: 1px solid var(--wp--preset--color--sand); }
.kb-acct-tabs ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.kb-acct-tabs li { margin: 0; }
.kb-acct-tabs a {
	display: flex;
	align-items: center;
	height: 42px;
	margin-bottom: -1px;
	padding: 0 16px;
	border-bottom: 2px solid transparent;
	color: var(--wp--preset--color--muted);
	font: 600 14.5px var(--wp--preset--font-family--body);
	text-decoration: none;
	white-space: nowrap;
}
.kb-acct-tabs a:hover { color: var(--wp--preset--color--forest); }
.kb-acct-tabs .is-active a { border-bottom-color: var(--wp--preset--color--amber); color: var(--wp--preset--color--forest); }
.kb-account-page .woocommerce-MyAccount-content { padding-top: 28px; }
.kb-account-page .woocommerce-MyAccount-content > * { margin-top: 0; }
.kb-acct-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 20px; }
.kb-card,
.kb-account-page .woocommerce-EditAccountForm,
.kb-account-page .woocommerce-MyAccount-content > form,
.kb-account-page .woocommerce-Address,
.kb-account-page .woocommerce-order-details,
.kb-account-page .woocommerce-customer-details {
	padding: 24px;
	border: 1px solid var(--wp--preset--color--sand);
	border-radius: 22px;
	background: var(--wp--preset--color--paper);
}
.kb-card__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px; }
.kb-card h2,
.kb-account-page .woocommerce-MyAccount-content h2,
.kb-account-page .woocommerce-MyAccount-content h3 {
	margin: 0;
	font: 400 24px / 1.2 var(--wp--preset--font-family--display);
	color: var(--wp--preset--color--forest);
}
.kb-card__head a { font-size: 14px; font-weight: 600; text-decoration: none; }
.kb-card__empty { margin: 16px 0 0; font-size: 15px; color: var(--wp--preset--color--muted); }
.kb-card__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.kb-card__foot { margin: 18px 0 0; font-size: 13.5px; color: var(--wp--preset--color--muted); }
.kb-orders { display: flex; flex-direction: column; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.kb-order { display: grid; grid-template-columns: 1fr auto; gap: 6px 16px; padding: 14px 16px; border: 1px solid var(--wp--preset--color--sand); border-radius: 14px; }
.kb-order.is-latest { border-color: transparent; background: var(--wp--preset--color--sage); }
.kb-order__main b { font-size: 15px; }
.kb-order__date { font-size: 13px; color: var(--wp--preset--color--muted); }
.kb-order__items { margin-top: 4px; font-size: 14px; color: var(--wp--preset--color--ink); }
.kb-order__side { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; text-align: right; }
.kb-order__total { color: var(--wp--preset--color--amber); white-space: nowrap; }
.kb-order__status,
.kb-tag {
	padding: 3px 9px;
	border-radius: 9px;
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--paper);
	font-size: 12px;
	font-weight: 700;
	white-space: nowrap;
}
.kb-order__status.is-done { background: var(--wp--preset--color--sand); color: var(--wp--preset--color--ink); }
.kb-tag { background: var(--wp--preset--color--forest); font-size: 13px; }
.kb-order__actions { grid-column: 1 / -1; display: flex; gap: 14px; margin-top: 4px; }
.kb-order__actions a { font-size: 14px; font-weight: 600; text-decoration: none; }
.kb-refill-card { margin-top: 16px; padding: 18px; border-radius: 16px; background: var(--wp--preset--color--sage); }
.kb-refill-card__top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 10px; }
.kb-refill-card__top b { font-size: 16px; }
.kb-refill-card p { margin: 8px 0 0; font-size: 14.5px; line-height: 1.5; }
.kb-refill-card .kb-refill-card__note { margin-top: 6px; font-size: 14px; color: var(--wp--preset--color--muted); }
.kb-addresses { display: flex; flex-direction: column; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.kb-addresses li { display: flex; justify-content: space-between; gap: 12px; padding: 14px 16px; border: 1px solid var(--wp--preset--color--sand); border-radius: 14px; }
.kb-addresses b { font-size: 15px; }
.kb-addresses p { margin: 4px 0 0; font-size: 14px; line-height: 1.45; color: var(--wp--preset--color--muted); }
.kb-addresses a { align-self: center; font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
/* Label above value, like the design's Details form, so long values
   (an email address) never break mid-word in a narrow card. */
.kb-details { display: grid; gap: 2px; margin: 18px 0 0; font-size: 14.5px; }
.kb-details dt { font-size: 13px; color: var(--wp--preset--color--muted); }
.kb-details dt:not(:first-child) { margin-top: 10px; }
.kb-details dd { margin: 0; overflow-wrap: break-word; }

/* WooCommerce's own account forms and tables inside the cards. */
.kb-account-page .woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); gap: 20px; margin: 0; }
.kb-account-page .woocommerce-Addresses::before,
.kb-account-page .woocommerce-Addresses::after { display: none; }
.kb-account-page .woocommerce-Addresses .woocommerce-Address { float: none; width: auto; max-width: none; margin: 0; }
.kb-account-page .woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.kb-account-page .woocommerce-Address-title .edit { font-size: 14px; font-weight: 600; text-decoration: none; }
.kb-account-page .woocommerce-Address address { margin-top: 12px; font-style: normal; font-size: 14.5px; line-height: 1.6; color: var(--wp--preset--color--muted); }
.kb-account-page .woocommerce-MyAccount-content > p:first-child { margin-bottom: 16px; color: var(--wp--preset--color--muted); }
.kb-account-page .woocommerce-MyAccount-content .form-row { display: flex; flex-direction: column; gap: 6px; margin: 0 0 14px; padding: 0; font-size: 14px; font-weight: 600; }
.kb-account-page .woocommerce-MyAccount-content .form-row-first,
.kb-account-page .woocommerce-MyAccount-content .form-row-last { width: calc(50% - 6px); }
.kb-account-page .woocommerce-MyAccount-content .form-row-first { float: left; }
.kb-account-page .woocommerce-MyAccount-content .form-row-last { float: right; }
.kb-account-page .woocommerce-MyAccount-content .clear { clear: both; }
.kb-account-page .woocommerce-MyAccount-content fieldset { margin: 20px 0 0; padding: 18px; border: 1px solid var(--wp--preset--color--sand); border-radius: 16px; }
.kb-account-page .woocommerce-MyAccount-content legend { padding: 0 6px; font-weight: 700; }
.kb-account-page .woocommerce-MyAccount-content em { font-size: 13px; font-weight: 400; color: var(--wp--preset--color--muted); }
.kb-account-page .woocommerce-MyAccount-content .button,
.kb-account-page .woocommerce-MyAccount-content button[type="submit"] {
	height: 46px;
	padding: 0 22px;
	border: 0;
	border-radius: 23px;
	background: var(--wp--preset--color--amber);
	color: var(--wp--preset--color--paper);
	font: 700 14.5px var(--wp--preset--font-family--body);
	cursor: pointer;
}
.kb-account-page .woocommerce-MyAccount-content .button:hover,
.kb-account-page .woocommerce-MyAccount-content button[type="submit"]:hover { background: var(--wp--preset--color--amber-deep); }
.kb-account-page .woocommerce-MyAccount-content .password-input { position: relative; display: flex; width: 100%; }
.kb-account-page .woocommerce-MyAccount-content .show-password-input { position: absolute; top: 12px; right: 12px; }
.kb-account-page .woocommerce-MyAccount-content .kb-check { margin: 6px 0 14px; }
.kb-account-page .woocommerce-order-details table,
.kb-account-page .woocommerce-table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.kb-account-page .woocommerce-table th,
.kb-account-page .woocommerce-table td { padding: 10px 0; border-bottom: 1px solid var(--wp--preset--color--sand); text-align: left; }
.kb-account-page .woocommerce-table tfoot th { font-weight: 600; }
.kb-account-page .woocommerce-order-details,
.kb-account-page .woocommerce-customer-details { margin-top: 20px; }
.kb-account-page .woocommerce-MyAccount-content > p mark { background: var(--wp--preset--color--sage); color: var(--wp--preset--color--forest); padding: 1px 6px; border-radius: 6px; }
@media (max-width: 560px) {
	.kb-account-page .woocommerce-MyAccount-content .form-row-first,
	.kb-account-page .woocommerce-MyAccount-content .form-row-last { float: none; width: auto; }
	.kb-acct-tabs ul { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
	.kb-acct-tabs ul::-webkit-scrollbar { display: none; }
}

.kb-account-page .wc-block-components-notice-banner { margin: 0 0 16px; border-radius: 14px; }
.kb-account-page .kb-acct-tabs ul { margin: 0 !important; }
.kb-account-page .kb-acct-tabs li { padding: 0 !important; border: 0 !important; }
.kb-account-page .woocommerce-Address-title { text-align: left; }
.kb-account-page .woocommerce-Address-title h2 { font-size: 22px; }

/* WooCommerce notice banners in the design's colours. */
.wc-block-components-notice-banner {
	border: 0 !important;
	border-radius: 14px !important;
	background: var(--wp--preset--color--sage) !important;
	color: var(--wp--preset--color--ink) !important;
	font-size: 14.5px;
}
.wc-block-components-notice-banner > svg { background: var(--wp--preset--color--forest) !important; fill: var(--wp--preset--color--paper) !important; }
.wc-block-components-notice-banner.is-error { background: #FBEBDD !important; }
.wc-block-components-notice-banner.is-error > svg { background: var(--wp--preset--color--amber-deep) !important; }
.wc-block-components-notice-banner a,
.wc-block-components-notice-banner .wc-forward { color: var(--wp--preset--color--forest) !important; font-weight: 600; }

/* Checkout summary lines, like the cart's: square thumbnails, one divider
   per line, the price centred on the line. */
.kb-checkout-main .wc-block-components-order-summary .wc-block-components-order-summary-item {
	align-items: center;
	padding: 14px 0;
	border-bottom: 1px solid rgba(56, 89, 59, .15);
}
.kb-checkout-main .wc-block-components-order-summary .wc-block-components-order-summary-item:last-child { border-bottom: 0; }
.kb-checkout-main .wc-block-components-order-summary-item__image {
	flex: none;
	align-self: center;
	width: 56px;
	margin: 0 !important;
	padding: 0 !important; /* WooCommerce adds 16px below, which pulls it off centre. */
}
.kb-checkout-main .wc-block-components-order-summary-item__image img {
	display: block;
	width: 56px;
	height: 56px;
	max-width: none;
	border-radius: 12px;
	object-fit: cover;
}
.kb-checkout-main .wc-block-components-order-summary-item__description {
	flex: 1 1 auto;
	justify-content: center;
	min-width: 0;
	padding: 0 12px 0 16px !important;
}
.kb-checkout-main .wc-block-components-order-summary-item .wc-block-components-product-name {
	flex-grow: 0;
	color: var(--wp--preset--color--forest);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.35;
}
.kb-checkout-main .wc-block-components-order-summary-item__total-price {
	flex: none;
	align-self: center;
	margin-left: 0 !important;
	font-weight: 700;
	text-align: right;
	white-space: nowrap;
}
/* Phones: the summary collapses to a toggle; the sage panel is its frame,
   so WooCommerce's rules above and below the title are not needed. */
.kb-checkout-main .wc-block-components-checkout-order-summary__title { border-top: 0 !important; border-bottom: 0 !important; }
/* WooCommerce caps the account wrapper at 1000px (.woocommerce-account main
   .woocommerce, in its block-theme stylesheet); the design uses the
   page's full content width, the same as the header. */
.woocommerce-account main .kb-account-page > .woocommerce { max-width: none; width: auto; }

/* Footer, as the design's SiteFooter: a 1240px box (1160px of content),
   four columns that wrap, and a bottom bar. Links are paper on forest; the
   theme's forest link colour made them invisible here. */
.kb-footer {
	background: var(--wp--preset--color--forest);
	color: var(--wp--preset--color--paper);
	font-family: var(--wp--preset--font-family--body);
}
.kb-footer p { margin: 0; }
.kb-footer > *,
.kb-footer__top > *,
.kb-footer__bar > * { margin-block: 0 !important; }
.kb-footer__top,
.kb-footer__bar {
	box-sizing: border-box;
	max-width: 1240px;
	margin-inline: auto !important;
	padding-inline: clamp(16px, 4vw, 40px);
}
.kb-footer__top {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 32px;
	padding-block: 56px 32px;
}
.kb-footer__logo { display: inline-block; padding: 6px 12px; }
.kb-footer__logo .wp-block-site-logo img { height: 44px; width: auto; }
.kb-footer__logo .wp-block-site-title { font-size: 24px; line-height: 44px; }
.kb-footer__tagline { margin-top: 14px !important; font-size: 14px; line-height: 1.55; }
.kb-footer__col { display: flex; flex-direction: column; gap: 8px; font-size: 14.5px; }
.kb-footer__col > * { margin: 0 !important; }
.kb-footer__h { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.kb-footer a { color: var(--wp--preset--color--paper); text-decoration: none; }
.kb-footer a:hover,
.kb-footer a:focus-visible { color: var(--wp--preset--color--sage); text-decoration: underline; text-underline-offset: 3px; }
.kb-footer__bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 12px;
	padding-block: 18px 28px;
	border-top: 1px solid rgba(253, 251, 247, .2);
	font-size: 13px;
}
.kb-footer__legal { display: flex; flex-wrap: wrap; gap: 14px; }
.kb-footer__legal > * { margin: 0 !important; }

/* Order details in the account (view order), the same way as the cart:
   no boxed grid, one divider per row, amounts on the right. */
.kb-account-page .woocommerce-order-details .woocommerce-table {
	margin: 14px 0 0;
	border: 0 !important;
	border-radius: 0;
	border-collapse: collapse;
}
.kb-account-page .woocommerce-order-details .woocommerce-table th,
.kb-account-page .woocommerce-order-details .woocommerce-table td {
	padding: 12px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--wp--preset--color--sand) !important;
	background: none !important;
	vertical-align: middle;
}
.kb-account-page .woocommerce-order-details .woocommerce-table thead th {
	padding-top: 0 !important;
	color: var(--wp--preset--color--muted);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.kb-account-page .woocommerce-order-details .woocommerce-table .product-total,
.kb-account-page .woocommerce-order-details .woocommerce-table tfoot td { text-align: right; white-space: nowrap; }
.kb-account-page .woocommerce-order-details .woocommerce-table tfoot th { font-weight: 400; color: var(--wp--preset--color--muted); }
.kb-account-page .woocommerce-order-details .woocommerce-table tfoot tr:last-child th,
.kb-account-page .woocommerce-order-details .woocommerce-table tfoot tr:last-child td { border-bottom: 0 !important; }
.kb-account-page .woocommerce-order-details .product-name a { color: var(--wp--preset--color--forest); font-weight: 600; text-decoration: none; }
.kb-account-page .woocommerce-order-details .wc-item-meta { margin: 4px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--wp--preset--color--muted); }
.kb-account-page .woocommerce-order-details .wc-item-meta p { display: inline; margin: 0; }
.kb-account-page .woocommerce-order-details .wc-item-meta-label { font-weight: 600; }
.kb-account-page .woocommerce-order-details .includes_tax,
.kb-account-page .woocommerce-order-details .shipped_via { display: block; font-size: 12.5px; font-weight: 400; color: var(--wp--preset--color--muted); }

/* Customer details: addresses as the design's address rows. */
.kb-account-page .woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
	gap: 20px;
}
.kb-account-page .woocommerce-customer-details .woocommerce-columns--addresses::before,
.kb-account-page .woocommerce-customer-details .woocommerce-columns--addresses::after { display: none; }
.kb-account-page .woocommerce-customer-details .woocommerce-column { float: none; width: auto; max-width: none; margin: 0; padding: 0; }
.kb-account-page .woocommerce-customer-details h2 { margin-bottom: 12px !important; }
.kb-account-page .woocommerce-customer-details address {
	padding: 14px 16px !important;
	border: 1px solid var(--wp--preset--color--sand) !important;
	border-radius: 14px !important;
	font-style: normal;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--wp--preset--color--ink);
}
.kb-account-page .woocommerce-customer-details address p { margin: 8px 0 0; }
.kb-account-page .wc-block-components-additional-fields-list {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0;
	margin: 12px 0 0;
	padding: 0 16px;
	border: 1px solid var(--wp--preset--color--sand) !important;
	border-radius: 14px;
	font-size: 14.5px;
}
.kb-account-page .wc-block-components-additional-fields-list dt,
.kb-account-page .wc-block-components-additional-fields-list dd { margin: 0; padding: 12px 0; border: 0 !important; }
.kb-account-page .wc-block-components-additional-fields-list dt { font-weight: 600; }
.kb-account-page .wc-block-components-additional-fields-list dd { text-align: right; }
.kb-account-page .wc-block-components-additional-fields-list dt:not(:first-of-type),
.kb-account-page .wc-block-components-additional-fields-list dt:not(:first-of-type) + dd { border-top: 1px solid var(--wp--preset--color--sand) !important; }
.kb-account-page .woocommerce-customer-details > h2:not(.woocommerce-column__title) { margin-top: 28px !important; }
/* Inside an address the Area field is just another line. */
.kb-account-page .woocommerce-customer-details address .wc-block-components-additional-fields-list {
	display: block;
	margin: 8px 0 0;
	padding: 0;
	border: 0 !important;
	border-radius: 0;
}
.kb-account-page .woocommerce-customer-details address .wc-block-components-additional-fields-list dt,
.kb-account-page .woocommerce-customer-details address .wc-block-components-additional-fields-list dd {
	display: inline;
	padding: 0;
	border: 0 !important;
	text-align: left;
}
.kb-account-page .woocommerce-customer-details address .wc-block-components-additional-fields-list dt::after { content: ": "; }
.kb-account-page .woocommerce-customer-details address .wc-block-components-additional-fields-list dd::after { content: ""; display: block; }
/* Phone menu overlay: larger, easier-to-tap links. */
.kb-masthead .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 4px !important; }
.kb-masthead .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	padding-block: 10px;
	font-size: 20px;
}

/* Product page fixes. */
/* The gallery block caps itself at 512px; the design's image fills its column. */
.kb-product__media .wp-block-woocommerce-product-image-gallery { width: 100%; max-width: none; }
/* The add-to-cart form is a flex row, so WooCommerce's clearfix pseudo-
   elements became invisible flex items and left a 10px gap after the button. */
.kb-atc form.cart::before,
.kb-atc form.cart::after { display: none !important; }
/* The design's stepper: 46px buttons around a 24px number (119px in all). */
.kb-atc .quantity input.qty { box-sizing: border-box; width: 24px !important; min-width: 0; margin: 0 !important; padding: 0 !important; }
/* The button fills the rest of the row, and when its label ("Add to cart ·
   Rs 756 / week") is too long for a phone, it takes its own full-width line
   instead of wrapping inside the pill. */
.kb-atc .single_add_to_cart_button {
	flex: 1 0 auto;
	padding: 0 18px !important;
	white-space: nowrap;
}
