/*
 * Botanistas theme styles
 * Built from the Botanistas design canvas.
 *
 * Contents
 *   1. Tokens
 *   2. Base & typography
 *   3. Layout
 *   4. Buttons & controls
 *   5. Forms
 *   6. Header
 *   7. Footer
 *   8. Product card
 *   9. Shop archive
 *  10. Single product
 *  11. Cart & checkout
 *  12. Home sections
 *  13. Notices, pagination, misc
 */

/* ===== 1. Tokens ====================================================== */

:root {
	/* Ink */
	--bo-ink: #141b16;
	--bo-ink-70: #4b554e;
	--bo-ink-50: #5f6a62;

	/* Brand greens */
	--bo-accent: #1f4a33;
	--bo-accent-deep: #143524;
	--bo-highlight: #dce6cf;
	--bo-highlight-soft: #e6edd9;
	--bo-lime: #cfe58a;

	/* Neutrals */
	--bo-white: #fff;
	--bo-surface: #f7f7f3;
	--bo-surface-2: #f3f3ef;
	--bo-line: #e2e4df;
	--bo-line-2: #d6d9d3;

	/* Warm block palette (kenzan / SUStee storytelling) */
	--bo-cream: #fbf4ea;
	--bo-cream-2: #fdf3e4;
	--bo-cream-3: #f6e6d3;
	--bo-earth: #8a573b;
	--bo-earth-deep: #4a2a17;
	--bo-espresso: #3b2314;
	--bo-clay: #a8714f;
	--bo-sun: #f5cf5f;

	/* Status */
	--bo-error: #a83e2b;
	--bo-error-bg: #f8e9e5;

	/* Type */
	--bo-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif;
	--bo-font-display: 'Archivo', 'Inter', system-ui, Arial, sans-serif;

	/* Shape */
	--bo-radius-pill: 999px;
	--bo-radius-sm: 12px;
	--bo-radius: 16px;
	--bo-radius-lg: 22px;
	--bo-radius-xl: 28px;
	--bo-radius-2xl: 32px;

	/* The design's signature: a hard offset shadow, never a soft blur */
	--bo-offset: 4px 5px 0 var(--bo-accent);
	--bo-offset-sm: 3px 4px 0 var(--bo-accent);

	/* Elevation, used sparingly — drawers and the mega menu only */
	--bo-shadow-pop: 0 24px 40px rgba(20, 27, 22, 0.08);
	--bo-shadow-drawer: 0 0 0 100vmax rgba(20, 27, 22, 0.4);

	/* Layout */
	--bo-container: min(82rem, calc(100% - 2.5rem));
	--bo-header-h: 0px; /* set by JS for sticky offsets */
}

/* ===== 2. Base & typography =========================================== */

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

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

body {
	margin: 0;
	background: var(--bo-white);
	color: var(--bo-ink);
	font-family: var(--bo-font);
	font-size: 1rem;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-wrap: break-word;
}

/* The brand families ship 400–900; never let the browser fake a weight. */
* {
	font-synthesis-weight: none;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	font-family: var(--bo-font-display);
	font-weight: 900;
	line-height: 1;
	letter-spacing: -0.015em;
	text-transform: uppercase;
	color: var(--bo-accent);
	text-wrap: balance;
}

h1 { font-size: clamp(2.25rem, 3.6vw, 3.375rem); }
h2 { font-size: clamp(1.75rem, 2.6vw, 2.5rem); }
h3 { font-size: clamp(1.375rem, 2vw, 1.875rem); }
h4 { font-size: 1.25rem; }
h5 { font-size: 1.0625rem; }
h6 { font-size: 0.9375rem; letter-spacing: 0.04em; }

p { margin: 0 0 1rem; text-wrap: pretty; }
p:last-child { margin-bottom: 0; }

a {
	color: var(--bo-accent);
	text-underline-offset: 4px;
}

a:hover { color: var(--bo-accent-deep); }

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

figure { margin: 0; }

ul, ol { padding-left: 1.25rem; }

hr {
	border: 0;
	border-top: 1px solid var(--bo-line);
	margin: 2rem 0;
}

blockquote {
	margin: 1.5rem 0;
	padding: 1.25rem 1.5rem;
	border-radius: var(--bo-radius);
	background: var(--bo-surface);
	font-size: 1.0625rem;
}

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--bo-accent);
	outline-offset: 2px;
	border-radius: 4px;
}

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

.bo-skip-link {
	position: absolute;
	left: 1rem;
	top: -5rem;
	z-index: 999;
	padding: 0.75rem 1.25rem;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-accent);
	color: var(--bo-white);
	text-decoration: none;
	font-weight: 600;
	transition: top 0.18s ease;
}

.bo-skip-link:focus { top: 1rem; color: var(--bo-white); }

/* ===== 3. Layout ====================================================== */

.bo-container {
	width: var(--bo-container);
	margin-inline: auto;
}

.bo-section { margin-top: 6rem; }
.bo-section--tight { margin-top: 3.5rem; }

.bo-section-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 1.25rem;
	flex-wrap: wrap;
	margin-bottom: 2rem;
}

.bo-section-head h2 { margin: 0; }

.bo-arrow-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	color: var(--bo-accent);
	font-weight: 600;
	text-underline-offset: 4px;
}

.bo-grid {
	display: grid;
	gap: 2rem 1.25rem;
	grid-template-columns: repeat(auto-fill, minmax(min(16rem, 100%), 1fr));
}

.bo-main { display: block; }

/* Pages that are plain content get a readable measure. */
.bo-prose { max-width: 46rem; }
.bo-prose h2, .bo-prose h3 { margin-top: 2.5rem; }

/* ===== 4. Buttons & controls ========================================== */

.bo-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	height: 3.5rem;
	padding: 0 1.75rem;
	border: 0;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-accent);
	color: var(--bo-white);
	font-family: var(--bo-font-display);
	font-size: 1rem;
	font-weight: 800;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.18s ease, color 0.18s ease;
}

.bo-btn:hover { background: var(--bo-accent-deep); color: var(--bo-white); }

.bo-btn--ghost {
	background: transparent;
	color: var(--bo-accent);
	border: 2px solid var(--bo-accent);
}

.bo-btn--ghost:hover { background: var(--bo-accent); color: var(--bo-white); }

.bo-btn--ink { background: var(--bo-ink); }
.bo-btn--ink:hover { background: #000; }

.bo-btn--sm { height: 2.75rem; padding: 0 1.25rem; font-size: 0.9375rem; }
.bo-btn--full { width: 100%; }

.bo-btn[disabled],
.bo-btn.disabled {
	opacity: 0.5;
	cursor: not-allowed;
	pointer-events: none;
}

/* The round icon button that sits on product imagery */
.bo-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--bo-white);
	color: var(--bo-ink);
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(20, 27, 22, 0.08), 0 6px 16px rgba(20, 27, 22, 0.12);
	transition: background-color 0.18s ease, color 0.18s ease;
}

.bo-icon-btn:hover { background: var(--bo-ink); color: var(--bo-white); }
.bo-icon-btn.is-done { background: var(--bo-ink); color: var(--bo-white); }

/* Pill tab / filter chip */
.bo-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	height: 2.75rem;
	padding: 0 1.25rem;
	border: 0;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-surface-2);
	color: var(--bo-ink);
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.18s ease, color 0.18s ease;
}

.bo-chip:hover { background: var(--bo-highlight); color: var(--bo-accent); }

.bo-chip[aria-pressed="true"],
.bo-chip.is-active {
	background: var(--bo-ink);
	color: var(--bo-white);
}

/* The offset-shadow card that recurs across the design */
.bo-pop {
	border: 2px solid var(--bo-accent);
	border-radius: var(--bo-radius);
	background: var(--bo-white);
	box-shadow: var(--bo-offset);
}

.bo-badge {
	display: inline-flex;
	align-items: center;
	padding: 0.25rem 0.625rem;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-highlight);
	color: var(--bo-accent);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
}

.bo-badge--plain {
	background: var(--bo-white);
	color: var(--bo-ink);
	border: 1px solid var(--bo-line-2);
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
}

.bo-eyebrow {
	align-self: flex-start;
	transform: rotate(-2deg);
	padding: 0.3rem 0.875rem;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-highlight);
	color: var(--bo-accent);
	font-family: var(--bo-font-display);
	font-size: 0.8125rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

/* ===== 5. Forms ======================================================= */

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
textarea,
select,
.select2-container--default .select2-selection--single {
	width: 100%;
	min-height: 3rem;
	padding: 0.625rem 1.125rem;
	border: 1px solid var(--bo-line-2);
	border-radius: var(--bo-radius-sm);
	background: var(--bo-white);
	color: var(--bo-ink);
	font: inherit;
	font-size: 1rem;
}

textarea { min-height: 8rem; resize: vertical; }

input::placeholder,
textarea::placeholder { color: var(--bo-ink-50); opacity: 1; }

input:focus,
textarea:focus,
select:focus {
	border-color: var(--bo-accent);
	outline: 2px solid var(--bo-accent);
	outline-offset: -1px;
}

label { font-weight: 600; font-size: 0.9375rem; }

/* Quantity stepper */
.bo-qty {
	display: inline-flex;
	align-items: center;
	height: 3rem;
	border: 1px solid var(--bo-line-2);
	border-radius: var(--bo-radius-pill);
	background: var(--bo-white);
	overflow: hidden;
}

.bo-qty button {
	width: 2.75rem;
	height: 100%;
	border: 0;
	background: none;
	color: var(--bo-ink);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bo-qty button:hover { background: var(--bo-surface-2); }
.bo-qty button[disabled] { opacity: 0.35; cursor: not-allowed; }

.bo-qty input {
	width: 3rem;
	min-height: 0;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: 0;
	text-align: center;
	font-weight: 600;
	-moz-appearance: textfield;
}

.bo-qty input::-webkit-outer-spin-button,
.bo-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bo-qty input:focus { outline: none; }

/* ===== 6. Header ====================================================== */

.bo-header { position: relative; z-index: 20; background: var(--bo-white); }

/* Announcement bar */
.bo-announce {
	background: var(--bo-accent);
	color: var(--bo-white);
	font-size: 0.875rem;
}

.bo-announce__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 2.5rem;
}

.bo-announce__trust {
	flex: 1 1 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: rgba(255, 255, 255, 0.85);
}

.bo-announce__rotator {
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

.bo-announce__msg {
	min-width: 22rem;
	text-align: center;
	font-weight: 500;
}

.bo-announce button {
	width: 2rem;
	height: 2rem;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--bo-white);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.bo-announce button:hover { background: rgba(255, 255, 255, 0.14); }

.bo-announce__links {
	flex: 1 1 0;
	display: flex;
	justify-content: flex-end;
	gap: 1.25rem;
}

.bo-announce a { color: var(--bo-white); text-decoration: none; }
.bo-announce a:hover { text-decoration: underline; }

/* Masthead: logo, search, actions */
.bo-masthead {
	display: flex;
	align-items: center;
	gap: 1.25rem 2.5rem;
	flex-wrap: wrap;
	min-height: 5rem;
	padding: 0.75rem 0;
}

.bo-logo { display: flex; flex-shrink: 0; }
.bo-logo img { height: 1.75rem; width: auto; display: block; }

.bo-logo--text {
	font-family: var(--bo-font-display);
	font-size: 1.375rem;
	font-weight: 900;
	text-transform: uppercase;
	color: var(--bo-accent);
	text-decoration: none;
	letter-spacing: -0.01em;
}

.bo-search {
	flex: 1 1 22rem;
	max-width: 40rem;
	position: relative;
}

.bo-search svg {
	position: absolute;
	left: 1.125rem;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
}

.bo-search input[type="search"] {
	height: 3rem;
	min-height: 0;
	padding: 0 1.25rem 0 3.125rem;
	border-radius: var(--bo-radius-pill);
	border: 1px solid var(--bo-line-2);
	background: var(--bo-surface);
	font-size: 0.9375rem;
}

.bo-actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.bo-action {
	width: 2.75rem;
	height: 2.75rem;
	border: 0;
	border-radius: 50%;
	background: none;
	color: var(--bo-ink);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	text-decoration: none;
}

.bo-action:hover { background: var(--bo-surface-2); color: var(--bo-ink); }

/* Cart pill */
.bo-cart-btn {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	height: 2.75rem;
	padding: 0 1rem 0 0.75rem;
	border: 0;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-ink);
	color: var(--bo-white);
	text-decoration: none;
	font: inherit;
	cursor: pointer;
}

.bo-cart-btn:hover { background: var(--bo-accent); color: var(--bo-white); }

.bo-cart-btn__icon { position: relative; display: flex; }

.bo-cart-btn__count {
	position: absolute;
	top: -6px;
	right: -8px;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 9px;
	background: var(--bo-highlight);
	color: var(--bo-ink);
	font-size: 0.6875rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bo-cart-btn__total { font-size: 0.9375rem; font-weight: 600; }

/* Category navigation */
.bo-nav-bar {
	border-top: 1px solid var(--bo-line);
	border-bottom: 1px solid var(--bo-line);
}

.bo-nav-bar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.bo-nav {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 1.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
	font-size: 0.9375rem;
	font-weight: 500;
}

.bo-nav a,
.bo-nav__toggle {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	height: 3.25rem;
	padding: 0;
	border: 0;
	border-bottom: 2px solid transparent;
	background: none;
	color: var(--bo-ink);
	font: inherit;
	text-decoration: none;
	cursor: pointer;
}

.bo-nav__toggle { font-weight: 600; }

.bo-nav a:hover,
.bo-nav__toggle:hover,
.bo-nav .current-menu-item > a,
.bo-nav .current-menu-ancestor > a,
.bo-nav__toggle[aria-expanded="true"] {
	border-bottom-color: var(--bo-ink);
	color: var(--bo-ink);
}

.bo-nav__toggle[aria-expanded="true"] .bo-nav__chev { transform: rotate(180deg); }
.bo-nav__chev { transition: transform 0.18s ease; }

.bo-shipping-note {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: var(--bo-ink-70);
}

/* Mega menu */
.bo-mega {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--bo-white);
	border-bottom: 1px solid var(--bo-line);
	box-shadow: var(--bo-shadow-pop);
}

.bo-mega[hidden] { display: none; }

.bo-mega__inner {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(11rem, 100%), 1fr));
	gap: 2rem;
	padding: 2.25rem 0 2.5rem;
}

.bo-mega__col { display: flex; flex-direction: column; gap: 0.25rem; }

.bo-mega__title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.5rem;
	color: var(--bo-ink);
	text-decoration: none;
	font-weight: 700;
	font-size: 1rem;
}

.bo-mega__count {
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.125rem 0.5rem;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-surface-2);
	color: var(--bo-ink-70);
}

.bo-mega__col a:not(.bo-mega__title) {
	display: flex;
	align-items: center;
	min-height: 2.25rem;
	color: var(--bo-ink-70);
	text-decoration: none;
	font-size: 0.9375rem;
}

.bo-mega__col a:not(.bo-mega__title):hover { color: var(--bo-accent); }

.bo-mega__promo {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 16rem;
	border-radius: 18px;
	overflow: hidden;
	color: var(--bo-white);
	text-decoration: none;
	background: #3a3f3a;
}

.bo-mega__promo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.bo-mega__promo-card {
	position: relative;
	margin: 0.75rem;
	padding: 1rem;
	border-radius: 14px;
	background: var(--bo-white);
	color: var(--bo-ink);
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
}

/* Mobile header bits — hidden on desktop */
.bo-burger { display: none; }

/* ===== 7. Footer ====================================================== */

.bo-footer {
	margin-top: 6rem;
	background: var(--bo-highlight);
	color: var(--bo-accent);
	line-height: 1.5;
}

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

.bo-footer__inner { padding: 4.5rem 0 2rem; }

.bo-footer__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(11rem, 100%), 1fr));
	gap: 2.5rem 2rem;
}

.bo-footer__brand {
	grid-column: span 2;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	max-width: 24rem;
}

.bo-footer__lead {
	font-family: var(--bo-font-display);
	font-size: 1.375rem;
	font-weight: 900;
	line-height: 1;
	text-transform: uppercase;
	color: var(--bo-accent);
}

.bo-footer h2,
.bo-footer__col-title {
	font-family: var(--bo-font-display);
	font-size: 1.0625rem;
	font-weight: 900;
	text-transform: uppercase;
	color: var(--bo-accent);
	margin: 0 0 0.375rem;
	letter-spacing: 0;
}

.bo-footer__col { display: flex; flex-direction: column; gap: 0.625rem; }
.bo-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.625rem; }

.bo-newsletter { position: relative; }

.bo-newsletter input[type="email"] {
	height: 3.25rem;
	padding: 0 3.5rem 0 1.125rem;
	border-radius: var(--bo-radius-sm);
	border: 2px solid var(--bo-accent);
	background: transparent;
	color: var(--bo-accent);
}

.bo-newsletter input::placeholder { color: rgba(31, 74, 51, 0.65); }

.bo-newsletter button {
	position: absolute;
	right: 0.25rem;
	top: 50%;
	transform: translateY(-50%);
	width: 2.75rem;
	height: 2.75rem;
	border: 0;
	border-radius: 10px;
	background: none;
	color: var(--bo-accent);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}

.bo-social { display: flex; gap: 0.25rem; }

.bo-social a {
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	color: var(--bo-accent);
	display: flex;
	align-items: center;
	justify-content: center;
}

.bo-social a:hover { background: rgba(31, 74, 51, 0.1); }

.bo-footer__badges {
	margin-top: 3.5rem;
	padding: 1.25rem 0;
	border-top: 1px solid rgba(31, 74, 51, 0.2);
	border-bottom: 1px solid rgba(31, 74, 51, 0.2);
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 1rem 2rem;
	font-size: 0.875rem;
}

.bo-footer__badge-group {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.bo-footer__badge-group > strong { margin-right: 0.25rem; font-weight: 600; }

.bo-footer__badge {
	padding: 0.25rem 0.75rem;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-white);
}

.bo-footer__legal {
	padding-top: 1.5rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.75rem 2rem;
	font-size: 0.8125rem;
	color: #33573f;
}

/* ===== 8. Product card ================================================ */

.bo-card {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.875rem;
	margin: 0;
	list-style: none;
}

.bo-card__media {
	position: relative;
	aspect-ratio: 1 / 1;
	border-radius: var(--bo-radius);
	overflow: hidden;
	background: var(--bo-surface-2);
}

.bo-card__link {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bo-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.4s ease;
}

.bo-card:hover .bo-card__media img { transform: scale(1.04); }

.bo-card__flags {
	position: absolute;
	top: 0.75rem;
	left: 0.75rem;
	display: flex;
	gap: 0.375rem;
	z-index: 2;
}

.bo-card__cta {
	position: absolute;
	right: 0.75rem;
	bottom: 0.75rem;
	z-index: 2;
}

.bo-card__body { display: flex; flex-direction: column; gap: 0.3rem; }

.bo-card__rating {
	display: flex;
	align-items: center;
	gap: 0.375rem;
	font-size: 0.8125rem;
	color: var(--bo-ink-70);
}

.bo-card__rating-stars { display: flex; gap: 1px; color: var(--bo-accent); }

.bo-card__title {
	color: var(--bo-ink);
	text-decoration: none;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.3;
	text-wrap: pretty;
}

.bo-card__title:hover { color: var(--bo-accent); }

.bo-card__meta { font-size: 0.875rem; color: var(--bo-ink-50); }

.bo-card__price {
	margin-top: 0.125rem;
	font-size: 1.0625rem;
	font-weight: 700;
	color: var(--bo-ink);
}

.bo-card__price del { color: var(--bo-ink-50); font-weight: 400; margin-right: 0.375rem; }
.bo-card__price ins { text-decoration: none; }

.bo-card__note { font-size: 0.8125rem; color: var(--bo-ink-50); }

.bo-card.is-sold-out .bo-card__media img { opacity: 0.5; }

/* ===== 9. Shop archive ================================================ */

.bo-shop-intro { margin-top: 2rem; }

.bo-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: var(--bo-ink-50);
	margin-bottom: 1.25rem;
}

.bo-breadcrumb a { color: var(--bo-ink-70); text-decoration: none; }
.bo-breadcrumb a:hover { color: var(--bo-accent); }

.bo-shop-hero {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(26rem, 100%), 1fr));
	gap: 1.25rem;
	align-items: stretch;
}

.bo-shop-hero__text {
	border-radius: var(--bo-radius-xl);
	background: var(--bo-cream);
	padding: clamp(1.75rem, 3.5vw, 3rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1rem;
}

.bo-shop-hero__text p { color: var(--bo-ink-70); font-size: 1.0625rem; max-width: 34rem; }

.bo-shop-hero__media {
	border-radius: var(--bo-radius-xl);
	overflow: hidden;
	background: var(--bo-surface-2);
	min-height: 18rem;
}

.bo-shop-hero__media img { width: 100%; height: 100%; object-fit: cover; }

/* Sub-category / shape navigation */
.bo-shape-nav {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
	margin-top: 2.5rem;
}

.bo-shape {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.5rem 1.125rem 0.5rem 0.5rem;
	border: 2px solid var(--bo-line);
	border-radius: var(--bo-radius-pill);
	background: var(--bo-white);
	color: var(--bo-ink);
	text-decoration: none;
	font-weight: 600;
	font-size: 0.9375rem;
	transition: border-color 0.18s ease;
}

.bo-shape:hover,
.bo-shape.is-active { border-color: var(--bo-accent); color: var(--bo-accent); }

.bo-shape__thumb {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	overflow: hidden;
	background: var(--bo-surface-2);
	flex-shrink: 0;
}

.bo-shape__thumb img { width: 100%; height: 100%; object-fit: cover; }

/* Toolbar: result count + ordering */
.bo-shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	margin: 2.5rem 0 2rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--bo-line);
}

.bo-result-count { font-size: 0.9375rem; color: var(--bo-ink-70); margin: 0; }

.bo-ordering select {
	min-height: 2.75rem;
	width: auto;
	padding: 0 2.5rem 0 1.125rem;
	border-radius: var(--bo-radius-pill);
	background-color: var(--bo-white);
	font-size: 0.9375rem;
	font-weight: 600;
	appearance: none;
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23141b16' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 1rem center;
}

/* FAQ accordion */
.bo-faq { margin-top: 5rem; }

.bo-faq__item {
	border-bottom: 1px solid var(--bo-line);
}

.bo-faq summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.25rem 0;
	font-weight: 600;
	font-size: 1.0625rem;
	cursor: pointer;
	list-style: none;
}

.bo-faq summary::-webkit-details-marker { display: none; }

.bo-faq summary::after {
	content: "";
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f4a33' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s ease;
}

.bo-faq details[open] summary::after { transform: rotate(45deg); }

.bo-faq__answer { padding: 0 0 1.5rem; color: var(--bo-ink-70); max-width: 48rem; }

/* ===== 10. Single product ============================================= */

.bo-product { margin-top: 2rem; }

.bo-buybox {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(28rem, 100%), 1fr));
	gap: 2rem 3rem;
	align-items: start;
}

/* Gallery */
.bo-gallery { display: flex; flex-direction: column; gap: 0.75rem; }

.bo-gallery__main {
	position: relative;
	aspect-ratio: 1 / 1;
	border-radius: var(--bo-radius-xl);
	overflow: hidden;
	background: var(--bo-surface-2);
}

.bo-gallery__main img { width: 100%; height: 100%; object-fit: cover; }

.bo-gallery__flags {
	position: absolute;
	top: 1rem;
	left: 1rem;
	display: flex;
	gap: 0.375rem;
	z-index: 2;
}

.bo-gallery__thumbs {
	display: flex;
	gap: 0.625rem;
	flex-wrap: wrap;
}

.bo-gallery__thumb {
	width: 5rem;
	height: 5rem;
	padding: 0;
	border: 2px solid transparent;
	border-radius: var(--bo-radius-sm);
	overflow: hidden;
	background: var(--bo-surface-2);
	cursor: pointer;
}

.bo-gallery__thumb img { width: 100%; height: 100%; object-fit: cover; }
.bo-gallery__thumb[aria-current="true"] { border-color: var(--bo-accent); }

/* Summary column */
.bo-summary { display: flex; flex-direction: column; gap: 1.25rem; }

.bo-summary__kicker {
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--bo-accent);
}

.bo-summary h1 { margin: 0; font-size: clamp(1.875rem, 3vw, 2.75rem); }

.bo-summary__price {
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--bo-ink);
	font-family: var(--bo-font);
}

.bo-summary__price del { color: var(--bo-ink-50); font-weight: 400; font-size: 1.25rem; margin-right: 0.5rem; }
.bo-summary__price ins { text-decoration: none; }
.bo-summary__excerpt { color: var(--bo-ink-70); font-size: 1.0625rem; }

/* Variation pills */
.bo-variation { display: flex; flex-direction: column; gap: 0.625rem; }

.bo-variation__label { font-weight: 600; font-size: 0.9375rem; }
.bo-variation__label span { font-weight: 400; color: var(--bo-ink-70); }

.bo-pills { display: flex; flex-wrap: wrap; gap: 0.5rem; }

.bo-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 2.75rem;
	padding: 0 1.125rem;
	border: 2px solid var(--bo-line-2);
	border-radius: var(--bo-radius-pill);
	background: var(--bo-white);
	color: var(--bo-ink);
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	cursor: pointer;
}

.bo-pill:hover { border-color: var(--bo-accent); }

.bo-pill[aria-pressed="true"],
.bo-pill.is-active {
	border-color: var(--bo-ink);
	background: var(--bo-ink);
	color: var(--bo-white);
}

.bo-pill.is-unavailable {
	opacity: 0.4;
	text-decoration: line-through;
	cursor: not-allowed;
}

.bo-pill__swatch {
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(20, 27, 22, 0.16);
	flex-shrink: 0;
}

/* Add to cart row */
.bo-add-row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.bo-add-row .bo-btn { flex: 1 1 14rem; }

/* Stock + trust lines */
.bo-stock {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.9375rem;
	font-weight: 600;
	color: var(--bo-accent);
}

.bo-stock__dot {
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: var(--bo-accent);
}

.bo-stock.is-out { color: var(--bo-ink-50); }
.bo-stock.is-out .bo-stock__dot { background: var(--bo-ink-50); }

/* Free shipping meter — also used in the cart drawer */
.bo-meter {
	padding: 0.875rem 1rem;
	border-radius: 14px;
	background: var(--bo-surface);
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	font-size: 0.875rem;
}

.bo-meter.is-free { background: #e6f1d2; }

.bo-meter__track {
	height: 6px;
	border-radius: 3px;
	background: rgba(20, 27, 22, 0.1);
	overflow: hidden;
	display: flex;
}

.bo-meter__fill {
	border-radius: 3px;
	background: var(--bo-accent);
	transition: width 0.3s ease;
}

/* Product accordions */
.bo-accordion { border-top: 1px solid var(--bo-line); }
.bo-accordion details { border-bottom: 1px solid var(--bo-line); }

.bo-accordion summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.125rem 0;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.bo-accordion summary::-webkit-details-marker { display: none; }

.bo-accordion summary::after {
	content: "";
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%231f4a33' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s ease;
}

.bo-accordion details[open] summary::after { transform: rotate(45deg); }
.bo-accordion__body { padding: 0 0 1.25rem; color: var(--bo-ink-70); }

/* Comparison table */
.bo-compare { width: 100%; border-collapse: collapse; font-size: 0.9375rem; }
.bo-compare th, .bo-compare td { padding: 0.875rem 1rem; text-align: left; border-bottom: 1px solid var(--bo-line); }
.bo-compare thead th { font-family: var(--bo-font-display); text-transform: uppercase; color: var(--bo-accent); font-size: 0.8125rem; letter-spacing: 0.04em; }
.bo-compare tbody tr.is-current { background: var(--bo-highlight); }
.bo-compare__wrap { overflow-x: auto; border-radius: var(--bo-radius); }

/* Feature split blocks */
.bo-split {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(26rem, 100%), 1fr));
	gap: 2rem 3rem;
	align-items: center;
}

.bo-split__media { border-radius: var(--bo-radius-lg); overflow: hidden; background: var(--bo-surface-2); }
.bo-split__media img { width: 100%; height: 100%; object-fit: cover; }

/* Sticky buy bar (mobile) */
.bo-sticky-buy {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 40;
	display: none;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
	padding-bottom: calc(0.75rem + env(safe-area-inset-bottom));
	background: var(--bo-white);
	border-top: 1px solid var(--bo-line);
	box-shadow: 0 -8px 24px rgba(20, 27, 22, 0.08);
}

.bo-sticky-buy__info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.bo-sticky-buy__name { font-size: 0.8125rem; color: var(--bo-ink-70); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bo-sticky-buy__price { font-weight: 700; }

/* ===== 11. Cart, drawer & checkout ==================================== */

.bo-steps {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex-wrap: wrap;
	font-size: 0.875rem;
	color: var(--bo-ink-50);
	margin-bottom: 2rem;
}

.bo-steps__item { display: flex; align-items: center; gap: 0.5rem; }
.bo-steps__item.is-current { color: var(--bo-ink); font-weight: 600; }

.bo-steps__num {
	width: 1.5rem;
	height: 1.5rem;
	border-radius: 50%;
	background: var(--bo-surface-2);
	color: var(--bo-ink-70);
	font-size: 0.75rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bo-steps__item.is-current .bo-steps__num { background: var(--bo-accent); color: var(--bo-white); }

.bo-cart-layout {
	display: grid;
	/* Same contents as the checkout rail — names, carriers, a VAT line — so it
	   needs comparable room. */
	grid-template-columns: minmax(0, 1fr) minmax(min(24rem, 100%), 28rem);
	gap: 2rem 3rem;
	align-items: start;
}

/* Cart lines */
.bo-cart-line {
	display: flex;
	gap: 1rem;
	padding: 1.25rem 0;
	border-bottom: 1px solid var(--bo-line);
}

.bo-cart-line__media {
	flex-shrink: 0;
	width: 6rem;
	height: 6rem;
	border-radius: var(--bo-radius-sm);
	overflow: hidden;
	background: var(--bo-surface-2);
}

.bo-cart-line__media img { width: 100%; height: 100%; object-fit: cover; }
.bo-cart-line__body { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 0.25rem; }

.bo-cart-line__top {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}

.bo-cart-line__name { font-weight: 600; color: var(--bo-ink); text-decoration: none; line-height: 1.3; }
.bo-cart-line__name:hover { color: var(--bo-accent); }
.bo-cart-line__price { font-weight: 600; white-space: nowrap; }
.bo-cart-line__variant { font-size: 0.8125rem; color: var(--bo-ink-50); }

.bo-cart-line__actions {
	margin-top: 0.5rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.bo-remove {
	min-height: 2.75rem;
	padding: 0;
	border: 0;
	background: none;
	color: var(--bo-ink-70);
	font: inherit;
	font-size: 0.8125rem;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.bo-remove:hover { color: var(--bo-error); }

/* Order summary panel */
.bo-summary-panel {
	position: sticky;
	top: 1.5rem;
	padding: 1.5rem;
	border-radius: var(--bo-radius-lg);
	background: var(--bo-surface);
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.bo-summary-panel h2 { font-size: 1.125rem; margin: 0 0 0.5rem; }

.bo-summary-row {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	font-size: 0.9375rem;
}

.bo-summary-row--total {
	padding-top: 0.75rem;
	margin-top: 0.25rem;
	border-top: 1px solid var(--bo-line-2);
	font-size: 1.25rem;
	font-weight: 700;
}

.bo-coupon { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }
.bo-coupon input { flex: 1 1 9rem; min-height: 2.75rem; }

/* Cart drawer */
.bo-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(26rem, 100%);
	z-index: 60;
	background: var(--bo-white);
	border-radius: 20px 0 0 20px;
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform 0.28s ease;
	visibility: hidden;
}

.bo-drawer.is-open { transform: translateX(0); visibility: visible; }

.bo-drawer__scrim {
	position: fixed;
	inset: 0;
	z-index: 55;
	background: rgba(20, 27, 22, 0.45);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.28s ease, visibility 0.28s;
}

.bo-drawer__scrim.is-open { opacity: 1; visibility: visible; }

.bo-drawer__head {
	padding: 0.75rem 0.5rem 0.75rem 1.25rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	border-bottom: 1px solid var(--bo-line);
}

.bo-drawer__head h2 {
	margin: 0;
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 1.375rem;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.bo-drawer__count {
	min-width: 1.5rem;
	height: 1.5rem;
	padding: 0 0.375rem;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-ink);
	color: var(--bo-white);
	font-family: var(--bo-font);
	font-size: 0.8125rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bo-drawer__body {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: 1rem 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.bo-drawer__foot {
	padding: 1rem 1.25rem 1.25rem;
	border-top: 1px solid var(--bo-line);
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
}

.bo-drawer__empty {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	text-align: center;
	color: var(--bo-ink-70);
	padding: 2rem;
}

/* Upsell rows inside the drawer */
.bo-upsell { display: flex; flex-direction: column; gap: 0.625rem; }

.bo-upsell__row {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.5rem;
	border-radius: 14px;
	background: var(--bo-surface);
}

.bo-upsell__thumb {
	flex-shrink: 0;
	width: 3.25rem;
	height: 3.25rem;
	border-radius: 10px;
	background: var(--bo-white);
	overflow: hidden;
}

.bo-upsell__thumb img { width: 100%; height: 100%; object-fit: cover; }
.bo-upsell__text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; line-height: 1.3; }
.bo-upsell__name { font-size: 0.8125rem; font-weight: 600; }
.bo-upsell__meta { font-size: 0.75rem; color: var(--bo-ink-70); }

/* Checkout */
.bo-checkout-header {
	border-bottom: 1px solid var(--bo-line);
	padding: 1.25rem 0;
}

.bo-checkout-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}

.bo-checkout-layout {
	display: grid;
	/* The rail carries product names, quantities, shipping choices with logos
	   and a VAT line; at 22rem every one of those wrapped onto three or four
	   lines, so it gets half as much room again. */
	grid-template-columns: minmax(0, 1fr) minmax(min(26rem, 100%), 32rem);
	gap: 2.5rem 3rem;
	align-items: start;
	margin-top: 2.5rem;
}

.bo-checkout-section { margin-bottom: 2.5rem; }
.bo-checkout-section > h2 { font-size: 1.25rem; margin-bottom: 1.25rem; }

/* WooCommerce form rows inside checkout */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
	gap: 1rem;
}

.form-row { margin: 0; display: flex; flex-direction: column; gap: 0.375rem; }
.form-row-wide, .form-row.notes { grid-column: 1 / -1; }
.form-row .required { color: var(--bo-error); text-decoration: none; }

#payment ul.payment_methods {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.625rem;
	border: 0;
}

#payment ul.payment_methods li {
	padding: 1rem 1.125rem;
	border: 2px solid var(--bo-line);
	border-radius: var(--bo-radius);
	background: var(--bo-white);
}

#payment ul.payment_methods li label { display: inline-flex; align-items: center; gap: 0.625rem; font-weight: 600; cursor: pointer; }
#payment .payment_box { margin-top: 0.75rem; font-size: 0.9375rem; color: var(--bo-ink-70); }
#payment .payment_box p:last-child { margin-bottom: 0; }

/* ----- Checkout order review -------------------------------------------
   Woo prints this as a table with no stylesheet here, so it needs the
   column behaviour spelled out: names must be free to wrap, figures must
   not. The shipping methods arrive as a bulleted list with gateway logos. */

#order_review table.shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

#order_review table.shop_table th,
#order_review table.shop_table td {
	padding: 0.75rem 0;
	text-align: left;
	vertical-align: top;
	border-bottom: 1px solid var(--bo-line-2);
}

#order_review table.shop_table thead th {
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--bo-ink-50);
	font-weight: 600;
}

/* Let the name column take the slack so the figures column shrinks to its own
   content, rather than pinning the figures to a fixed sliver. */
#order_review table.shop_table td:first-child,
#order_review table.shop_table th:first-child,
.cart_totals table.shop_table th:first-child {
	width: 100%;
}

#order_review table.shop_table td:last-child,
#order_review table.shop_table th:last-child,
.cart_totals table.shop_table td:last-child {
	text-align: right;
	white-space: nowrap;
	padding-left: 1rem;
}

#order_review table.shop_table tfoot th { font-weight: 600; }

#order_review .order-total td,
#order_review .order-total th,
.cart_totals .order-total td,
.cart_totals .order-total th {
	border-bottom: 0;
	font-size: 1.0625rem;
}

.cart_totals .order-total .includes_tax,
#order_review .order-total .includes_tax {
	display: block;
	font-size: 0.8125rem;
	font-weight: 400;
	color: var(--bo-ink-50);
	/* Kept on one line so the figures column widens to fit it, instead of
	   breaking "(įskaičiuota 20,48 € PVM)" across three lines. */
	white-space: nowrap;
}

#order_review .product-quantity { white-space: nowrap; color: var(--bo-ink-50); }

/* The shipping chooser is not a figure, and the figures column is deliberately
   narrow — so this row leaves the table grid and stacks: label, then the
   carriers across the full width of the panel. */
#order_review table.shop_table tr.shipping,
.cart_totals table.shop_table tr.shipping {
	display: block;
	border-bottom: 1px solid var(--bo-line-2);
}

#order_review table.shop_table tr.shipping th,
#order_review table.shop_table tr.shipping td,
.cart_totals table.shop_table tr.shipping th,
.cart_totals table.shop_table tr.shipping td {
	display: block;
	width: auto;
	text-align: left;
	white-space: normal;
	padding-left: 0;
	border-bottom: 0;
}

#order_review table.shop_table tr.shipping th,
.cart_totals table.shop_table tr.shipping th {
	padding-bottom: 0.375rem;
}

#shipping_method,
.cart_totals .woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

#shipping_method li,
.cart_totals .woocommerce-shipping-methods li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
}

#shipping_method label,
.cart_totals .woocommerce-shipping-methods label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	flex-wrap: wrap;
	cursor: pointer;
}

#shipping_method img,
.woocommerce-shipping-methods img {
	max-height: 1.25rem;
	width: auto;
}

.woocommerce-shipping-destination,
#order_review .shipping td p { font-size: 0.8125rem; color: var(--bo-ink-50); }

/* Select2 and the pickup-point picker must fill the column they sit in. */
.woocommerce-checkout .select2-container,
.woocommerce-checkout .form-row .select2 { width: 100% !important; }

/* ===== 12. Home sections ============================================= */

.bo-hero {
	margin-top: 1.5rem;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(30rem, 100%), 1fr));
	gap: 1.25rem;
}

.bo-hero__panel {
	border-radius: var(--bo-radius-xl);
	background: var(--bo-cream);
	padding: clamp(2rem, 4.5vw, 4.5rem);
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 1.5rem;
	min-height: 36rem;
}

.bo-hero__panel h1 { margin: 0; }
.bo-hero__panel p { margin: 0; max-width: 32rem; font-size: 1.125rem; line-height: 1.55; color: var(--bo-ink-70); }

.bo-hero__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.5rem; }

.bo-hero__proof { display: flex; align-items: center; gap: 0.875rem; padding-top: 0.5rem; font-size: 0.9375rem; color: var(--bo-ink-70); }

.bo-avatars { display: flex; }

.bo-avatars img {
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	border: 2px solid var(--bo-cream);
	background: var(--bo-white);
	object-fit: cover;
}

.bo-avatars img + img { margin-left: -0.625rem; }

.bo-hero__media {
	position: relative;
	border-radius: var(--bo-radius-xl);
	overflow: hidden;
	min-height: 36rem;
	background: #e7e7e3;
}

.bo-hero__media > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.bo-hero__pick {
	position: absolute;
	left: 1.5rem;
	bottom: 1.5rem;
	display: flex;
	align-items: center;
	gap: 0.875rem;
	padding: 0.625rem 1rem 0.625rem 0.625rem;
	border: 2px solid var(--bo-accent);
	border-radius: 18px;
	background: var(--bo-white);
	color: var(--bo-ink);
	text-decoration: none;
	box-shadow: 5px 6px 0 var(--bo-accent);
	max-width: calc(100% - 3rem);
}

.bo-hero__pick-thumb {
	width: 4rem;
	height: 4rem;
	border-radius: var(--bo-radius-sm);
	background: var(--bo-surface-2);
	overflow: hidden;
	flex-shrink: 0;
}

.bo-hero__pick-thumb img { width: 100%; height: 100%; object-fit: cover; }

/* Service promises */
.bo-promises {
	padding: 1.75rem 0;
	border-bottom: 1px solid var(--bo-line);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr));
	gap: 1.25rem 2rem;
}

.bo-promise { display: flex; align-items: center; gap: 0.875rem; }

.bo-promise__icon {
	flex-shrink: 0;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--bo-highlight);
	color: var(--bo-accent);
	display: flex;
	align-items: center;
	justify-content: center;
}

.bo-promise__text { display: flex; flex-direction: column; }
.bo-promise__text strong { font-weight: 600; }
.bo-promise__text span { font-size: 0.875rem; color: var(--bo-ink-50); }

/* Category tiles */
.bo-cats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
	gap: 1.25rem;
}

.bo-cat {
	position: relative;
	display: block;
	aspect-ratio: 4 / 5;
	border-radius: var(--bo-radius-lg);
	overflow: hidden;
	background: var(--bo-surface-2);
	color: var(--bo-ink);
	text-decoration: none;
}

.bo-cat > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.bo-cat__plate {
	position: absolute;
	left: 0.75rem;
	right: 0.75rem;
	bottom: 0.75rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.75rem 0.75rem 0.75rem 1.125rem;
	border: 2px solid var(--bo-accent);
	border-radius: var(--bo-radius);
	background: var(--bo-white);
	box-shadow: var(--bo-offset);
}

.bo-cat__text { min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }

.bo-cat__title {
	font-family: var(--bo-font-display);
	font-size: 1.0625rem;
	font-weight: 900;
	text-transform: uppercase;
	color: var(--bo-accent);
}

.bo-cat__sub { font-size: 0.8125rem; color: var(--bo-ink-70); }

.bo-cat__go {
	flex-shrink: 0;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--bo-accent);
	color: var(--bo-white);
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Dark / warm storytelling blocks */
.bo-block {
	position: relative;
	overflow: hidden;
	border-radius: var(--bo-radius-2xl);
	padding: clamp(2rem, 4.5vw, 4rem);
	display: flex;
	flex-direction: column;
	gap: 3rem;
}

.bo-block--earth { background: var(--bo-earth); color: var(--bo-cream-2); }
.bo-block--earth h2, .bo-block--earth h3 { color: var(--bo-cream-2); }
.bo-block--earth p { color: var(--bo-cream-3); }

.bo-block--green { background: var(--bo-accent); color: var(--bo-white); }
.bo-block--green h2, .bo-block--green h3 { color: var(--bo-white); }
.bo-block--green p { color: rgba(255, 255, 255, 0.85); }

.bo-block--cream { background: var(--bo-cream); }

.bo-block__cols {
	position: relative;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(28rem, 100%), 1fr));
	gap: 2.5rem 4rem;
	align-items: center;
}

.bo-block__eyebrow {
	align-self: flex-start;
	transform: rotate(-2deg);
	padding: 0.375rem 1rem;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-sun);
	color: var(--bo-espresso);
	font-family: var(--bo-font-display);
	font-size: 0.875rem;
	font-weight: 800;
	text-transform: uppercase;
}

/* Full-bleed cream band */
.bo-band { margin-top: 6rem; background: var(--bo-cream); padding: 5rem 0; }
.bo-band--green { background: var(--bo-accent); color: var(--bo-white); }
.bo-band--green h2 { color: var(--bo-white); }

/* Journal / post cards */
.bo-post-card { display: flex; flex-direction: column; gap: 0.875rem; }

.bo-post-card__media {
	/* The journal's featured images are ~1.9:1 share cards with the title baked
	   in; a 3/2 box cropped a fifth of the width and cut the lettering. */
	aspect-ratio: 16 / 9;
	border-radius: var(--bo-radius);
	overflow: hidden;
	background: var(--bo-surface-2);
}

.bo-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; }
.bo-post-card:hover .bo-post-card__media img { transform: scale(1.04); }
.bo-post-card__title { font-size: 1.0625rem; font-weight: 600; color: var(--bo-ink); text-decoration: none; line-height: 1.35; }
.bo-post-card__title:hover { color: var(--bo-accent); }
.bo-post-card__meta { font-size: 0.8125rem; color: var(--bo-ink-50); }

/* Testimonials */
.bo-quotes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr));
	gap: 1.25rem;
}

.bo-quote {
	padding: 1.75rem;
	border-radius: var(--bo-radius-lg);
	background: var(--bo-surface);
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.bo-quote__stars { display: flex; gap: 2px; color: var(--bo-accent); }
.bo-quote__text { font-size: 1.0625rem; line-height: 1.5; }
.bo-quote__who { font-size: 0.875rem; color: var(--bo-ink-50); }

/* ===== 13. Notices, pagination, misc ================================= */

.bo-notice,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-noreviews {
	margin: 0 0 1.5rem;
	padding: 1rem 1.25rem;
	border: 1px solid rgba(31, 74, 51, 0.22);
	border-radius: var(--bo-radius);
	background: var(--bo-highlight);
	color: var(--bo-ink);
	list-style: none;
	font-size: 0.9375rem;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem 1.5rem;
	flex-wrap: wrap;
}

.woocommerce-info { background: var(--bo-surface); border-color: var(--bo-line-2); }
.woocommerce-error { background: var(--bo-error-bg); border-color: rgba(168, 62, 43, 0.3); }
.woocommerce-error li { list-style: none; }

.woocommerce-message a.button,
.woocommerce-info a.button,
.woocommerce-error a.button {
	padding: 0;
	border: 0;
	background: none;
	color: var(--bo-ink);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.bo-pagination { margin-top: 3rem; display: flex; justify-content: center; }

.bo-pagination ul,
.woocommerce-pagination ul {
	list-style: none;
	display: flex;
	gap: 0.375rem;
	margin: 0;
	padding: 0;
}

.bo-pagination a,
.bo-pagination span,
.woocommerce-pagination a,
.woocommerce-pagination span {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 2.75rem;
	height: 2.75rem;
	padding: 0 0.75rem;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-surface-2);
	color: var(--bo-ink);
	text-decoration: none;
	font-weight: 600;
}

.bo-pagination .current,
.woocommerce-pagination .current { background: var(--bo-ink); color: var(--bo-white); }

/* Toast shown after an AJAX add to cart */
.bo-toast {
	position: fixed;
	right: 1.25rem;
	bottom: 1.25rem;
	z-index: 70;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	max-width: min(24rem, calc(100% - 2.5rem));
	padding: 0.875rem 1.125rem;
	border-radius: var(--bo-radius);
	background: var(--bo-ink);
	color: var(--bo-white);
	box-shadow: 0 12px 32px rgba(20, 27, 22, 0.24);
	transform: translateY(1rem);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}

.bo-toast.is-open { opacity: 1; transform: translateY(0); visibility: visible; }
.bo-toast a { color: var(--bo-white); font-weight: 600; }

.bo-loading { opacity: 0.5; pointer-events: none; }

/* Entry content for blog/pages */
.bo-entry { margin-top: 2.5rem; }
.bo-entry__header { margin-bottom: 2rem; }
.bo-entry__meta { font-size: 0.875rem; color: var(--bo-ink-50); margin-top: 0.75rem; }
.bo-entry__thumb { border-radius: var(--bo-radius-lg); overflow: hidden; margin-bottom: 2rem; }

/* ===== Responsive ===================================================== */

@media (max-width: 1100px) {
	.bo-cart-layout { grid-template-columns: minmax(0, 1fr); }
	.bo-summary-panel { position: static; }
}

/* The checkout rail is wider than the cart's, so it stacks sooner — below this
   the form column would be narrower than the summary beside it. */
@media (max-width: 1280px) {
	.bo-checkout-layout { grid-template-columns: minmax(0, 1fr); }
	.bo-checkout-layout .bo-summary-panel { position: static; }
}

@media (max-width: 900px) {
	:root { --bo-container: calc(100% - 2rem); }

	.bo-announce__trust,
	.bo-announce__links { display: none; }
	.bo-announce__inner { justify-content: center; }
	.bo-announce__msg { min-width: 0; }

	/* Masthead collapses to one row — burger · logo · actions — with the
	   search field dropping to a line of its own underneath. Explicit order
	   is needed because the actions' auto margin otherwise pushes them to
	   their own row once the logo and burger are in place. */
	.bo-masthead { gap: 0.75rem 1rem; min-height: 4rem; flex-wrap: wrap; }
	.bo-burger { display: flex; order: 1; }
	.bo-logo { order: 2; }
	.bo-actions { order: 3; margin-left: auto; }
	.bo-search { order: 4; flex-basis: 100%; max-width: none; }
	.bo-nav-bar { display: none; }

	/* On checkout the trust line replaces the search field, and without an
	   order of its own it defaults to 0 and jumps ahead of the logo. */
	.bo-checkout-trust { order: 5; flex-basis: 100%; justify-content: center; }

	/* The mobile design uses a smaller wordmark and an icon-only cart, which
	   is also what makes burger · logo · actions fit one row at 375px. */
	.bo-logo img { height: 1.25rem; }
	.bo-logo--text { font-size: 1.125rem; }
	.bo-cart-btn { padding: 0 0.75rem; }
	.bo-cart-btn__total { display: none; }

	.bo-section { margin-top: 4rem; }
	.bo-footer { margin-top: 4rem; }
	.bo-band { margin-top: 4rem; padding: 3.5rem 0; }

	.bo-hero__panel,
	.bo-hero__media { min-height: 0; }
	.bo-hero__panel { padding: 2rem 1.5rem; }
	.bo-hero__media { aspect-ratio: 4 / 3; }

	.bo-footer__brand { grid-column: 1 / -1; }
	.bo-footer__inner { padding: 3rem 0 2rem; }

	.bo-block { gap: 2rem; }
	.bo-grid { gap: 1.75rem 1rem; grid-template-columns: repeat(auto-fill, minmax(min(10.5rem, 100%), 1fr)); }

	.bo-sticky-buy { display: flex; }
	body.bo-has-sticky-buy { padding-bottom: 5rem; }
}

@media (max-width: 600px) {
	/* Archivo 900 is wide; at the desktop clamp minimum a long Lithuanian
	   compound like "KOMPOZICIJOMS" overflows 375px and breaks mid-word. */
	h1, .bo-hero__panel h1 { font-size: clamp(1.75rem, 7.6vw, 2.25rem); }
	h2 { font-size: clamp(1.5rem, 6.4vw, 1.875rem); }
	h1, h2, h3 { word-break: normal; hyphens: none; }

	.bo-hero__panel { padding: 1.75rem 1.25rem; }
	.bo-hero__pick { left: 0.75rem; bottom: 0.75rem; padding: 0.5rem 0.75rem 0.5rem 0.5rem; }
	.bo-hero__pick-thumb { width: 3rem; height: 3rem; }
	.bo-cart-line__media { width: 4.5rem; height: 4.5rem; }
	.bo-drawer { border-radius: 0; width: 100%; }
	.bo-toast { right: 1rem; left: 1rem; bottom: 1rem; max-width: none; }
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* ===== Checkout chrome ================================================
   Checkout drops the announcement bar, the category nav and the mega menu:
   the design strips the page back to a logo, a secure-payment line and the
   form, so nothing competes with finishing the order. */

.woocommerce-checkout .bo-announce,
.woocommerce-checkout .bo-nav-bar,
.woocommerce-checkout .bo-mega,
.woocommerce-checkout .bo-search,
.woocommerce-checkout .bo-burger,
.woocommerce-checkout .bo-footer__grid,
.woocommerce-checkout .bo-footer__badges { display: none; }

.woocommerce-checkout .bo-masthead { justify-content: space-between; }
.woocommerce-checkout .bo-footer { margin-top: 3rem; background: transparent; }
.woocommerce-checkout .bo-footer__inner { padding: 1.5rem 0; }
.woocommerce-checkout .bo-footer__legal { padding-top: 0; }

/* The secure-payment reassurance that replaces the nav on checkout */
.bo-checkout-trust {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--bo-accent);
}

/* Woo's order review table */
.woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
	padding: 0.625rem 0;
	text-align: left;
	border-bottom: 1px solid var(--bo-line-2);
}

.woocommerce-checkout-review-order-table td:last-child,
.woocommerce-checkout-review-order-table th:last-child { text-align: right; }
.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td { font-size: 1.125rem; font-weight: 700; border-bottom: 0; }
.woocommerce-checkout-review-order-table thead th { font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--bo-ink-50); }
.woocommerce-checkout-review-order-table .product-quantity { color: var(--bo-ink-50); }

/* Cart totals table reuses the same shape */
.shop_table.shop_table_responsive,
.cart_totals table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.9375rem;
}

.cart_totals table th,
.cart_totals table td {
	padding: 0.625rem 0;
	text-align: left;
	border-bottom: 1px solid var(--bo-line-2);
}

.cart_totals table td { text-align: right; }
.cart_totals .order-total th,
.cart_totals .order-total td { font-size: 1.25rem; font-weight: 700; border-bottom: 0; }
.cart_totals h2 { font-size: 1.125rem; }
.wc-proceed-to-checkout { margin-top: 1rem; }
.wc-proceed-to-checkout .checkout-button { display: flex; }

#place_order { width: 100%; margin-top: 1rem; }

/* Mobile nav drawer lists */
.bo-mobile-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.bo-mobile-nav__list > li { border-bottom: 1px solid var(--bo-line); }
.bo-mobile-nav__list--plain { border-top: 1px solid var(--bo-line); margin-top: 1rem; }

.bo-mobile-nav__list a,
.bo-mobile-nav__list summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	min-height: 3rem;
	color: var(--bo-ink);
	text-decoration: none;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.bo-mobile-nav__list summary::-webkit-details-marker { display: none; }

.bo-mobile-nav__list details > a {
	min-height: 2.5rem;
	padding-left: 1rem;
	font-weight: 400;
	color: var(--bo-ink-70);
}

.bo-mobile-nav__all { font-weight: 600 !important; color: var(--bo-accent) !important; }

/* ===== WooCommerce class bridge =======================================
   Woo's own stylesheets are dequeued, so its markup has to be mapped onto
   this theme's components here. Anything Woo prints with .button, .quantity,
   a gallery or a form lands in this section. */

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

.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button,
.woocommerce #respond input#submit,
.woocommerce .single_add_to_cart_button,
.woocommerce-cart .checkout-button,
.woocommerce #place_order,
.wc-block-components-button,
.woocommerce-Button,
.woocommerce-form-login__submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.625rem;
	height: 3.5rem;
	padding: 0 1.75rem;
	border: 0;
	border-radius: var(--bo-radius-pill);
	background: var(--bo-accent);
	color: var(--bo-white);
	font-family: var(--bo-font-display);
	font-size: 1rem;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.18s ease;
}

.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .single_add_to_cart_button:hover,
.woocommerce-cart .checkout-button:hover,
.woocommerce #place_order:hover,
.wc-block-components-button:hover {
	background: var(--bo-accent-deep);
	color: var(--bo-white);
}

.woocommerce .button:disabled,
.woocommerce .button.disabled,
.woocommerce .single_add_to_cart_button.disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* The theme's own classes win where both are present. */
.woocommerce .bo-icon-btn,
.woocommerce a.bo-icon-btn {
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	border-radius: 50%;
	background: var(--bo-white);
	color: var(--bo-ink);
	font-size: 0;
}

.woocommerce .bo-icon-btn:hover { background: var(--bo-ink); color: var(--bo-white); }

.woocommerce a.bo-remove,
.woocommerce .bo-remove {
	display: inline;
	height: auto;
	padding: 0;
	background: none;
	border-radius: 0;
	color: var(--bo-ink-70);
	font-family: var(--bo-font);
	font-size: 0.8125rem;
	font-weight: 400;
	text-transform: none;
	text-decoration: underline;
}

.woocommerce a.bo-remove:hover { background: none; color: var(--bo-error); }

.woocommerce a.bo-arrow-link,
.woocommerce a.bo-arrow-link:hover {
	height: auto;
	padding: 0;
	background: none;
	color: var(--bo-accent);
	font-family: var(--bo-font);
	font-size: 1rem;
	font-weight: 600;
	text-transform: none;
}

.woocommerce .bo-chip {
	height: 2.75rem;
	padding: 0 1.25rem;
	font-family: var(--bo-font);
	font-size: 0.9375rem;
	font-weight: 600;
	text-transform: none;
}

/* Add-to-cart form ------------------------------------------------------ */

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

.woocommerce div.product form.cart .quantity { margin: 0; }
.woocommerce div.product form.cart .single_add_to_cart_button { flex: 1 1 12rem; }

.woocommerce div.product form.cart.variations_form {
	flex-direction: column;
	align-items: stretch;
}

.woocommerce div.product form.cart .variations {
	width: 100%;
	border-collapse: collapse;
}

.woocommerce div.product form.cart .variations tr { display: flex; flex-direction: column; gap: 0.5rem; }
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th { padding: 0 0 1rem; border: 0; text-align: left; display: block; }
.woocommerce div.product form.cart .variations label { font-weight: 600; font-size: 0.9375rem; }
.woocommerce div.product .woocommerce-variation-add-to-cart { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; }
.woocommerce div.product .woocommerce-variation-price { margin-bottom: 0.75rem; font-size: 1.5rem; font-weight: 700; }
.reset_variations { font-size: 0.875rem; }

/* Gallery --------------------------------------------------------------- */

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

.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	border-radius: var(--bo-radius-xl);
	overflow: hidden;
	background: var(--bo-surface-2);
	margin: 0;
}

.woocommerce div.product div.images img { display: block; width: 100%; height: auto; }

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

.woocommerce div.product div.images .flex-control-thumbs li {
	width: 5rem;
	margin: 0;
	list-style: none;
}

.woocommerce div.product div.images .flex-control-thumbs img {
	border-radius: var(--bo-radius-sm);
	border: 2px solid transparent;
	cursor: pointer;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

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

.woocommerce-product-gallery { position: relative; }

.woocommerce-product-gallery__trigger {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 3;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--bo-white);
	color: var(--bo-ink);
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	box-shadow: 0 1px 2px rgba(20, 27, 22, 0.08), 0 6px 16px rgba(20, 27, 22, 0.12);
}

/* Prices, ratings, stock ------------------------------------------------ */

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: 0;
	font-size: 1.75rem;
	font-weight: 700;
	color: var(--bo-ink);
}

.woocommerce div.product p.price del { font-size: 1.25rem; font-weight: 400; color: var(--bo-ink-50); margin-right: 0.5rem; }
.woocommerce div.product p.price ins { text-decoration: none; }

.woocommerce .star-rating {
	position: relative;
	display: inline-block;
	width: 5.4em;
	height: 1em;
	line-height: 1;
	overflow: hidden;
	font-size: 0.875rem;
	font-family: star;
	color: var(--bo-accent);
}

.woocommerce .star-rating::before,
.woocommerce .star-rating span::before { content: "\73\73\73\73\73"; letter-spacing: 0.08em; }
.woocommerce .star-rating::before { color: var(--bo-line-2); position: absolute; left: 0; top: 0; }
.woocommerce .star-rating span { position: absolute; left: 0; top: 0; overflow: hidden; padding-top: 1.5em; }
.woocommerce .star-rating span::before { position: absolute; left: 0; top: 0; }

.woocommerce .woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: 0.625rem;
	font-size: 0.875rem;
	color: var(--bo-ink-70);
}

.woocommerce .woocommerce-product-rating a { color: var(--bo-ink-70); }

.stock.in-stock, .stock.available-on-backorder { color: var(--bo-accent); font-weight: 600; }
.stock.out-of-stock { color: var(--bo-ink-50); font-weight: 600; }

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

#reviews { margin-top: 4rem; }
#reviews h2, #reviews h3 { font-size: 1.5rem; }
.woocommerce #reviews #comments ol.commentlist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.5rem; }
.woocommerce #reviews #comments ol.commentlist li .comment-text { padding: 1.5rem; border-radius: var(--bo-radius-lg); background: var(--bo-surface); }
.woocommerce #reviews .comment-reply-title { font-weight: 600; }
.woocommerce #review_form .comment-form > p { margin-bottom: 1rem; }
.woocommerce p.stars a { color: var(--bo-accent); }

/* Related / upsells ----------------------------------------------------- */

.woocommerce .related,
.woocommerce .upsells,
.woocommerce .cross-sells { margin-top: 4rem; }

.woocommerce .related > h2,
.woocommerce .upsells > h2,
.woocommerce .cross-sells > h2 { margin-bottom: 2rem; }

/* My account ------------------------------------------------------------ */

/* The two-column dashboard only applies once there is a navigation column to
   put in it. Logged out, this page is just a heading and the login form, and
   the grid pushed the heading into the empty second column. */
.woocommerce-account.logged-in .woocommerce {
	display: grid;
	grid-template-columns: minmax(min(14rem, 100%), 14rem) minmax(0, 1fr);
	gap: 2rem 3rem;
	align-items: start;
	margin-top: 2rem;
}

.woocommerce-account:not(.logged-in) .woocommerce {
	margin-top: 2rem;
}

.woocommerce-account:not(.logged-in) .woocommerce > h2 {
	max-width: 28rem;
}

/* Woo's reveal-password toggle gets its eye icon from the stylesheet this theme
   dequeues, so without one it renders as a bare 16x6 stub under the field. */
.password-input {
	position: relative;
	display: block;
}

.password-input .input-text {
	width: 100%;
	padding-right: 2.75rem;
}

.show-password-input {
	position: absolute;
	top: 50%;
	right: 0.5rem;
	transform: translateY(-50%);
	width: 2rem;
	height: 2rem;
	padding: 0;
	border: 0;
	border-radius: var(--bo-radius-pill);
	background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23141b16' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / 1.25rem no-repeat;
	cursor: pointer;
	opacity: 0.55;
}

.show-password-input:hover { opacity: 1; }

.show-password-input.display-password {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%231f4a33' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7-10-7-10-7Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='m3 3 18 18'/%3E%3C/svg%3E");
	opacity: 1;
}

@media (min-width: 48em) {
	.woocommerce-account.logged-in .woocommerce-MyAccount-content { min-width: 0; }
}

.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.25rem; }
.woocommerce-MyAccount-navigation a { display: flex; align-items: center; min-height: 2.75rem; padding: 0 1rem; border-radius: var(--bo-radius-pill); color: var(--bo-ink); text-decoration: none; font-weight: 600; }
.woocommerce-MyAccount-navigation a:hover { background: var(--bo-surface-2); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--bo-ink); color: var(--bo-white); }

.woocommerce-form-login,
.woocommerce-form-register {
	max-width: 28rem;
	padding: 1.75rem;
	border-radius: var(--bo-radius-lg);
	background: var(--bo-surface);
}

/* Tables (orders, downloads) -------------------------------------------- */

.woocommerce table.shop_table {
	width: 100%;
	border-collapse: collapse;
	border: 0;
	font-size: 0.9375rem;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 0.875rem 0.75rem;
	text-align: left;
	border: 0;
	border-bottom: 1px solid var(--bo-line);
}

.woocommerce table.shop_table thead th {
	font-family: var(--bo-font-display);
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--bo-accent);
}

/* Select2, used by checkout country fields ------------------------------ */

.select2-container--default .select2-selection--single {
	height: 3rem;
	display: flex;
	align-items: center;
	border: 1px solid var(--bo-line-2);
	border-radius: var(--bo-radius-sm);
}

.select2-container--default .select2-selection--single .select2-selection__rendered { padding: 0; color: var(--bo-ink); line-height: 1.5; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; right: 0.75rem; }
.select2-dropdown { border-color: var(--bo-line-2); border-radius: var(--bo-radius-sm); }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--bo-accent); }

/* Password strength, form hints ----------------------------------------- */

.woocommerce-password-strength { font-size: 0.8125rem; padding: 0.375rem 0; }
.woocommerce-password-strength.strong { color: var(--bo-accent); }
.woocommerce-password-strength.short,
.woocommerce-password-strength.bad { color: var(--bo-error); }

.woocommerce form .form-row.woocommerce-invalid input.input-text { border-color: var(--bo-error); }
.woocommerce form .form-row label.inline { display: inline-flex; align-items: center; gap: 0.5rem; }

/* The blockUI overlay Woo throws over the cart while it updates */
.blockUI.blockOverlay { background: var(--bo-white) !important; opacity: 0.6 !important; }

/* Woo injects its own "View cart" link beside an AJAX add button. The toast
   and the drawer already offer that, and the link breaks the card layout. */
.woocommerce a.added_to_cart { display: none !important; }

/* Woo marks the button itself while the request is in flight. */
.bo-icon-btn.loading { opacity: 0.6; pointer-events: none; }
.bo-icon-btn.added { background: var(--bo-ink); color: var(--bo-white); }

/* Cart, checkout and account pages run through page.php but must not pick up
   the prose measure — they lay out across the full container. */
.bo-shop-page { max-width: none; }
.bo-shop-page > .woocommerce { width: 100%; }

/* Collapsible categories in the mobile drawer need a visible affordance —
   without one a <summary> reads as a plain link. */
.bo-mobile-nav__list summary::after {
	content: "";
	flex-shrink: 0;
	width: 0.875rem;
	height: 0.875rem;
	margin-left: auto;
	background: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231f4a33' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s ease;
}

.bo-mobile-nav__list details[open] summary::after { transform: rotate(180deg); }
.bo-mobile-nav__list details[open] { padding-bottom: 0.5rem; }
