/* Shared layout and controls. Visual values come from theme.json. */
:root {
	--bb-gutter: var(--wp--preset--spacing--space-4);
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

.bb-site {
	display: flex;
	flex-direction: column;
	min-block-size: 100vh;
	margin: 0;
}

:where(img, video, iframe) {
	max-inline-size: 100%;
}

:where(img, video) {
	block-size: auto;
}

:where(h1, h2, h3, h4, h5, h6, p, a) {
	overflow-wrap: anywhere;
}

:where(a) {
	text-underline-offset: 0.2em;
}

.screen-reader-text:not(:focus) {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
	border: 0;
}

.bb-skip-link {
	position: absolute;
	inset-block-start: calc(var(--wp--preset--spacing--space-4) + var(--bb-toolbar-offset, 0px));
	inset-inline-start: var(--bb-gutter);
	z-index: 100;
	padding: var(--wp--preset--spacing--space-3);
	background: var(--wp--preset--color--surface);
	transform: translateY(-200%);
}

.bb-skip-link:focus {
	transform: none;
}

.bb-container {
	inline-size: calc(100% - var(--bb-gutter) - var(--bb-gutter));
	max-inline-size: var(--wp--style--global--wide-size);
	min-inline-size: 0;
	margin-inline: auto;
}

.bb-reading {
	max-inline-size: var(--wp--style--global--content-size);
	margin-inline: auto;
}

.bb-main {
	flex: 1;
	padding-block: var(--wp--preset--spacing--space-12);
}

.bb-page-header {
	margin-block-end: var(--wp--preset--spacing--space-8);
}

.bb-page-header h1 {
	margin-block: 0;
}

.bb-content > :where(:not(.alignwide):not(.alignfull)) {
	max-inline-size: var(--wp--style--global--content-size);
	margin-inline: auto;
}

.bb-content--wide > * {
	max-inline-size: none;
}

/* Home content stays editable; the optional Hero photo is layered on the front end. */
.bb-home-section > :first-child,
.bb-hero__copy > :first-child,
.bb-home-service > :first-child {
	margin-block-start: 0;
}

.bb-home-section > :last-child,
.bb-hero__copy > :last-child,
.bb-home-service > :last-child {
	margin-block-end: 0;
}

.bb-home-section + .bb-home-section {
	margin-block-start: var(--wp--preset--spacing--space-12);
}

@media (min-width: 40rem) {
	.bb-home-section + .bb-home-section {
		margin-block-start: var(--wp--preset--spacing--space-16);
	}
}

.bb-home-section > * + *,
.bb-hero__copy > * + * {
	margin-block-start: var(--wp--preset--spacing--space-6);
}

.bb-hero,
.bb-hero > .wp-block-group:has(> .bb-hero__copy) {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: center;
	gap: var(--wp--preset--spacing--space-8);
}

.bb-hero .bb-hero__copy {
	min-inline-size: 0;
	max-inline-size: var(--wp--style--global--content-size);
	margin: 0;
}

.bb-hero:not(:has(.bb-hero__image img)) {
	padding-block: var(--wp--preset--spacing--space-4);
	text-align: center;
}

.bb-hero:not(:has(.bb-hero__image img)) .bb-hero__copy {
	margin-inline: auto;
}

.bb-hero:not(:has(.bb-hero__image img)) .wp-block-buttons {
	justify-content: center;
}

.bb-hero:has(.bb-hero__image img) {
	text-align: left;
}

.bb-hero .bb-hero__image {
	min-inline-size: 0;
	inline-size: 100%;
	margin: 0;
	float: none;
}

.bb-hero__image img {
	display: block;
	inline-size: 100%;
	block-size: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: right center;
	border-radius: var(--wp--preset--border-radius--card);
}

.bb-hero .wp-block-buttons {
	gap: var(--wp--preset--spacing--space-3);
}

.bb-hero .wp-block-button {
	max-inline-size: 100%;
}

@media (min-width: 40rem) {
	/* Keep the real Core Image editable; only the front end uses it as a backdrop. */
	.bb-site .bb-hero:has(.bb-hero__image img) {
		position: relative;
		isolation: isolate;
		min-block-size: 24rem;
		padding: var(--wp--preset--spacing--space-12) var(--wp--preset--spacing--space-8);
		gap: 0;
		background: var(--wp--preset--color--canvas);
	}

	.bb-site .bb-hero > .wp-block-group:has(> .bb-hero__copy) {
		grid-template-columns: minmax(0, 1fr);
		gap: 0;
		position: static;
	}

	.bb-site .bb-hero:has(.bb-hero__image img) .bb-hero__copy {
		position: relative;
		z-index: 2;
		inline-size: 100%;
		max-inline-size: min(36rem, 76%);
		margin: 0;
	}

	.bb-site .bb-hero .bb-hero__image {
		position: absolute;
		inset: 0;
		z-index: 0;
		block-size: 100%;
		pointer-events: none;
	}

	.bb-site .bb-hero__image img {
		block-size: 100%;
		aspect-ratio: auto;
		object-fit: cover;
		object-position: center;
		border-radius: 0;
	}
}

@media (min-width: 64rem) {
	.bb-site .bb-hero:has(.bb-hero__image img) {
		min-block-size: 28rem;
		padding: var(--wp--preset--spacing--space-16);
	}
	.bb-site .bb-hero:has(.bb-hero__image img) .bb-hero__copy { max-inline-size: min(36rem, 52%); }

	/* The optional editor-added wrapper occupies the complete outer Hero grid. */
	.bb-hero > .wp-block-group:has(> .bb-hero__copy) {
		grid-column: 1 / -1;
	}
}

/* Shared taxonomy cards: zero media footprint when there is no real thumbnail. */
.bb-materials > * + * { margin-block-start: var(--wp--preset--spacing--space-3); }
.bb-materials + .bb-home-section { margin-block-start: var(--wp--preset--spacing--space-12); }

.bb-materials__intro {
	padding-inline: var(--wp--preset--spacing--space-1);
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--body);
}

.bb-materials__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-6);
	/* Match the rail's inset, preserving its room for visible keyboard focus. */
	padding-inline: var(--wp--preset--spacing--space-1);
}

.bb-materials__header h2 {
	min-inline-size: 0;
	margin: 0;
}

.bb-materials__all {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--space-2);
	min-block-size: var(--wp--custom--control--target-min);
	min-inline-size: var(--wp--custom--control--target-min);
	max-inline-size: 100%;
	font-size: var(--wp--preset--font-size--small);
	font-weight: var(--wp--custom--font-weight--regular);
	text-decoration: none;
}

.bb-materials__arrow,
.bb-category-card__arrow {
	display: block;
	flex-shrink: 0;
	inline-size: 1rem;
	block-size: 1rem;
}
.bb-materials__all:is(:hover, :focus-visible, :active) { text-decoration: underline; }

.bb-category-grid {
	--bb-category-gap: var(--wp--preset--spacing--space-3);
	display: grid;
	grid-auto-flow: column;
	/* A partial next card signals scrolling; the minimum stays relative to text size. */
	grid-auto-columns: max(12rem, calc((100% - var(--bb-category-gap)) / 1.65));
	gap: var(--bb-category-gap);
	min-inline-size: 0;
	max-inline-size: 100%;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	/* Keep the shared focus ring inside the scroll clipping boundary. */
	padding: var(--wp--preset--spacing--space-1);
	scroll-padding-inline: var(--wp--preset--spacing--space-1);
}

.bb-category-grid > .bb-category-card {
	min-inline-size: 0;
	margin-block: 0;
	scroll-snap-align: start;
}

.bb-category-grid > .bb-category-card:last-child { scroll-snap-align: end; }

.bb-category-card h3 {
	flex: 1;
	min-inline-size: 0;
	margin: 0;
	text-align: start;
	font-size: var(--wp--preset--font-size--small);
	font-weight: var(--wp--custom--font-weight--strong);
	line-height: var(--wp--custom--line-height--body);
}

.bb-category-card__label {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--space-2);
	flex: 1;
	min-block-size: calc(3em + 2 * var(--wp--preset--spacing--space-3));
	padding: var(--wp--preset--spacing--space-3);
	border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-end-start-radius: var(--wp--preset--border-radius--card);
	border-end-end-radius: var(--wp--preset--border-radius--card);
	background: var(--wp--preset--color--canvas);
	background: color-mix(in srgb, var(--wp--preset--color--accent) 8%, var(--wp--preset--color--surface));
	color: var(--wp--preset--color--accent);
	font-size: var(--wp--preset--font-size--small);
}

.bb-category-card a {
	display: flex;
	flex-direction: column;
	/* Wrapped names stretch the row; keep every image flush with the card top. */
	justify-content: flex-start;
	gap: 0;
	min-block-size: var(--wp--custom--control--target-min);
	block-size: 100%;
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--card);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	text-decoration: none;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.bb-category-card a:not(:has(> .bb-category-card__image)) {
	justify-content: center;
	min-block-size: 8rem;
}

.bb-category-card a:is(:hover, :focus-visible, :active) {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
	box-shadow: 0 0.25rem 0.75rem color-mix(in srgb, var(--wp--preset--color--text) 6%, transparent);
}

.bb-category-card a:is(:hover, :focus-visible, :active) h3 { text-decoration: underline; }

.bb-category-card__image {
	display: block;
	inline-size: 100%;
	block-size: auto;
	aspect-ratio: 1;
	object-fit: contain;
	border-start-start-radius: var(--wp--preset--border-radius--card);
	border-start-end-radius: var(--wp--preset--border-radius--card);
}

@media (prefers-reduced-motion: reduce) {
	.bb-category-card a { transition: none; }
}

@media (min-width: 40rem) {
	.bb-category-grid {
		--bb-category-gap: var(--wp--preset--spacing--space-6);
		grid-auto-columns: max(12rem, calc((100% - var(--bb-category-gap) - var(--bb-category-gap)) / 2.8));
	}
}

@media (min-width: 64rem) {
	.bb-category-grid {
		grid-auto-flow: row;
		grid-template-columns: repeat(6, minmax(0, 1fr));
		grid-auto-columns: auto;
		overflow-x: visible;
		scroll-snap-type: none;
	}
}

.bb-home-audience {
	padding: var(--wp--preset--spacing--space-4);
	background: var(--wp--preset--color--surface);
	border-radius: var(--wp--preset--border-radius--card);
}

.bb-home-audiences {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: min(100%, max(12rem, calc((100% - var(--wp--preset--spacing--space-4)) / 1.35)));
	gap: var(--wp--preset--spacing--space-4);
	min-inline-size: 0;
	max-inline-size: 100%;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	padding: var(--wp--preset--spacing--space-1);
	scroll-padding-inline: var(--wp--preset--spacing--space-1);
}

.bb-home-audiences > .bb-home-audience-item {
	min-inline-size: 0;
	margin: 0;
	scroll-snap-align: start;
}

.bb-home-audience-item > .bb-home-audience-image {
	margin: 0 0 var(--wp--preset--spacing--space-4);
}

.bb-home-audience-image img {
	display: block;
	inline-size: 100%;
	block-size: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: var(--wp--preset--border-radius--card);
}

.bb-home-audience-item h3 {
	margin: 0;
	font-size: var(--wp--preset--font-size--lead);
}

.bb-home-audience-item p {
	margin-block: var(--wp--preset--spacing--space-2) 0;
	color: var(--wp--preset--color--text-secondary);
}

@media (min-width: 40rem) {
	.bb-home-audiences {
		grid-auto-flow: row;
		grid-auto-columns: auto;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--wp--preset--spacing--space-6);
		overflow-x: visible;
		scroll-snap-type: none;
	}

	.bb-home-audience { padding: var(--wp--preset--spacing--space-8); }
}

@media (min-width: 64rem) {
	.bb-home-audiences { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.bb-home-services {
	container: bb-services / inline-size;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--space-4);
}

.bb-home-services__heading h2 { margin: 0; }
.bb-home-services__heading p {
	margin-block: var(--wp--preset--spacing--space-3) 0;
	color: var(--wp--preset--color--text-secondary);
}

.bb-home-services > .bb-home-service {
	/* Decorative SVG masks share one tray and never replace the editable text. */
	--bb-service-icon-size: 2.25rem;
	--bb-service-icon-padding: var(--wp--preset--spacing--space-6);
	display: grid;
	grid-template-areas: "icon copy";
	grid-template-columns: auto minmax(0, 1fr);
	align-content: start;
	gap: var(--wp--preset--spacing--space-4);
	min-inline-size: 0;
	margin: 0;
	padding: var(--wp--preset--spacing--space-4);
	background: var(--wp--preset--color--surface);
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--card);
}

.bb-home-service::before,
.bb-home-service::after {
	content: "";
	grid-area: icon;
	place-self: start center;
	pointer-events: none;
}

.bb-home-service::before {
	inline-size: calc(var(--bb-service-icon-size) + var(--bb-service-icon-padding));
	block-size: calc(var(--bb-service-icon-size) + var(--bb-service-icon-padding));
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--card);
	background: var(--wp--preset--color--canvas);
}

.bb-home-service::after {
	inline-size: var(--bb-service-icon-size);
	block-size: var(--bb-service-icon-size);
	margin-block-start: calc(var(--bb-service-icon-padding) / 2);
	background: var(--wp--preset--color--accent);
	-webkit-mask: var(--bb-service-icon-image) center / contain no-repeat;
	mask: var(--bb-service-icon-image) center / contain no-repeat;
	mask-mode: alpha;
}

.bb-home-service--stock { --bb-service-icon-image: url("../images/service-icons/package-open.svg"); }
.bb-home-service--production { --bb-service-icon-image: url("../images/service-icons/factory.svg"); }
.bb-home-service--shipping { --bb-service-icon-image: url("../images/service-icons/globe.svg"); }
.bb-home-service--support { --bb-service-icon-image: url("../images/service-icons/headset.svg"); }

.bb-home-service__copy {
	grid-area: copy;
	min-inline-size: 0;
	margin: 0;
}

.bb-home-service h3 {
	margin: 0;
	font-size: var(--wp--preset--font-size--heading-small);
}
.bb-home-service p {
	margin-block: var(--wp--preset--spacing--space-3) 0;
	color: var(--wp--preset--color--text-secondary);
}

.bb-home-service__details {
	padding-block-start: var(--wp--preset--spacing--space-4);
	border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--small);
}
.bb-home-service__details p { margin: 0; }
.bb-home-service__details p + p { margin-block-start: var(--wp--preset--spacing--space-2); }

@media (min-width: 40rem) {
	.bb-home-services {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--wp--preset--spacing--space-6);
		margin-block-start: var(--wp--preset--spacing--space-8);
	}
	.bb-home-services__heading { text-align: center; }
	.bb-home-services > .bb-home-service {
		--bb-service-icon-size: 3rem;
		--bb-service-icon-padding: var(--wp--preset--spacing--space-8);
		grid-template-areas: "icon" "copy";
		grid-template-columns: minmax(0, 1fr);
		padding: var(--wp--preset--spacing--space-6);
		text-align: center;
	}
}

/* Very narrow containers or enlarged root text should not squeeze the copy. */
@container bb-services (max-width: 14rem) {
	.bb-home-services > .bb-home-service {
		grid-template-areas: "icon" "copy";
		grid-template-columns: minmax(0, 1fr);
	}
	.bb-home-service::before,
	.bb-home-service::after { justify-self: start; }
	.bb-home-service::after { margin-inline-start: calc(var(--bb-service-icon-padding) / 2); }
}

.bb-home-company {
	display: grid;
	gap: var(--wp--preset--spacing--space-6);
	padding: var(--wp--preset--spacing--space-4);
	background: var(--wp--preset--color--surface);
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--card);
}

.bb-home-company > *,
.bb-home-company__details > * {
	min-inline-size: 0;
	margin: 0;
}

.bb-home-company h2 { margin: 0; }

.bb-home-company__intro {
	max-inline-size: 70ch;
	margin-block: var(--wp--preset--spacing--space-3) 0;
	color: var(--wp--preset--color--text-secondary);
}

.bb-home-company__details {
	display: grid;
	gap: var(--wp--preset--spacing--space-4);
}

.bb-home-company__address { color: var(--wp--preset--color--text-secondary); }

.bb-home-company__storefront {
	border-radius: var(--wp--preset--border-radius--card);
	overflow: hidden;
}

.bb-home-company__storefront img {
	display: block;
	inline-size: 100%;
	block-size: auto;
	aspect-ratio: 3 / 2;
}

.bb-home-company__map-frame {
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--card);
	overflow: hidden;
}

.bb-home-company iframe {
	display: block;
	inline-size: 100%;
	block-size: 10rem;
	border: 0;
	/* The adjacent link opens the interactive map; this preview cannot trap swipes. */
	pointer-events: none;
}

.bb-home-company__map-action { margin-block: var(--wp--preset--spacing--space-2) 0; }

.bb-home-company .bb-home-company__map-link {
	min-block-size: var(--wp--custom--control--target-min);
	max-inline-size: 100%;
	justify-content: flex-start;
	padding: var(--wp--preset--spacing--space-2) 0;
	font-size: var(--wp--preset--font-size--small);
	font-weight: var(--wp--custom--font-weight--regular);
	white-space: normal;
}

@media (min-width: 40rem) {
	.bb-home-company { padding: var(--wp--preset--spacing--space-6); }
}

/* Shared company profile; native content order also serves narrow screens. */
.bb-home-company--profile {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "intro" "photo" "details";
	gap: var(--wp--preset--spacing--space-6);
}
.bb-home-company--profile > .bb-home-company__info { grid-area: intro; }
.bb-home-company--profile > .bb-home-company__storefront { grid-area: photo; align-self: start; }
.bb-home-company--profile > .bb-home-company__details { grid-area: details; align-self: start; }
.bb-home-company--profile .bb-home-company__intro { max-inline-size: 48ch; }
.bb-home-company__experience {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--space-3);
	color: var(--wp--preset--color--accent);
}
.bb-home-company__experience strong {
	font-size: var(--wp--preset--font-size--heading-medium);
	line-height: var(--wp--custom--line-height--heading);
}
.bb-home-company__place {
	display: grid;
	gap: var(--wp--preset--spacing--space-3);
	border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	padding-block-start: var(--wp--preset--spacing--space-4);
}
.bb-home-company__place > * { margin: 0; }
.bb-home-company__city { font-weight: var(--wp--custom--font-weight--strong); }
.bb-home-company__map-disclosure {
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--control);
	overflow: hidden;
}
.bb-home-company__map-disclosure > summary {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--space-2);
	min-block-size: var(--wp--custom--control--target-min);
	padding: var(--wp--preset--spacing--space-3);
	background: var(--wp--preset--color--canvas);
	color: var(--wp--preset--color--accent);
	font-weight: var(--wp--custom--font-weight--strong);
	cursor: pointer;
	list-style: none;
}
.bb-home-company__map-disclosure > summary::-webkit-details-marker { display: none; }
.bb-home-company__map-disclosure > summary::marker { content: ""; }
.bb-home-company__map-disclosure > summary::before { content: "⌖"; font-size: var(--wp--preset--font-size--lead); }
.bb-home-company__map-disclosure > summary::after {
	content: "";
	inline-size: 0.5rem;
	block-size: 0.5rem;
	margin-inline-start: auto;
	flex-shrink: 0;
	border-inline-end: var(--wp--custom--border--width) solid currentColor;
	border-block-end: var(--wp--custom--border--width) solid currentColor;
	transform: rotate(45deg);
}
.bb-home-company__map-disclosure[open] > summary::after { transform: rotate(225deg); }
.bb-home-company__map-disclosure > summary:focus-visible {
	outline-offset: -3px;
}
.bb-home-company__map-disclosure .bb-home-company__map-frame { margin: var(--wp--preset--spacing--space-3); }
.bb-home-company__map-disclosure iframe { block-size: 12rem; }
.bb-home-company__map-disclosure .bb-home-company__map-action {
	margin: 0;
	padding: 0 var(--wp--preset--spacing--space-3) var(--wp--preset--spacing--space-2);
}
.bb-home-company__map-panel > [hidden] { display: none; }
.bb-home-company__map-close { display: none; }
@media (min-width: 64rem) {
	.bb-home-company__map-disclosure {
		position: relative;
		overflow: visible;
	}
	.bb-home-company__map-disclosure[open] { z-index: 10; }
	.bb-home-company__map-panel {
		position: absolute;
		inset-block-start: calc(100% + var(--wp--preset--spacing--space-2));
		inset-inline-end: 0;
		inline-size: 100%;
		margin: 0;
		border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
		border-radius: var(--wp--preset--border-radius--card);
		background: var(--wp--preset--color--surface);
		box-shadow: 0 0.5rem 1.5rem color-mix(in srgb, var(--wp--preset--color--text) 12%, transparent);
	}
	.bb-home-company__map-disclosure.is-map-above .bb-home-company__map-panel {
		inset-block-start: auto;
		inset-block-end: calc(100% + var(--wp--preset--spacing--space-2));
	}
	.bb-home-company__map-close:not([hidden]) {
		display: flex;
		align-items: center;
		min-block-size: var(--wp--custom--control--target-min);
		margin: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-3) 0 auto;
		padding: 0 var(--wp--preset--spacing--space-2);
		border: 0;
		background: transparent;
		color: var(--wp--preset--color--accent);
		font: inherit;
		font-size: var(--wp--preset--font-size--small);
		cursor: pointer;
	}
	.bb-home-company--profile {
		grid-template-columns: minmax(0, 13fr) minmax(0, 12fr);
		grid-template-rows: min-content 1fr;
		grid-template-areas: "photo intro" "photo details";
		column-gap: var(--wp--preset--spacing--space-8);
		row-gap: var(--wp--preset--spacing--space-4);
	}
}

.bb-home-contact {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	align-items: stretch;
	gap: 0;
	padding: 0;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--surface);
	border-radius: var(--wp--preset--border-radius--card);
}

.bb-home-contact > * {
	min-inline-size: 0;
	margin: 0;
}

.bb-home-contact__copy {
	max-inline-size: var(--wp--style--global--content-size);
	min-inline-size: 0;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--space-6);
	align-self: center;
	text-align: center;
}

.bb-home-contact__image {
	min-inline-size: 0;
	margin: 0;
}

/* Keep the Core Image upload control visible in the editor at every width. */
.bb-site .bb-home-contact__image { display: none; }

.bb-home-contact .bb-home-contact__action { justify-content: center; }

.bb-home-contact__copy > :first-child { margin-block-start: 0; }
.bb-home-contact__copy > :last-child { margin-block-end: 0; }
.bb-home-contact__copy > * + * { margin-block-start: var(--wp--preset--spacing--space-4); }

.bb-home-contact .wp-block-button__link {
	/* Core Button's inline-block rule outranks the low-specificity foundation. */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--space-2);
	max-inline-size: 100%;
	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--accent);
}

.bb-home-contact .bb-home-contact__whatsapp .wp-block-button__link::before {
	content: "";
	flex: 0 0 1.375rem;
	inline-size: 1.375rem;
	block-size: 1.375rem;
	background-color: currentColor;
	-webkit-mask: url("../images/whatsapp.svg") center / contain no-repeat;
	mask: url("../images/whatsapp.svg") center / contain no-repeat;
}

.bb-home-contact .wp-block-button__link:is(:hover, :active) {
	background: var(--wp--preset--color--canvas);
	border-color: var(--wp--preset--color--canvas);
	color: var(--wp--custom--color--accent-pressed);
}

@media (min-width: 40rem) {
	.bb-home-contact__copy {
		padding: var(--wp--preset--spacing--space-12) var(--wp--preset--spacing--space-8);
	}
	.bb-home-contact:has(.bb-home-contact__image img[src]) {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	}
	.bb-site .bb-home-contact__image {
		display: block;
		position: relative;
		aspect-ratio: 3 / 2;
		min-block-size: 0;
		overflow: hidden;
		border-start-start-radius: var(--wp--preset--border-radius--card);
		border-end-start-radius: var(--wp--preset--border-radius--card);
	}
	.bb-site .bb-home-contact__image img {
		position: absolute;
		inset: 0;
		inline-size: 100%;
		block-size: 100%;
		object-fit: cover;
	}
	.bb-home-contact:has(.bb-home-contact__image img[src]) .bb-home-contact__copy {
		max-inline-size: none;
		margin-inline: 0;
		padding: var(--wp--preset--spacing--space-8);
		text-align: start;
	}
	.bb-home-contact:has(.bb-home-contact__image img[src]) .bb-home-contact__action {
		justify-content: flex-start;
	}
}

/* Compact mobile contact CTA, shared across translated Home content. */
@media (max-width: 39.999rem) {
	.bb-home-contact--compact .bb-home-contact__copy {
		max-inline-size: none;
		margin-inline: 0;
		padding: var(--wp--preset--spacing--space-6);
		text-align: start;
	}
	.bb-home-contact--compact h2 { font-size: var(--wp--preset--font-size--heading-medium); }
	.bb-home-contact--compact .bb-home-contact__copy > p {
		font-size: var(--wp--preset--font-size--body);
		line-height: var(--wp--custom--line-height--body);
	}
	.bb-home-contact--compact .bb-home-contact__action,
	.bb-home-contact--compact .bb-home-contact__whatsapp { inline-size: 100%; }
	.bb-home-contact--compact .wp-block-button__link {
		inline-size: 100%;
		min-block-size: var(--wp--custom--control--min-height);
		padding: var(--wp--preset--spacing--space-3) var(--wp--preset--spacing--space-4);
		font-size: var(--wp--preset--font-size--body);
		white-space: normal;
	}
	.bb-home-contact--compact .bb-home-contact__whatsapp .wp-block-button__link::before {
		flex-basis: 1.25rem;
		inline-size: 1.25rem;
		block-size: 1.25rem;
	}
}

.bb-entry + .bb-entry {
	margin-block-start: var(--wp--preset--spacing--space-12);
}

.bb-header {
	background: var(--wp--preset--color--surface);
	border-block-end: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
}

/* Native flow is retained; unenhanced/taller-than-viewport navigation stays scrollable. */
html.bb-has-sticky-header {
	scroll-padding-block-start: calc(var(--bb-header-height, 0px) + var(--bb-toolbar-offset, 0px) + var(--wp--preset--spacing--space-3));
}
.bb-site .bb-header[data-bb-enhanced]:not([data-bb-static-header]) {
	position: sticky;
	inset-block-start: var(--bb-toolbar-offset, 0px);
	z-index: 40; /* Below skip link, WP toolbar and Woo dialogs; above page content. */
	flex-shrink: 0;
	box-shadow: 0 0.25rem 0.75rem color-mix(in srgb, var(--wp--preset--color--text) 6%, transparent);
}

/* State must also hide flex/grid controls, including when global button styles load. */
.bb-nav-pending .bb-header:not([data-bb-enhanced]) .bb-primary,
.bb-header [hidden],
.bb-header .bb-menu [hidden] { display: none; }

.bb-header__main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto auto;
	grid-template-areas: "brand account cart toggle";
	align-items: center;
	gap: var(--wp--preset--spacing--space-1);
	min-block-size: var(--wp--preset--spacing--space-16);
	padding-block: var(--wp--preset--spacing--space-2);
}
.bb-header__secondary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "search languages";
	align-items: center;
	gap: var(--wp--preset--spacing--space-2);
	padding-block-end: var(--wp--preset--spacing--space-3);
}
.bb-header__secondary:not(:has(.bb-language-picker)) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "search"; }
.bb-header__icon { display: block; inline-size: 1.25rem; block-size: 1.25rem; flex: 0 0 auto; }
.bb-header__tool-label, .bb-header__menu-close, .bb-language-picker__name { display: none; }
.bb-header__menu-toggle[aria-expanded="true"] .bb-header__menu-open { display: none; }
.bb-header__menu-toggle[aria-expanded="true"] .bb-header__menu-close { display: block; }

.bb-language-picker {
	grid-area: languages;
	position: relative;
	justify-self: end;
}

.bb-language-picker summary {
	display: inline-flex;
	align-items: center;
	min-block-size: var(--wp--custom--control--target-min);
	min-inline-size: var(--wp--custom--control--target-min);
	gap: var(--wp--preset--spacing--space-1);
	padding-inline: var(--wp--preset--spacing--space-1);
	font-size: var(--wp--preset--font-size--small);
	font-weight: var(--wp--custom--font-weight--strong);
	cursor: pointer;
	overflow-wrap: anywhere;
}

.bb-language-picker summary::-webkit-details-marker { display: none; }
.bb-language-picker summary::marker { content: ""; }
.bb-language-picker summary:is(:hover, :focus-visible) { color: var(--wp--preset--color--accent); }
.bb-language-picker__chevron {
	inline-size: var(--wp--preset--spacing--space-1);
	block-size: var(--wp--preset--spacing--space-1);
	border-inline-end: var(--wp--custom--border--width) solid currentColor;
	border-block-end: var(--wp--custom--border--width) solid currentColor;
	transform: rotate(45deg) translateY(-0.1em);
}

.bb-language-picker[open] .bb-language-picker__chevron { transform: rotate(225deg) translate(-0.1em, -0.1em); }

.bb-language-picker__menu {
	position: absolute;
	inset-block-start: calc(100% + var(--wp--preset--spacing--space-1));
	inset-inline-end: 0;
	z-index: 20;
	display: grid;
	min-inline-size: min(13rem, calc(100vw - (2 * var(--bb-gutter))));
	padding: var(--wp--preset--spacing--space-1);
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--control);
	background: var(--wp--preset--color--surface);
	box-shadow: 0 0.5rem 1.5rem color-mix(in srgb, var(--wp--preset--color--text) 12%, transparent);
	max-block-size: max(0px, calc(var(--bb-header-panel-space, 70vh) - var(--wp--preset--spacing--space-2)));
	overflow-y: auto;
	overscroll-behavior-block: contain;
	scroll-padding-block: var(--wp--preset--spacing--space-2);
}

.bb-language-picker__menu a {
	display: flex;
	align-items: center;
	min-block-size: var(--wp--custom--control--target-min);
	padding: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-3);
	color: var(--wp--preset--color--text);
	text-decoration: none;
}

.bb-language-picker__menu a:is(:hover, :focus-visible),
.bb-language-picker__menu a[aria-current="page"] {
	color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--canvas);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.bb-brand {
	grid-area: brand;
	min-inline-size: 0;
	font-size: var(--wp--preset--font-size--lead);
	font-weight: var(--wp--custom--font-weight--strong);
	line-height: var(--wp--custom--line-height--heading);
}

.bb-brand a {
	color: var(--wp--preset--color--text);
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--space-2);
	min-block-size: var(--wp--custom--control--target-min);
	max-inline-size: 100%;
	text-decoration: none;
}
.bb-brand__mark {
	flex: 0 0 auto;
	inline-size: calc(var(--wp--preset--spacing--space-6) * 8 / 7);
	block-size: var(--wp--preset--spacing--space-6);
	background: var(--wp--preset--color--accent);
	-webkit-mask: url('../images/brand/belage-double-b.svg') center / contain no-repeat;
	mask: url('../images/brand/belage-double-b.svg') center / contain no-repeat;
}

.bb-brand img {
	inline-size: auto;
	max-inline-size: min(100%, 8rem);
	max-block-size: var(--wp--preset--spacing--space-6);
	object-fit: contain;
}

.bb-menu {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-4);
	padding: 0;
	margin: 0;
	list-style: none;
}

.bb-menu a,
.bb-header__cart,
.bb-header__account {
	color: var(--wp--preset--color--text);
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--space-2);
	min-block-size: var(--wp--custom--control--target-min);
	min-inline-size: var(--wp--custom--control--target-min);
	padding-block: var(--wp--preset--spacing--space-2);
	text-decoration: none;
}

.bb-menu a:is(:hover, [aria-current="page"]),
.bb-header__cart:hover,
.bb-header__account:hover {
	text-decoration: underline;
}

.bb-header__cart { grid-area: cart; justify-content: center; }
.bb-header__menu-toggle { grid-area: toggle; }
.bb-header__account-slot { grid-area: account; min-inline-size: 0; }
.bb-header__account-slot:empty { display: none; }
.bb-header__account { justify-content: center; }
.bb-header__account > span { display: none; }

.bb-header__menu-toggle {
	min-block-size: var(--wp--custom--control--target-min);
	min-inline-size: var(--wp--custom--control--target-min);
	padding: var(--wp--preset--spacing--space-2);
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--text);
	font-weight: var(--wp--custom--font-weight--strong);
	overflow-wrap: anywhere;
}
.bb-header__menu-toggle { display: inline-flex; align-items: center; justify-content: center; }

.bb-header__menu-toggle:is(:hover, :active),
.bb-primary__submenu-toggle:is(:hover, :active) {
	background: var(--wp--preset--color--canvas);
	color: var(--wp--preset--color--accent);
}

.bb-primary__submenu-toggle::after {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	inline-size: var(--wp--preset--spacing--space-1);
	block-size: var(--wp--preset--spacing--space-1);
	margin-inline-start: var(--wp--preset--spacing--space-2);
	border-inline-end: var(--wp--custom--border--width) solid currentColor;
	border-block-end: var(--wp--custom--border--width) solid currentColor;
	vertical-align: middle;
	transform: rotate(45deg);
}

.bb-primary__submenu-toggle[aria-expanded="true"]::after { transform: rotate(225deg); }
.bb-primary .bb-menu a:is(:hover, :focus-visible),
.bb-primary .bb-primary__submenu-toggle:is(:hover, :focus-visible, [aria-expanded="true"]) {
	color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--canvas);
	text-decoration: none;
}
.bb-primary .bb-menu a[aria-current="page"],
.bb-primary .bb-menu .current-menu-item > a,
.bb-primary .bb-menu .bb-primary__current,
.bb-primary .bb-menu .current-menu-ancestor > button,
.bb-primary > .bb-header__account:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--accent);
	text-decoration-line: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
}

.bb-primary {
	grid-area: nav;
	min-inline-size: 0;
	border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	padding-block-start: var(--wp--preset--spacing--space-1);
}

/* The mobile panel floats below both Header rows, without growing the sticky bar. */
.bb-header[data-bb-enhanced] .bb-primary {
	position: absolute;
	inset-block-start: 100%;
	inset-inline: 0;
	z-index: 10;
	max-block-size: max(0px, calc(var(--bb-header-panel-space, 70vh) - var(--wp--preset--spacing--space-2)));
	overflow-y: auto;
	overscroll-behavior-block: contain;
	scroll-padding-block: var(--wp--preset--spacing--space-2);
	padding: var(--wp--preset--spacing--space-2) max(var(--bb-gutter), calc((100% - var(--wp--style--global--wide-size)) / 2));
	background: var(--wp--preset--color--surface);
	border-block-end: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	box-shadow: 0 0.5rem 1.5rem color-mix(in srgb, var(--wp--preset--color--text) 12%, transparent);
}

/* Very short screens / large text must allow the entire navigation to scroll in flow. */
.bb-header[data-bb-static-header] .bb-primary,
.bb-header[data-bb-static-header] .bb-language-picker__menu {
	position: static;
	max-block-size: none;
	overflow: visible;
}

.bb-primary > .bb-menu { display: block; }
.bb-primary .bb-menu li {
	min-inline-size: 0;
	margin: 0;
}
.bb-primary .bb-menu a {
	display: flex;
	align-items: center;
	min-block-size: var(--wp--custom--control--target-min);
	margin: 0;
	padding: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-3);
	border-radius: var(--wp--preset--border-radius--control);
	font-size: var(--wp--preset--font-size--body);
	font-weight: var(--wp--custom--font-weight--strong);
}

.bb-primary__submenu-toggle,
.bb-primary__group,
.bb-primary__pending {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--space-2);
	min-block-size: var(--wp--custom--control--target-min);
	padding: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-3);
	border-radius: var(--wp--preset--border-radius--control);
	font-size: var(--wp--preset--font-size--body);
	font-weight: var(--wp--custom--font-weight--strong);
	text-align: start;
	overflow-wrap: anywhere;
}
.bb-primary__submenu-toggle {
	inline-size: 100%;
	min-inline-size: var(--wp--custom--control--target-min);
	justify-content: space-between;
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--text);
}
.bb-primary__pending { flex-wrap: wrap; color: var(--wp--preset--color--text-secondary); }
.bb-primary__pending small { font-size: var(--wp--preset--font-size--caption); font-weight: var(--wp--custom--font-weight--regular); }

/* Native child links remain visible without JS. Only enhanced controls collapse them. */
.bb-primary .sub-menu {
	margin: 0;
	padding-inline-start: var(--wp--preset--spacing--space-4);
	list-style: none;
}

.bb-header[data-bb-enhanced] .bb-primary .sub-menu {
	margin-block: var(--wp--preset--spacing--space-1) var(--wp--preset--spacing--space-2);
	padding: var(--wp--preset--spacing--space-2);
	border-radius: var(--wp--preset--border-radius--card);
	background: var(--wp--preset--color--canvas);
}
.bb-primary .sub-menu a,
.bb-primary .sub-menu .bb-primary__pending { font-weight: var(--wp--custom--font-weight--regular); }
.bb-primary .sub-menu a:is(:hover, :focus-visible, [aria-current="page"]) {
	background: color-mix(in srgb, var(--wp--preset--color--accent) 8%, var(--wp--preset--color--surface));
}
.bb-header[data-bb-enhanced] .bb-primary [data-bb-shop-panel] { background: var(--wp--preset--color--surface); }
.bb-primary .sub-menu a[data-bb-shop-all] {
	justify-content: space-between;
	gap: var(--wp--preset--spacing--space-2);
	font-weight: var(--wp--custom--font-weight--strong);
}
.bb-primary__entry-arrow { flex-shrink: 0; color: var(--wp--preset--color--accent); }

.bb-primary .bb-primary__categories {
	container: bb-nav-categories / inline-size;
	margin-block-start: var(--wp--preset--spacing--space-2);
	padding: var(--wp--preset--spacing--space-1);
	border-radius: var(--wp--preset--border-radius--control);
	background: var(--wp--preset--color--canvas);
}
.bb-primary__category-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--space-1) var(--wp--preset--spacing--space-2);
	margin: 0;
	padding: 0;
	list-style: none;
}
.bb-primary .bb-primary__category-grid a {
	block-size: 100%;
	padding-inline: var(--wp--preset--spacing--space-2);
}
/* Content-width budget, in rem so larger type naturally switches back to one column. */
@container bb-nav-categories (max-width: 16rem) {
	.bb-primary__category-grid { grid-template-columns: minmax(0, 1fr); }
}

.bb-primary__category-label {
	display: block;
	padding: var(--wp--preset--spacing--space-2);
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--small);
	font-weight: var(--wp--custom--font-weight--strong);
	overflow-wrap: anywhere;
}

.bb-search {
	grid-area: search;
	position: relative;
	min-inline-size: 0;
	inline-size: 100%;
}

.bb-search__controls {
	display: flex;
	align-items: center;
	border: var(--wp--custom--border--width) solid var(--wp--custom--color--border-control);
	border-radius: var(--wp--preset--border-radius--control);
	background: var(--wp--preset--color--surface);
}

.bb-search__controls:hover { border-color: var(--wp--preset--color--accent); }
.bb-search__controls:focus-within { border-color: var(--wp--preset--color--accent); }
/* The input focus belongs to the whole field, including its submit area. */
.bb-search__controls:has(input:focus-visible) {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: -2px;
}
.bb-search input[type="search"]:focus-visible { outline: none; box-shadow: none; }
/* Individual button focus must remain distinguishable from input focus. */
.bb-search button:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: -3px;
	box-shadow: none;
}
@supports not selector(:has(*)) {
	.bb-search input[type="search"]:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: -2px; }
}
@media (forced-colors: active) {
	.bb-search__controls:focus-within { outline: 2px solid Highlight; outline-offset: -2px; }
	.bb-search button:focus-visible { outline-color: Highlight; }
}

.bb-search input[type="search"] {
	flex: 1 1 0%;
	min-inline-size: 0;
	inline-size: 100%;
	border: 0;
	background: transparent;
}

.bb-search button {
	flex: 0 0 auto;
	padding: var(--wp--preset--spacing--space-2);
	min-inline-size: var(--wp--custom--control--target-min);
	min-block-size: var(--wp--custom--control--target-min);
	border: 0;
	background: transparent;
	border-radius: var(--wp--preset--border-radius--control);
}
.bb-search button:is(:hover, :active) { color: var(--wp--preset--color--accent); background: var(--wp--preset--color--canvas); }
.bb-search__clear[hidden] { display: none; }
.bb-search[data-bb-search-enhanced] input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }

/* Compact suggestions share the original field width and the Header's viewport budget. */
.bb-search-suggestions {
	position: absolute;
	inset-block-start: calc(100% + var(--wp--preset--spacing--space-2));
	inset-inline: 0;
	z-index: 30;
	max-block-size: max(var(--wp--custom--control--target-min), min(32rem, calc(var(--bb-header-panel-space, 60vh) - var(--wp--preset--spacing--space-2))));
	overflow-y: auto;
	overscroll-behavior: contain;
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
	border-radius: var(--wp--preset--border-radius--control);
	background: var(--wp--preset--color--surface);
	box-shadow: 0 0.5rem 1.5rem color-mix(in srgb, var(--wp--preset--color--text) 12%, transparent);
}
.bb-search-suggestions__status { margin: 0; padding: var(--wp--preset--spacing--space-3); font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
.bb-search-suggestions__item {
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	align-items: center;
	gap: var(--wp--preset--spacing--space-3);
	padding: var(--wp--preset--spacing--space-3);
	min-block-size: var(--wp--custom--control--target-min);
	color: var(--wp--preset--color--text);
	text-decoration: none;
}
.bb-search-suggestions__item:is(:hover, [aria-selected="true"]) { background: var(--wp--preset--color--canvas); color: var(--wp--preset--color--accent); }
.bb-search-suggestions__image { inline-size: 3rem; block-size: 3rem; object-fit: contain; border-radius: var(--wp--preset--border-radius--control); }
.bb-search-suggestions__details { display: grid; gap: var(--wp--preset--spacing--space-1); min-inline-size: 0; }
.bb-search-suggestions__name { font-size: var(--wp--preset--font-size--small); font-weight: var(--wp--custom--font-weight--strong); overflow-wrap: anywhere; }
.bb-search-suggestions__price, .bb-search-suggestions__variant { font-size: var(--wp--preset--font-size--small); overflow-wrap: anywhere; }
.bb-search-suggestions__variant { color: var(--wp--preset--color--muted); }
.bb-search-suggestions__price ins { text-decoration: none; }
.bb-search-suggestions__price del { color: var(--wp--preset--color--muted); }
.bb-search-suggestions__more { display: block; padding: var(--wp--preset--spacing--space-3); min-block-size: var(--wp--custom--control--target-min); border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border); font-size: var(--wp--preset--font-size--small); }
@media (forced-colors: active) {
	.bb-search-suggestions__item[aria-selected="true"] { outline: 2px solid Highlight; outline-offset: -2px; }
}

@media (min-width: 40rem) {
	:root { --bb-gutter: var(--wp--preset--spacing--space-6); }
}

@media (min-width: 64rem) {
	:root { --bb-gutter: var(--wp--preset--spacing--space-8); }

	.bb-header__main {
		grid-template-columns: auto minmax(0, 1fr) auto auto;
		grid-template-areas: "brand search account cart";
		column-gap: var(--wp--preset--spacing--space-6);
		min-block-size: calc(var(--wp--preset--spacing--space-16) + var(--wp--preset--spacing--space-4));
		padding-block: var(--wp--preset--spacing--space-4);
	}
	.bb-header__secondary {
		grid-template-areas: "nav languages";
		border-block-start: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
		padding-block: 0;
		min-block-size: var(--wp--custom--control--min-height);
	}
	.bb-header__secondary:not(:has(.bb-language-picker)) { grid-template-areas: "nav"; }
	.bb-header:not([data-bb-enhanced]) .bb-header__secondary { grid-template-areas: "search languages"; padding-block: var(--wp--preset--spacing--space-2); }
	.bb-header:not([data-bb-enhanced]) .bb-header__secondary:not(:has(.bb-language-picker)) { grid-template-areas: "search"; }
	.bb-header__tool-label, .bb-language-picker__name { display: inline; }
	.bb-language-picker__short { display: none; }
	.bb-language-picker summary { gap: var(--wp--preset--spacing--space-2); padding-inline: var(--wp--preset--spacing--space-2); }
	.bb-search { max-inline-size: 30rem; justify-self: center; }
	.bb-header[data-bb-enhanced] .bb-primary {
		position: static;
		max-block-size: none;
		overflow: visible;
		padding: 0;
		border: 0;
		background: transparent;
		box-shadow: none;
	}

	.bb-brand { font-size: var(--wp--preset--font-size--heading-small); }
	.bb-brand__mark { inline-size: calc(var(--wp--preset--spacing--space-8) * 8 / 7); block-size: var(--wp--preset--spacing--space-8); }
	.bb-brand img {
		max-inline-size: min(100%, 11rem);
		max-block-size: var(--wp--preset--spacing--space-8);
	}
	.bb-header__account > span { display: inline; }
	.bb-primary > .bb-menu { display: flex; }
	.bb-primary [data-bb-submenu-item] { position: relative; }

	.bb-header[data-bb-enhanced] .bb-primary [data-bb-submenu-item] > .sub-menu {
		position: absolute;
		inset-block-start: 100%;
		inset-inline-start: 0;
		z-index: 10;
		inline-size: min(18rem, calc(100vw - var(--bb-gutter) - var(--bb-gutter)));
		margin-block: 0;
		padding: var(--wp--preset--spacing--space-4);
		border: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
		border-radius: var(--wp--preset--border-radius--control);
		background: var(--wp--preset--color--surface);
		box-shadow: 0 0.5rem 1.5rem color-mix(in srgb, var(--wp--preset--color--text) 10%, transparent);
		max-block-size: max(0px, calc(var(--bb-header-panel-space, 70vh) - var(--wp--preset--spacing--space-2)));
		overflow-y: auto;
		overscroll-behavior-block: contain;
		scroll-padding-block: var(--wp--preset--spacing--space-2);
	}
	.bb-header[data-bb-enhanced] .bb-primary [data-bb-submenu-item] > [data-bb-shop-panel] {
		inline-size: min(24rem, calc(100vw - var(--bb-gutter) - var(--bb-gutter)));
	}
	.bb-header[data-bb-static-header] .bb-primary [data-bb-submenu-item] > .sub-menu {
		position: static;
		max-block-size: none;
		overflow: visible;
	}
}
.bb-footer {
	--bb-footer-background: var(--wp--preset--color--text);
	--bb-footer-heading: var(--wp--preset--color--canvas);
	--bb-footer-copy: var(--wp--preset--color--border);
	--bb-footer-rule: color-mix(in srgb, var(--bb-footer-copy) 22%, transparent);
	border-block-start: var(--wp--custom--border--width) solid var(--bb-footer-rule);
	padding-block: var(--wp--preset--spacing--space-6);
	background: var(--bb-footer-background);
	color: var(--bb-footer-copy);
	font-size: var(--wp--preset--font-size--small);
}

.bb-footer__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--space-4);
}
.bb-footer__grid > * { min-inline-size: 0; }
.bb-footer p { margin: 0; }
.bb-footer__name {
	display: inline-flex;
	align-items: center;
	min-block-size: var(--wp--custom--control--target-min);
	color: var(--bb-footer-heading);
	font-size: var(--wp--preset--font-size--heading-small);
	font-weight: var(--wp--custom--font-weight--strong);
	text-decoration: none;
}
.bb-footer p.bb-footer__description {
	max-inline-size: 30ch;
	margin-block-start: var(--wp--preset--spacing--space-2);
	color: var(--bb-footer-copy);
}
.bb-footer__group h2 {
	margin: 0 0 var(--wp--preset--spacing--space-2);
	color: var(--bb-footer-heading);
	font-size: var(--wp--preset--font-size--body);
	font-weight: var(--wp--custom--font-weight--strong);
}
.bb-footer__links, .bb-footer__social {
	list-style: none;
	margin: 0;
	padding: 0;
}
.bb-footer__links--shop, .bb-footer__links--help {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: var(--wp--preset--spacing--space-4);
}
.bb-footer__links li { min-inline-size: 0; }
.bb-footer__links a, .bb-footer__legal > a, .bb-footer__pending {
	display: flex;
	align-items: center;
	min-inline-size: var(--wp--custom--control--target-min);
	min-block-size: var(--wp--custom--control--target-min);
	padding-block: var(--wp--preset--spacing--space-2);
	color: var(--bb-footer-copy);
	text-decoration: none;
	text-underline-offset: var(--wp--preset--spacing--space-1);
}
.bb-footer__pending { flex-wrap: wrap; gap: 0 var(--wp--preset--spacing--space-1); overflow-wrap: anywhere; }
.bb-footer__pending-label { font-size: var(--wp--preset--font-size--caption); }
.bb-footer a:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--surface);
	text-decoration: underline;
	text-decoration-color: currentColor;
}
.bb-footer__social {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--space-2);
	margin-block-start: var(--wp--preset--spacing--space-2);
}
.bb-footer__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: var(--wp--custom--control--target-min);
	min-block-size: var(--wp--custom--control--target-min);
	color: var(--bb-footer-heading);
	border-radius: var(--wp--preset--border-radius--control);
}
.bb-footer__social a:hover { background: color-mix(in srgb, var(--bb-footer-heading) 10%, transparent); }
.bb-footer__social-icon {
	display: block;
	inline-size: var(--wp--preset--spacing--space-6);
	block-size: var(--wp--preset--spacing--space-6);
	background: currentColor;
	-webkit-mask: var(--bb-social-icon) center / contain no-repeat;
	mask: var(--bb-social-icon) center / contain no-repeat;
}
.bb-footer__social-icon--instagram { --bb-social-icon: url('../images/social/instagram.svg'); }
.bb-footer__social-icon--facebook { --bb-social-icon: url('../images/social/facebook.svg'); }
.bb-footer__social-icon--tiktok { --bb-social-icon: url('../images/social/tiktok.svg'); }
.bb-footer__legal {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-4);
	margin-block-start: var(--wp--preset--spacing--space-4);
	padding-block-start: var(--wp--preset--spacing--space-4);
	border-block-start: var(--wp--custom--border--width) solid var(--bb-footer-rule);
	color: var(--bb-footer-copy);
}
.bb-footer__legal nav { min-inline-size: 0; }
.bb-footer__links--policies { display: flex; flex-wrap: wrap; gap: 0 var(--wp--preset--spacing--space-4); }

@media (min-width: 40rem) {
	.bb-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--wp--preset--spacing--space-6); }
	.bb-footer__brand { grid-column: 1 / -1; }
	.bb-footer p.bb-footer__description { font-size: var(--wp--preset--font-size--body); }
}
@media (min-width: 64rem) {
	.bb-footer { padding-block: var(--wp--preset--spacing--space-8); }
	.bb-footer__grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--wp--preset--spacing--space-8); }
	.bb-footer__brand { grid-column: auto; }
	.bb-footer__group h2 {
		display: flex;
		align-items: center;
		min-block-size: var(--wp--custom--control--target-min);
	}
	.bb-footer__group--shop {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-4);
		align-content: start;
	}
	.bb-footer__group--shop h2 { margin: 0; }
	.bb-footer__links--all { grid-column: 2; grid-row: 1; }
	.bb-footer__links--shop { grid-column: 1 / -1; }
}

/* Display is a visual role; the semantic heading level stays with the content. */
:where(strong, b) {
	font-weight: var(--wp--custom--font-weight--strong);
}

.has-display-font-size {
	line-height: var(--wp--custom--display--line-height);
	font-weight: var(--wp--custom--font-weight--strong);
	letter-spacing: var(--wp--custom--display--letter-spacing);
}

/* Native controls: no appearance reset, custom select arrow or replacement markup. */
:where(input:not([type]), input[type="text"], input[type="email"], input[type="password"], input[type="search"], input[type="tel"], input[type="url"], input[type="number"], input[type="date"], input[type="time"], input[type="datetime-local"], select, textarea) {
	inline-size: 100%;
	max-inline-size: 100%;
	min-inline-size: 0;
	min-block-size: var(--wp--custom--control--min-height);
	padding: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-3);
	border: var(--wp--custom--border--width) solid var(--wp--custom--color--border-control);
	border-radius: var(--wp--preset--border-radius--control);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--system);
	font-size: var(--wp--preset--font-size--body);
	font-weight: var(--wp--custom--font-weight--regular);
	line-height: var(--wp--custom--line-height--body);
}

select {
	padding-inline-end: var(--wp--preset--spacing--space-8);
}

textarea {
	min-block-size: 8rem;
	padding: var(--wp--preset--spacing--space-3);
	resize: vertical;
}

::placeholder {
	color: var(--wp--preset--color--muted);
	opacity: 1;
}

:where(input[type="checkbox"], input[type="radio"]) {
	inline-size: 1.25rem;
	block-size: 1.25rem;
	margin: 0;
	accent-color: var(--wp--preset--color--accent);
}

:where(label, .bb-field__label) {
	display: block;
	margin-block-end: var(--wp--preset--spacing--space-2);
	font-size: var(--wp--preset--font-size--small);
	font-weight: var(--wp--custom--font-weight--strong);
	line-height: var(--wp--custom--line-height--body);
}

/* Wrapped native inputs keep their label as the larger click target. */
:where(label:has(input[type="checkbox"], input[type="radio"]), .bb-choice) {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--space-2);
	min-block-size: var(--wp--custom--control--target-min);
	font-weight: var(--wp--custom--font-weight--regular);
}

:where(.bb-field + .bb-field) {
	margin-block-start: var(--wp--preset--spacing--space-4);
}

:where(fieldset + fieldset) {
	margin-block-start: var(--wp--preset--spacing--space-6);
}

:where(.bb-field__help, .bb-field__error) {
	display: block;
	margin-block: var(--wp--preset--spacing--space-1) 0;
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--small);
	line-height: var(--wp--custom--line-height--body);
}

.bb-field__error {
	color: var(--wp--custom--color--error);
}

:is(input, select, textarea)[aria-invalid="true"] {
	border-color: var(--wp--custom--color--error);
}

/* Readonly remains readable/selectable; only actual disabled states use this fill. */
:is(input, select, textarea):disabled {
	background: var(--wp--custom--color--disabled-surface);
	border-color: var(--wp--custom--color--border-control);
	color: var(--wp--preset--color--text-secondary);
	opacity: 1;
	cursor: not-allowed;
}

/* Standard WP element styles live in theme.json; native buttons share those tokens. */
:where(button, input[type="submit"], input[type="button"], input[type="reset"], .wp-element-button, .wp-block-button__link, .bb-button) {
	min-block-size: var(--wp--custom--control--min-height);
	padding: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-6);
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--accent);
	border-radius: var(--wp--preset--border-radius--control);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--system);
	font-size: var(--wp--preset--font-size--body);
	font-weight: var(--wp--custom--font-weight--strong);
	line-height: var(--wp--custom--line-height--body);
	text-decoration: none;
	white-space: normal;
	cursor: pointer;
	transition: color 120ms ease-out, background-color 120ms ease-out, border-color 120ms ease-out;
}

:where(.bb-button, .wp-element-button, .wp-block-button__link) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

:where(button, input[type="submit"], input[type="button"], input[type="reset"], .wp-element-button, .wp-block-button__link, .bb-button):hover {
	background: var(--wp--custom--color--accent-hover);
	border-color: var(--wp--custom--color--accent-hover);
	color: var(--wp--preset--color--surface);
}

:where(button, input[type="submit"], input[type="button"], input[type="reset"], .wp-element-button, .wp-block-button__link, .bb-button):active {
	background: var(--wp--custom--color--accent-pressed);
	border-color: var(--wp--custom--color--accent-pressed);
	color: var(--wp--preset--color--surface);
}

.bb-button--secondary,
.wp-block-button.is-style-outline > .wp-block-button__link {
	padding: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-6);
	border-width: var(--wp--custom--border--width);
	background: var(--wp--preset--color--surface);
	border-color: var(--wp--custom--color--border-control);
	color: var(--wp--preset--color--text);
}

.bb-button--secondary:hover,
.wp-block-button.is-style-outline > .wp-block-button__link:hover {
	background: var(--wp--preset--color--canvas);
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

.bb-button--secondary:active,
.wp-block-button.is-style-outline > .wp-block-button__link:active {
	background: var(--wp--custom--color--disabled-surface);
	border-color: var(--wp--custom--color--accent-pressed);
	color: var(--wp--custom--color--accent-pressed);
}

.bb-button--text,
.bb-button--icon {
	min-block-size: var(--wp--custom--control--target-min);
	min-inline-size: var(--wp--custom--control--target-min);
	padding: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-3);
	border: 0;
	background: transparent;
	color: var(--wp--preset--color--accent);
}

.bb-button--text {
	text-decoration: underline;
}

.bb-button--text:hover,
.bb-button--text:active {
	background: transparent;
	color: var(--wp--custom--color--accent-hover);
}

.bb-button--text:active {
	color: var(--wp--custom--color--accent-pressed);
}

.bb-button--icon {
	padding: var(--wp--preset--spacing--space-3);
	color: var(--wp--preset--color--text);
}

.bb-button--icon :where(svg, img) {
	inline-size: 1.25rem;
	block-size: 1.25rem;
}

.bb-button--icon:hover,
.bb-button--icon:active {
	background: var(--wp--preset--color--canvas);
	color: var(--wp--preset--color--text);
}

.bb-button--icon:active {
	background: var(--wp--custom--color--disabled-surface);
}

/* Greater specificity than WP outline/hover styles; CSS never supplies disabled behavior. */
:is(button, input[type="submit"], input[type="button"], input[type="reset"], .wp-element-button, .wp-block-button__link, .bb-button):is(:disabled, [aria-disabled="true"], .disabled),
.wp-block-button.is-style-outline > .wp-block-button__link:is(:disabled, [aria-disabled="true"], .disabled) {
	background: var(--wp--custom--color--disabled-surface);
	border-color: var(--wp--custom--color--border-control);
	color: var(--wp--preset--color--text-secondary);
	opacity: 1;
	cursor: not-allowed;
}

:is(.bb-button--text, .bb-button--icon):is(:disabled, [aria-disabled="true"], .disabled) {
	background: transparent;
}

/* Outline is the focus signal; the white ring supplies its surface separation. */
:focus-visible {
	outline: 2px solid var(--wp--custom--color--focus);
	outline-offset: 2px;
	box-shadow: 0 0 0 2px var(--wp--preset--color--surface);
}

@media (prefers-reduced-motion: reduce) {
	:where(button, input, select, textarea, .wp-element-button, .wp-block-button__link, .bb-button) {
		transition-duration: 0ms;
	}
}

/* Shared language and currency menu. */
.bb-currency-picker .bb-language-picker__menu {
	inline-size: min(24rem, calc(100vw - (2 * var(--bb-gutter))));
	font-size: var(--wp--preset--font-size--small);
}
.bb-currency-picker__form {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: var(--wp--preset--spacing--space-2);
	padding: var(--wp--preset--spacing--space-3);
	border-block-end: var(--wp--custom--border--width) solid var(--wp--preset--color--border);
}
.bb-currency-picker__form > :is(label, small) { grid-column: 1 / -1; }
.bb-currency-picker__form label { font-weight: var(--wp--custom--font-weight--strong); }
.bb-currency-picker__form select { inline-size: 100%; min-inline-size: 0; font-size: var(--wp--preset--font-size--body); }
.bb-currency-picker__form button { min-block-size: var(--wp--custom--control--target-min); padding-inline: var(--wp--preset--spacing--space-3); font-size: inherit; }
.bb-currency-picker__form small { color: var(--wp--preset--color--muted); font-size: inherit; }
.bb-currency-picker__language-label { margin: var(--wp--preset--spacing--space-3) var(--wp--preset--spacing--space-3) var(--wp--preset--spacing--space-1); font-weight: var(--wp--custom--font-weight--strong); }
.bb-currency-picker .bb-language-picker__languages {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--space-1);
	padding: var(--wp--preset--spacing--space-1);
}
.bb-currency-picker .bb-language-picker__languages a { min-inline-size: 0; overflow-wrap: anywhere; border-radius: var(--wp--preset--border-radius--control); }
@media (max-width: 39.999rem) {
	/* Give full currency names the whole field; keep the hint beside its action. */
	.bb-currency-picker__form { grid-template-areas: "label label" "select select" "note apply"; align-items: center; }
	.bb-currency-picker__form > label { grid-area: label; }
	.bb-currency-picker__form > select { grid-area: select; }
	.bb-currency-picker__form > button { grid-area: apply; }
	.bb-currency-picker__form > small { grid-area: note; }
}
@media (max-width: 63.999rem) {
	.bb-currency-picker summary { column-gap: var(--wp--preset--spacing--space-1); }
	.bb-currency-picker summary > .bb-header__icon { display: none; }
}
