/**
 * BioMyst single product.
 * Desktop transcribed from design-reference/product-desktop.html,
 * mobile (<=860px) from design-reference/product-mobile.html.
 */

/* ------------------------------------------------------------------ *
 * Breadcrumb
 * ------------------------------------------------------------------ */

.bm-crumbs {
	font-family: var(--bm-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	color: var(--bm-text-muted);
	padding: 22px 0 20px;
}

.bm-crumbs a {
	color: var(--bm-text-muted);
}

.bm-crumbs a:hover {
	color: var(--bm-text-mid);
}

.bm-crumbs__current {
	color: var(--bm-text-mid);
}

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

.bm-product__hero {
	display: flex;
	flex-wrap: wrap;
	gap: clamp(24px, 4vw, 48px);
	align-items: flex-start;
}

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

.bm-gallery {
	flex: 1 1 380px;
	min-width: 300px;
	position: sticky;
	top: 88px;
}

.bm-gallery__card {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-4xl);
	overflow: hidden;
	box-shadow: var(--bm-shadow-gallery);
}

.bm-gallery__main {
	height: clamp(340px, 42vw, 460px);
	/* Same lab gradient as .bm-imgframe, re-centred to the hero's 38%. */
	background: radial-gradient(circle at 50% 38%, #F4FAFC, #E7F1F5);
}

/* Dot grid sits over the gradient and under the product shot. */
.bm-gallery__main::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(18, 175, 203, 0.10) 1px, transparent 1.5px);
	background-size: 24px 24px;
	pointer-events: none;
}

.bm-purity-badge--hero {
	top: 16px;
	left: 16px;
	font-size: 10px;
	letter-spacing: 0.1em;
	padding: 5px 10px;
}

/* Floating controls — mobile only (the design drops the header bar there). */
.bm-gallery__controls {
	display: none;
	position: absolute;
	top: 16px;
	left: 16px;
	right: 16px;
	z-index: 3;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
}

.bm-gallery__controls-right {
	display: flex;
	align-items: center;
	gap: 10px;
}

.bm-gallery__ctrl {
	position: relative;
	width: 40px;
	height: 40px;
	border: none;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	box-shadow: var(--bm-shadow-row);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	flex: none;
}

.bm-gallery__dots {
	display: none;
	position: absolute;
	left: 50%;
	bottom: 16px;
	transform: translateX(-50%);
	z-index: 3;
	gap: 6px;
}

.bm-gallery__dot {
	width: 6px;
	height: 6px;
	border: none;
	border-radius: 3px;
	padding: 0;
	background: rgba(12, 34, 48, 0.25);
	cursor: pointer;
	transition: width var(--bm-t), background var(--bm-t);
}

.bm-gallery__dot.is-active {
	width: 18px;
	background: var(--bm-teal);
}

.bm-gallery__thumbs {
	display: flex;
	gap: 10px;
	margin-top: 12px;
}

.bm-gallery__thumb {
	flex: 1;
	height: 76px;
	border: 1px solid var(--bm-border-strong);
	border-radius: var(--bm-r-xl);
	overflow: hidden;
	position: relative;
	background: var(--bm-surface);
	padding: 0;
	cursor: pointer;
	transition: border-color var(--bm-t);
}

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

.bm-gallery__thumb.is-active,
.bm-gallery__thumb:hover {
	border-color: var(--bm-teal);
}

/* ------------------------------------------------------------------ *
 * Buy panel
 * ------------------------------------------------------------------ */

.bm-buy {
	flex: 1 1 400px;
	min-width: 300px;
	padding-top: 4px;
}

.bm-buy__kicker {
	font-family: var(--bm-mono);
	font-size: 11px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bm-teal);
	margin-bottom: 10px;
}

/* Desktop kicker is "Research peptide"; the category half is mobile-only. */
.bm-buy__kicker-cat {
	display: none;
}

.bm-buy__title {
	font-size: clamp(30px, 4vw, 42px);
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.05;
	margin: 0 0 10px;
}

.bm-buy__desc {
	font-size: 15px;
	color: var(--bm-text-soft);
	line-height: 1.6;
	max-width: 460px;
	margin-bottom: 18px;
}

.bm-buy__rating {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 22px;
}

.bm-buy__reviews {
	font-size: 13px;
	color: var(--bm-text-soft-2);
}

/* Star row: grey base with a teal overlay clipped to the average. */
.bm-stars {
	position: relative;
	display: inline-block;
	width: 5.4em;
	height: 1em;
	font-size: 14px;
	line-height: 1;
	overflow: hidden;
	flex: none;
}

.bm-stars::before,
.bm-stars__fill::before {
	content: '★★★★★';
	position: absolute;
	top: 0;
	left: 0;
	letter-spacing: 3px;
	white-space: nowrap;
}

.bm-stars::before {
	color: var(--bm-border-strong);
}

.bm-stars__fill {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	overflow: hidden;
}

.bm-stars__fill::before {
	color: var(--bm-teal);
}

/* ---- Price ---- */

.bm-price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
	margin-bottom: 24px;
}

.bm-price__now {
	font-size: 34px;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.bm-price__compare {
	font-size: 15px;
	color: var(--bm-text-strike);
	text-decoration: line-through;
}

.bm-price__save {
	font-family: var(--bm-mono);
	font-size: 11px;
	color: var(--bm-teal-hover);
	background: var(--bm-teal-tint-12);
	padding: 4px 9px;
	border-radius: var(--bm-r-sm);
}

.bm-price [hidden] {
	display: none;
}

/* ---- Dosage variants ---- */

.bm-dosage__label {
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bm-text-label);
	margin-bottom: 10px;
}

.bm-dosage__label [data-bm-active-dosage] {
	color: var(--bm-ink);
}

.bm-dosage__cards {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 22px;
}

.bm-variant {
	position: relative;
	flex: 1 1 118px;
	min-width: 110px;
	padding: 14px 14px 12px;
	border: 1px solid var(--bm-border-strong);
	border-radius: 13px;
	background: var(--bm-surface);
	cursor: pointer;
	transition: border-color var(--bm-t), box-shadow var(--bm-t);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.bm-variant.is-selected {
	border: 2px solid var(--bm-teal);
	box-shadow: 0 0 0 3px var(--bm-teal-tint-12);
}

.bm-variant.is-disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

.bm-variant__label {
	font-size: 15px;
	font-weight: 600;
}

.bm-variant__price {
	font-size: 13px;
	color: var(--bm-text-soft-2);
	margin-top: 2px;
}

.bm-variant__stock {
	font-size: 10px;
	letter-spacing: 0.05em;
	margin-top: 8px;
}

.bm-variant__check {
	display: none;
	position: absolute;
	top: 8px;
	right: 8px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--bm-teal);
	align-items: center;
	justify-content: center;
}

/* biomyst.js only toggles .is-selected, so the dot is revealed rather than injected. */
.bm-variant.is-selected .bm-variant__check {
	display: flex;
}

/* ---- Qty + add ---- */

.bm-buy__actions {
	display: flex;
	gap: 12px;
	margin-bottom: 14px;
}

.bm-qty {
	display: flex;
	align-items: center;
	border: 1px solid var(--bm-border-strong);
	border-radius: var(--bm-r-lg);
	background: var(--bm-surface);
	overflow: hidden;
	flex: none;
}

.bm-qty__btn {
	width: 44px;
	height: 52px;
	border: none;
	background: none;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	font-size: 20px;
	color: var(--bm-text-soft);
	user-select: none;
	padding: 0;
	transition: background var(--bm-t);
}

.bm-qty__btn:hover {
	background: #F4F8FA;
}

.bm-qty__input,
input[type="number"].bm-qty__input {
	width: 40px;
	height: 52px;
	padding: 0;
	border: none;
	border-radius: 0;
	background: none;
	text-align: center;
	font-size: 16px;
	font-weight: 600;
	color: var(--bm-ink);
	-moz-appearance: textfield;
	appearance: textfield;
}

.bm-qty__input:focus {
	box-shadow: none;
	border: none;
}

.bm-qty__input::-webkit-outer-spin-button,
.bm-qty__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.bm-add {
	flex: 1;
	height: 52px;
	background: var(--bm-teal);
	color: #fff;
	border: none;
	border-radius: var(--bm-r-lg);
	font-family: inherit;
	font-weight: 600;
	font-size: 15px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	transition: background var(--bm-t);
}

.bm-add:hover:not(:disabled) {
	background: var(--bm-teal-hover);
}

.bm-add:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}

/* ---- COA ---- */

.bm-coa {
	border-radius: var(--bm-r-lg);
	margin-bottom: 22px;
}

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

.bm-trust {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-top: 20px;
	border-top: 1px solid #E4EBEF;
}

/* ---- Mobile-only blocks ---- */

.bm-accordions,
.bm-compliance-note {
	display: none;
}

/* ------------------------------------------------------------------ *
 * Analytical data
 * ------------------------------------------------------------------ */

.bm-analytical {
	margin-top: clamp(44px, 6vw, 72px);
}

.bm-analytical__title {
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 600;
	letter-spacing: -0.02em;
	margin: 0 0 24px;
}

.bm-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
	margin-bottom: 16px;
}

.bm-stat {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-2xl);
	padding: 18px;
}

.bm-stat__label {
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bm-text-muted);
	margin-bottom: 9px;
}

.bm-stat__value {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
	overflow-wrap: anywhere;
}

.bm-stat__unit {
	font-size: 14px;
	font-weight: 500;
	color: var(--bm-text-muted);
}

.bm-panels {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.bm-chart,
.bm-spec {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-3xl);
	padding: 20px;
}

.bm-chart {
	flex: 1 1 340px;
	min-width: 300px;
}

.bm-spec {
	flex: 1 1 300px;
	min-width: 280px;
}

.bm-chart__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 14px;
}

.bm-chart__title,
.bm-spec__title {
	font-size: 15px;
	font-weight: 600;
}

.bm-spec__title {
	margin-bottom: 14px;
}

.bm-chart__batch {
	font-family: var(--bm-mono);
	font-size: 10px;
	color: var(--bm-text-muted);
	white-space: nowrap;
}

.bm-chart__body {
	height: 200px;
	border: 1px solid var(--bm-border-faintest);
	border-radius: var(--bm-r-xl);
	overflow: hidden;
	position: relative;
	background: #FBFDFE;
	display: flex;
	align-items: center;
	justify-content: center;
}

.bm-chart__img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.bm-chart__empty {
	margin: 0;
	font-size: 12.5px;
	color: var(--bm-text-muted);
	text-align: center;
	padding: 0 16px;
}

.bm-spec__rows {
	display: flex;
	flex-direction: column;
}

.bm-spec__row {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	padding: 11px 0;
	border-bottom: 1px solid var(--bm-border-faint);
}

.bm-spec__row:last-child {
	border-bottom: none;
}

.bm-spec__label {
	font-size: 13.5px;
	color: var(--bm-text-soft-2);
	flex: none;
}

.bm-spec__value {
	font-size: 13px;
	color: var(--bm-ink);
	text-align: right;
}

.bm-spec__value--mono {
	font-family: var(--bm-mono);
	font-size: 12px;
	max-width: 180px;
}

/* Real sequences run far longer than the design's 15-char example. */
.bm-spec__value--seq {
	overflow-wrap: anywhere;
	line-height: 1.5;
}

.bm-spec__value sub {
	font-size: 0.75em;
}

/* ------------------------------------------------------------------ *
 * Compliance band (product page runs the fuller treatment)
 * ------------------------------------------------------------------ */

.bm-product .bm-compliance--boxed {
	margin: clamp(40px, 5vw, 60px) 0 0;
	padding: clamp(24px, 4vw, 36px);
}

.bm-product .bm-compliance--boxed::before {
	background-image: radial-gradient(rgba(18, 175, 203, 0.18) 1px, transparent 1.5px);
	background-size: 26px 26px;
}

.bm-product .bm-compliance--boxed .bm-compliance__body {
	max-width: 640px;
}

.bm-product .bm-compliance--boxed .bm-compliance__lede {
	font-size: clamp(17px, 2.4vw, 21px);
	margin-bottom: 12px;
}

.bm-product .bm-compliance--boxed .bm-compliance__note {
	font-size: 13.5px;
}

.bm-product__spacer {
	height: 56px;
}

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

.bm-reviews {
	margin-top: clamp(44px, 6vw, 72px);
}

.bm-reviews #reviews {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-3xl);
	padding: clamp(20px, 3vw, 28px);
}

.bm-reviews .woocommerce-Reviews-title {
	font-size: clamp(20px, 2.6vw, 24px);
	font-weight: 600;
	letter-spacing: -0.02em;
	margin: 0 0 18px;
}

.bm-reviews .commentlist {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.bm-reviews .commentlist li {
	list-style: none;
}

.bm-reviews .comment_container {
	display: flex;
	gap: 14px;
}

.bm-reviews .comment_container img.avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	flex: none;
}

.bm-reviews .comment-text {
	flex: 1;
	min-width: 0;
	border: 1px solid var(--bm-border-faint);
	border-radius: var(--bm-r-xl);
	padding: 14px 16px;
}

.bm-reviews .woocommerce-review__author {
	font-size: 14px;
	font-weight: 600;
}

.bm-reviews .woocommerce-review__dash {
	color: var(--bm-text-muted);
	margin: 0 4px;
}

.bm-reviews .woocommerce-review__published-date {
	font-family: var(--bm-mono);
	font-size: 11px;
	color: var(--bm-text-muted);
}

.bm-reviews .woocommerce-review__verified {
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	color: var(--bm-teal-hover);
}

.bm-reviews .description {
	margin-top: 8px;
	font-size: 14px;
	color: var(--bm-text-soft);
	line-height: 1.65;
}

/* Woo's own star technique: the inline-width span clips a teal overlay. */
.bm-reviews .star-rating {
	position: relative;
	display: inline-block;
	width: 5.4em;
	height: 1em;
	font-family: var(--bm-font);
	font-size: 13px;
	line-height: 1;
	overflow: hidden;
	margin-bottom: 6px;
}

.bm-reviews .star-rating::before,
.bm-reviews .star-rating span::before {
	content: '★★★★★';
	position: absolute;
	top: 0;
	left: 0;
	letter-spacing: 3px;
	white-space: nowrap;
}

.bm-reviews .star-rating::before {
	color: var(--bm-border-strong);
}

.bm-reviews .star-rating span {
	position: absolute;
	top: 0;
	left: 0;
	height: 100%;
	overflow: hidden;
	padding-top: 1.5em;
}

.bm-reviews .star-rating span::before {
	color: var(--bm-teal);
}

.bm-reviews #review_form_wrapper {
	border-top: 1px solid var(--bm-border-faint);
	padding-top: 22px;
}

.bm-reviews .comment-reply-title {
	display: block;
	font-size: 16px;
	font-weight: 600;
	margin-bottom: 14px;
}

.bm-reviews .comment-form label {
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bm-text-label);
	margin-bottom: 7px;
	display: block;
}

.bm-reviews .comment-form .required {
	color: var(--bm-error);
}

.bm-reviews .comment-form p {
	margin: 0 0 14px;
}

.bm-reviews .comment-form-rating select {
	max-width: 240px;
}

.bm-reviews .comment-form .form-submit {
	margin-bottom: 0;
}

.bm-reviews .comment-form input[type="submit"] {
	height: 48px;
	padding: 0 28px;
	background: var(--bm-teal);
	color: #fff;
	border: none;
	border-radius: var(--bm-r-lg);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	width: auto;
	transition: background var(--bm-t);
}

.bm-reviews .comment-form input[type="submit"]:hover {
	background: var(--bm-teal-hover);
}

.bm-reviews .comment-form-cookies-consent {
	display: flex;
	align-items: center;
	gap: 9px;
}

.bm-reviews .comment-form-cookies-consent label {
	font-family: var(--bm-font);
	font-size: 13px;
	letter-spacing: normal;
	text-transform: none;
	color: var(--bm-text-soft);
	margin: 0;
}

.bm-reviews .comment-form-cookies-consent input {
	width: 16px;
	flex: none;
}

/* ------------------------------------------------------------------ *
 * Related products (design's bestseller card)
 * ------------------------------------------------------------------ */

.bm-related {
	margin-top: clamp(44px, 6vw, 72px);
}

.bm-related__title {
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 600;
	letter-spacing: -0.02em;
	margin: 0 0 22px;
}

/* auto-fill (not auto-fit) so a lone related product keeps card width. */
.bm-related__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 16px;
}

.bm-pcard {
	display: flex;
	flex-direction: column;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-3xl);
	overflow: hidden;
	color: inherit;
	transition: box-shadow var(--bm-t), border-color var(--bm-t);
}

.bm-pcard:hover {
	box-shadow: var(--bm-shadow-card);
	border-color: #D6E1E6;
	color: inherit;
}

.bm-pcard__img {
	aspect-ratio: 1;
}

.bm-pcard__body {
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}

.bm-pcard__name {
	font-size: 16px;
	font-weight: 600;
	letter-spacing: -0.01em;
}

.bm-pcard__meta {
	font-family: var(--bm-mono);
	font-size: 11px;
	color: var(--bm-text-muted);
	margin-top: 2px;
}

.bm-pcard__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: auto;
	padding-top: 2px;
}

.bm-pcard__price {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.bm-pcard__price del {
	font-size: 14px;
	font-weight: 500;
	color: var(--bm-text-strike);
	margin-right: 6px;
}

.bm-pcard__price ins {
	text-decoration: none;
}

.bm-pcard__cta {
	height: 34px;
	padding: 0 16px;
	background: var(--bm-ink);
	color: #fff;
	border-radius: var(--bm-r-md);
	font-weight: 600;
	font-size: 12.5px;
	display: flex;
	align-items: center;
	gap: 6px;
	flex: none;
	transition: background var(--bm-t);
}

.bm-pcard:hover .bm-pcard__cta {
	background: var(--bm-teal);
}

/* ------------------------------------------------------------------ *
 * Mobile (product-mobile.html)
 * ------------------------------------------------------------------ */

@media (max-width: 860px) {

	/* The design replaces the header bar with floating controls over the hero. */
	.single-product .bm-header {
		display: none;
	}

	/* Room for the sticky buy bar. */
	.single-product {
		padding-bottom: 92px;
	}

	.bm-crumbs {
		display: none;
	}

	.bm-product__hero {
		gap: 0;
	}

	/* ---- Full-bleed hero ---- */

	.bm-gallery {
		flex: 1 1 100%;
		min-width: 0;
		position: static;
		margin-left: calc(-1 * var(--bm-gutter));
		margin-right: calc(-1 * var(--bm-gutter));
	}

	.bm-gallery__card {
		border: none;
		border-radius: 0;
		box-shadow: none;
		background: none;
	}

	.bm-gallery__main {
		height: 400px;
		background: radial-gradient(circle at 50% 35%, #F4FAFC, #E2EEF2);
	}

	.bm-gallery__controls,
	.bm-gallery__dots {
		display: flex;
	}

	.bm-gallery__thumbs {
		display: none;
	}

	/* Clears the floating controls; inverted against the photo. */
	.bm-purity-badge--hero {
		top: 68px;
		background: var(--bm-surface);
		color: var(--bm-ink);
	}

	/* ---- Content sheet ---- */

	.bm-buy {
		flex: 1 1 100%;
		min-width: 0;
		position: relative;
		z-index: 1;
		margin-top: -22px;
		margin-left: calc(-1 * var(--bm-gutter));
		margin-right: calc(-1 * var(--bm-gutter));
		border-radius: 24px 24px 0 0;
		background: var(--bm-bg);
		padding: 22px 20px 24px;
		display: flex;
		flex-direction: column;
	}

	.bm-buy__kicker  { order: 1; }
	.bm-buy__title   { order: 2; }
	.bm-buy__rating  { order: 3; }
	.bm-buy__desc    { order: 4; }
	.bm-buy__form    { order: 5; }
	.bm-coa          { order: 6; }
	.bm-accordions   { order: 7; }
	.bm-trust        { order: 8; }
	.bm-compliance-note { order: 9; }

	/* Price lives in the dosage cards and the sticky "Add · $x" button here. */
	.bm-price {
		display: none;
	}

	/* The desktop COA button is otherwise hidden on mobile, which buried the
	   download as a text link inside the accordion. Keep it here as an obvious,
	   tappable full-width button right under the buy form. */
	.bm-coa {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 8px;
		width: 100%;
		margin: 2px 0 6px;
	}

	.bm-buy__kicker {
		font-size: 10px;
	}

	.bm-buy__kicker-cat {
		display: inline;
	}

	.bm-buy__title {
		font-size: 30px;
		margin-bottom: 8px;
	}

	.bm-buy__rating {
		margin-bottom: 10px;
	}

	.bm-buy__desc {
		font-size: 13.5px;
		max-width: none;
		margin-bottom: 20px;
	}

	.bm-buy__reviews {
		font-size: 12.5px;
	}

	.bm-stars {
		font-size: 13px;
	}

	/* ---- Dosage cards ---- */

	.bm-variant {
		flex: 1 1 0;
		min-width: 0;
		padding: 12px 10px 11px;
		align-items: center;
		text-align: center;
	}

	.bm-variant__price {
		font-size: 12px;
	}

	.bm-variant__check {
		width: 15px;
		height: 15px;
		top: 6px;
		right: 6px;
	}

	/* ---- Sticky buy bar ---- */

	.bm-buy__actions {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 40;
		margin: 0;
		gap: 10px;
		padding: 12px 16px 20px;
		background: rgba(255, 255, 255, 0.94);
		backdrop-filter: blur(12px);
		-webkit-backdrop-filter: blur(12px);
		border-top: 1px solid var(--bm-border-header);
	}

	.bm-qty__btn {
		width: 38px;
		height: 48px;
	}

	.bm-qty__input,
	input[type="number"].bm-qty__input {
		width: 30px;
		height: 48px;
		font-size: 15px;
	}

	.bm-add {
		height: 52px;
		border-radius: 13px;
	}

	/* Clears the sticky bar. */
	.bm-toast {
		bottom: 96px;
	}

	/* ---- Accordions ---- */

	.bm-accordions {
		display: flex;
		flex-direction: column;
		gap: 10px;
		margin-bottom: 22px;
	}

	.bm-accordion {
		background: var(--bm-surface);
		border: 1px solid var(--bm-border);
		border-radius: var(--bm-r-2xl);
		overflow: hidden;
	}

	.bm-accordion__head {
		width: 100%;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		padding: 15px 16px;
		border: none;
		background: none;
		cursor: pointer;
		text-align: left;
	}

	.bm-accordion__title {
		font-size: 14px;
		font-weight: 600;
		color: var(--bm-ink);
	}

	.bm-accordion__chevron {
		flex: none;
		transition: transform 0.2s ease;
	}

	.bm-accordion.is-open .bm-accordion__chevron {
		transform: rotate(180deg);
	}

	.bm-accordion__body {
		padding: 0 16px 16px;
		font-size: 12.5px;
		color: var(--bm-text-soft);
		line-height: 1.6;
	}

	/* ---- Trust + compliance ---- */

	.bm-trust {
		gap: 10px;
		padding-top: 18px;
	}

	.bm-trust-row {
		font-size: 12.5px;
		gap: 10px;
	}

	.bm-check {
		width: 24px;
		height: 24px;
		border-radius: 7px;
	}

	.bm-compliance-note {
		display: block;
		font-family: var(--bm-mono);
		font-size: 9.5px;
		line-height: 1.5;
		color: #9DAAB1;
		margin: 18px 0 0;
	}

	/* Desktop-only blocks. */
	.bm-analytical,
	.bm-product .bm-compliance--boxed {
		display: none;
	}

	.bm-product__spacer {
		height: 24px;
	}
}

/* ------------------------------------------------------------------ *
 * Certificates of analysis section (shown on every viewport)
 * ------------------------------------------------------------------ */

.bm-coas {
	margin-top: clamp(36px, 5vw, 60px);
}

.bm-coas__title {
	font-size: clamp(22px, 3vw, 28px);
	font-weight: 600;
	letter-spacing: -0.02em;
	margin: 0 0 8px;
}

.bm-coas__intro {
	font-size: 14px;
	line-height: 1.6;
	color: var(--bm-text-soft);
	max-width: 620px;
	margin: 0 0 20px;
}

.bm-coas__list {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.bm-coas__item {
	display: flex;
	align-items: center;
	gap: 14px;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-2xl);
	padding: 14px 16px;
	transition: box-shadow var(--bm-t), border-color var(--bm-t);
}

.bm-coas__item:hover {
	box-shadow: var(--bm-shadow-row);
	border-color: #D6E1E6;
}

.bm-coas__icon {
	width: 40px;
	height: 40px;
	border-radius: var(--bm-r-lg);
	background: var(--bm-teal-tint);
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
}

.bm-coas__info {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.bm-coas__batch {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--bm-ink);
}

.bm-coas__sub {
	font-family: var(--bm-mono);
	font-size: 11.5px;
	color: var(--bm-text-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.bm-coas__dl {
	flex: none;
	gap: 7px;
}

.bm-coas__lookup {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bm-teal);
}

.bm-coas__lookup:hover {
	color: var(--bm-teal-hover);
}

@media (max-width: 520px) {
	.bm-coas__item {
		flex-wrap: wrap;
	}

	.bm-coas__dl {
		width: 100%;
		justify-content: center;
	}
}

/* ---------------------------------------------------------------------------
   Bulk Pricing Tiers plugin — blend its tier picker + BOGO banner into the
   BioMyst buy panel. The plugin exposes --bpt-* / --bpt-bogo-* custom
   properties for exactly this, so we bind them to the theme's design tokens
   instead of overriding rules. Loaded only on product pages (product.css).
   --------------------------------------------------------------------------- */

/* Auto-tiered: the native quantity stepper stays visible and is the real
   quantity; the tier tiles are a "buy more, save more" ladder + quick-fill that
   auto-selects based on the quantity. (Stepper no longer hidden.) */
.bm-buy .bpt-tiers {
	--bpt-accent:        var(--bm-ink);
	--bpt-accent-text:   #ffffff;
	--bpt-border:        var(--bm-border-strong);
	--bpt-border-strong: var(--bm-teal);
	--bpt-text:          var(--bm-text);
	--bpt-text-muted:    var(--bm-text-soft);
	--bpt-bg:            var(--bm-surface);
	--bpt-bg-hover:      var(--bm-surface-sunken);
	--bpt-save-bg:       var(--bm-teal-tint);
	--bpt-save-fg:       var(--bm-teal-hover);
	--bpt-stack-bg:      var(--bm-surface-sunken);
	--bpt-radius:        var(--bm-r-lg);
	--bpt-radius-pill:   999px;
	margin: 2px 0 4px;
	font-family: var(--bm-font);
}

.bm-buy .bpt-tiers .bpt-tier { min-height: 62px; }
.bm-buy .bpt-tiers .bpt-tier.is-active { box-shadow: var(--bm-focus-ring); }
.bm-buy .bpt-tiers .bpt-tier:focus-visible { outline-color: var(--bm-teal); }

/* BOGO banner renders above the form (inside .bm-buy) via
   woocommerce_before_add_to_cart_form. */
.bm-buy .bpt-bogo-banner {
	--bpt-bogo-bg-from: var(--bm-teal-tint-12);
	--bpt-bogo-bg-to:   var(--bm-cyan-tint);
	--bpt-bogo-accent:  var(--bm-teal-hover);
	--bpt-bogo-text:    var(--bm-ink);
	--bpt-bogo-pill-bg: var(--bm-ink);
	--bpt-bogo-pill-fg: #ffffff;
	border-radius: var(--bm-r-lg);
	font-family: var(--bm-font);
}

/* ================================================================== *
 * Product page v2
 * From design-reference/pdp-v2-desktop.dc.html and pdp-v2-mobile.dc.html
 * (Claude Design project 150a809f). Every value here is an existing token
 * or a figure read off the design; nothing new enters tokens.css.
 *
 * Existing classes (.bm-buy, .bm-buy__actions, .bm-add, .bm-qty) are
 * restyled inside a min-width query so the mobile sheet and sticky bar
 * defined earlier in this file keep working untouched.
 * ================================================================== */

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

.bm-offbadge {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 2;
	background: var(--bm-teal);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1;
	padding: 6px 10px;
	border-radius: 999px;
	/* The badge now carries words ("BOGO + 15% off"), which must stay one pill. */
	white-space: nowrap;
	max-width: calc(100% - 32px);
	overflow: hidden;
	text-overflow: ellipsis;
}

.bm-gallery__chips {
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.bm-gallery__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid #E4EBEF;
	border-radius: 999px;
	padding: 5px 10px;
	font-family: var(--bm-mono);
	font-size: 9.5px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--bm-text-mid);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
}

.bm-gallery__chip--dot::before {
	content: '';
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--bm-teal);
	flex: none;
}

/* A certificate is a document: show all of it, on white, rather than crop it
   the way a product shot is cropped to fill the frame. */
.bm-gallery__main.is-coa {
	background: var(--bm-surface);
}

.bm-gallery__main.is-coa::before,
.bm-gallery__main.is-coa .bm-gallery__chips,
.bm-gallery__main.is-coa .bm-offbadge {
	display: none;
}

.bm-gallery__main.is-coa img {
	object-fit: contain;
	padding: 14px;
}

.bm-gallery__pdf {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: var(--bm-surface);
}

.bm-gallery__pdf iframe {
	width: 100%;
	height: 100%;
	border: 0;
}

.bm-gallery__pdf[hidden],
.bm-gallery__main img[hidden] {
	display: none;
}

/*
 * Fixed squares. The original rule stretched each thumbnail across an equal share
 * of the gallery width (flex: 1), which only looked right with four or more
 * photos; with a photo and a certificate each became a 270x76 letterbox that
 * cropped the product to a sliver.
 */
.bm-gallery__thumb {
	flex: 0 0 76px;
	width: 76px;
	height: 76px;
}

.bm-gallery__thumb--coa {
	background: var(--bm-surface);
}

.bm-gallery__thumb--coa img {
	object-fit: cover;
	object-position: top;
}

.bm-gallery__thumblabel {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1;
	background: var(--bm-teal);
	color: #fff;
	font-family: var(--bm-mono);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-align: center;
	padding: 3px 0;
}

.bm-gallery__thumbdoc {
	position: absolute;
	inset: 0 0 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--bm-text-muted);
}

/* ---- Buy panel: head, chips, offer bar ---------------------------- */

.bm-buy__head {
	margin-bottom: 12px;
}

.bm-buy__head .bm-buy__kicker {
	color: var(--bm-text-muted);
}

.bm-buy__head .bm-buy__title {
	font-weight: 700;
	margin-bottom: 0;
}

.bm-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 14px;
	padding: 0;
	list-style: none;
}

.bm-chip {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	border: 1px solid var(--bm-border-strong);
	border-radius: 999px;
	padding: 4px 10px;
	font-size: 11.5px;
	color: var(--bm-text-mid);
	background: var(--bm-surface);
	line-height: 1.3;
}

.bm-chip--mono {
	font-family: var(--bm-mono);
	font-size: 10.5px;
	letter-spacing: 0.02em;
}

.bm-chip--verified {
	background: var(--bm-teal-tint);
	border-color: rgba(18, 175, 203, 0.3);
	color: var(--bm-teal-hover);
	font-weight: 600;
}

.bm-buy__desc p {
	margin: 0;
}

.bm-offerbar {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 16px;
	margin: 0 0 20px;
	border: 1px solid rgba(18, 175, 203, 0.3);
	border-radius: var(--bm-r-2xl);
	background: linear-gradient(100deg, rgba(18, 175, 203, 0.12), rgba(18, 175, 203, 0.04));
}

.bm-offerbar__icon {
	flex: none;
	width: 38px;
	height: 38px;
	border-radius: 10px;
	background: var(--bm-teal);
	display: flex;
	align-items: center;
	justify-content: center;
}

.bm-offerbar__title {
	margin: 0 0 2px;
	font-size: 14.5px;
	font-weight: 700;
	color: var(--bm-ink);
	line-height: 1.3;
}

.bm-offerbar__sub {
	margin: 0;
	font-size: 12px;
	color: var(--bm-text-soft);
	line-height: 1.45;
}

.bm-label {
	margin: 0 0 10px;
	font-family: var(--bm-mono);
	font-size: 10.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bm-text-muted);
}

.bm-label--inline {
	margin: 0;
}

/* ---- Offer ladder ------------------------------------------------- */

.bm-offers {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 12px;
	margin: 0 0 18px;
}

.bm-offercard {
	position: relative;
	display: grid;
	grid-template-columns: auto auto 1fr;
	grid-template-areas:
		"dot vials body"
		"foot foot foot";
	align-items: center;
	column-gap: 10px;
	padding: 14px 14px 12px;
	border: 1px solid var(--bm-border-input);
	border-radius: var(--bm-r-3xl);
	background: var(--bm-surface);
	cursor: pointer;
	transition: border-color var(--bm-t), background var(--bm-t), box-shadow var(--bm-t);
}

.bm-offercard:hover {
	border-color: var(--bm-border-hover);
}

.bm-offercard.is-selected {
	border-color: var(--bm-teal);
	background: rgba(18, 175, 203, 0.04);
	box-shadow: 0 0 0 1px var(--bm-teal), var(--bm-focus-ring);
}

/* The native radio stays in the tab order and the accessibility tree; the dot
   below is its visible face. */
.bm-offercard__radio {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

.bm-offercard__radio:focus-visible ~ .bm-offercard__dot {
	box-shadow: var(--bm-focus-ring);
}

.bm-offercard__dot {
	grid-area: dot;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 1.5px solid var(--bm-radio-off);
	background: var(--bm-surface);
	position: relative;
	flex: none;
}

.bm-offercard.is-selected .bm-offercard__dot {
	border-color: var(--bm-teal);
}

.bm-offercard.is-selected .bm-offercard__dot::after {
	content: '';
	position: absolute;
	inset: 3px;
	border-radius: 50%;
	background: var(--bm-teal);
}

.bm-offercard__tag {
	position: absolute;
	top: -9px;
	right: 12px;
	background: var(--bm-teal);
	color: #fff;
	font-family: var(--bm-mono);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 3px 7px;
	border-radius: 4px;
}

.bm-offercard__vials {
	grid-area: vials;
	display: flex;
	align-items: flex-end;
}

.bm-vial {
	position: relative;
	width: 22px;
	height: 38px;
	border-radius: 5px;
	border: 1px solid var(--bm-border-strong);
	background: #F4F8FA var(--bm-vial-img, none) center / cover no-repeat;
	flex: none;
}

.bm-vial + .bm-vial {
	margin-left: -7px;
}

.bm-vial.is-free {
	border: 1.5px solid var(--bm-teal);
	box-shadow: 0 0 0 2px var(--bm-surface);
}

.bm-vial__flag {
	position: absolute;
	left: -2px;
	right: -2px;
	bottom: -6px;
	background: var(--bm-teal);
	color: #fff;
	font-family: var(--bm-mono);
	font-size: 6.5px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-align: center;
	line-height: 1;
	padding: 2px 0;
	border-radius: 2px;
}

.bm-offercard__body {
	grid-area: body;
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.bm-offercard__label {
	font-size: 14px;
	font-weight: 700;
	color: var(--bm-ink);
	line-height: 1.25;
}

.bm-offercard__sub {
	font-size: 11.5px;
	color: var(--bm-text-label);
	line-height: 1.35;
	margin-top: 2px;
}

.bm-offercard__foot {
	grid-area: foot;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px;
	margin-top: 12px;
	padding-top: 10px;
	border-top: 1px dashed var(--bm-border-input);
}

.bm-offercard__unit {
	font-size: 12px;
	font-weight: 600;
	color: var(--bm-teal-hover);
	white-space: nowrap;
}

.bm-offercard__prices {
	display: flex;
	align-items: baseline;
	gap: 6px;
	white-space: nowrap;
}

.bm-offercard__prices del {
	font-size: 11.5px;
	color: var(--bm-text-strike);
}

.bm-offercard__prices ins {
	text-decoration: none;
	font-size: 17px;
	font-weight: 700;
	color: var(--bm-ink);
	letter-spacing: -0.01em;
}

/* ---- Quantity row -------------------------------------------------- */

.bm-qtyrow {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0 0 16px;
	flex-wrap: wrap;
}

.bm-qtyrow .bm-qty {
	border-radius: 999px;
}

.bm-qtyrow .bm-qty__btn,
.bm-qtyrow .bm-qty__input,
.bm-qtyrow input[type="number"].bm-qty__input {
	height: 42px;
}

.bm-qtyrow__note {
	margin: 0 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--bm-teal-hover);
}

/* ---- Summary card -------------------------------------------------- */

.bm-summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 18px;
	margin: 0 0 14px;
	border: 1px solid rgba(18, 175, 203, 0.35);
	border-radius: var(--bm-r-3xl);
	background: rgba(18, 175, 203, 0.04);
}

.bm-summary__title {
	margin: 0 0 3px;
	font-size: 15px;
	font-weight: 700;
	color: var(--bm-ink);
}

.bm-summary__sub {
	margin: 0 0 9px;
	font-size: 12px;
	color: var(--bm-text-soft);
}

.bm-summary__chips {
	margin: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}

.bm-tag {
	display: inline-flex;
	align-items: center;
	font-size: 11px;
	font-weight: 600;
	line-height: 1;
	padding: 5px 8px;
	border-radius: 6px;
}

.bm-tag--soft {
	background: var(--bm-teal-tint-14);
	color: var(--bm-teal-hover);
}

.bm-tag--dark {
	background: var(--bm-ink);
	color: #fff;
}

.bm-tag--outline {
	border: 1px solid rgba(18, 175, 203, 0.4);
	color: var(--bm-teal-hover);
	background: var(--bm-surface);
}

.bm-tag[hidden] {
	display: none;
}

.bm-summary__right {
	text-align: right;
	flex: none;
}

.bm-summary__compare {
	display: block;
	font-size: 12px;
	color: var(--bm-text-strike);
}

.bm-summary__total {
	margin: 0;
	font-size: 30px;
	font-weight: 700;
	color: var(--bm-ink);
	letter-spacing: -0.02em;
	line-height: 1.1;
}

.bm-summary__totallabel {
	margin: 2px 0 0;
	font-family: var(--bm-mono);
	font-size: 9.5px;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--bm-text-muted);
}

/* ---- Actions: COA + add ------------------------------------------- */

.bm-coabtn {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	flex: none;
	height: 54px;
	padding: 0 22px;
	border-radius: 999px;
	font-weight: 600;
}

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

.bm-trustrows {
	margin: 0 0 16px;
	padding: 0;
	list-style: none;
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-2xl);
	overflow: hidden;
	background: var(--bm-surface);
}

.bm-trustrow {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 16px;
}

.bm-trustrow + .bm-trustrow {
	border-top: 1px solid var(--bm-border);
}

.bm-trustrow:first-child {
	background: var(--bm-teal-tint-05);
}

.bm-trustrow__icon {
	flex: none;
	color: var(--bm-teal-hover);
	display: flex;
}

.bm-trustrow__text {
	display: flex;
	flex-direction: column;
}

.bm-trustrow__title {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bm-ink);
}

.bm-trustrow__sub {
	font-size: 11.5px;
	color: var(--bm-text-muted);
}

/* ---- Desktop-only restyling of existing controls ------------------ */

@media (min-width: 861px) {

	/* The design sets the buy column in a white card beside the photo. */
	.bm-product .bm-buy {
		background: var(--bm-surface);
		border: 1px solid var(--bm-border);
		border-radius: var(--bm-r-5xl);
		padding: 30px 30px 26px;
		box-shadow: var(--bm-shadow-gallery);
	}

	.bm-product .bm-buy__actions {
		gap: 10px;
		margin-bottom: 14px;
	}

	/* Dark, pill-shaped primary action, as drawn. */
	.bm-product .bm-add {
		height: 54px;
		border-radius: 999px;
		background: var(--bm-ink);
		box-shadow: 0 14px 30px -14px rgba(12, 34, 48, 0.55);
	}

	.bm-product .bm-add:hover:not(:disabled) {
		background: #16323F;
	}
}

/* ---- Frequently bought together ----------------------------------- */

.bm-fbt {
	margin: clamp(36px, 5vw, 56px) 0 0;
	padding: clamp(20px, 3vw, 28px);
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-5xl);
}

.bm-fbt__title,
.bm-faq__title {
	margin: 4px 0 18px;
	font-size: clamp(22px, 2.6vw, 28px);
	font-weight: 700;
	letter-spacing: -0.02em;
}

.bm-fbt__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 12px;
}

.bm-fbtcard {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 12px;
	border: 1px solid var(--bm-border-input);
	border-radius: var(--bm-r-2xl);
	background: var(--bm-surface);
	cursor: pointer;
	transition: border-color var(--bm-t), background var(--bm-t);
}

.bm-fbtcard.is-on {
	border-color: var(--bm-teal);
	background: rgba(18, 175, 203, 0.03);
}

.bm-fbtcard__check {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	width: 18px;
	height: 18px;
	margin: 0;
	accent-color: var(--bm-teal);
	cursor: pointer;
}

.bm-fbtcard__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	border-radius: 10px;
	overflow: hidden;
	background: #F4F8FA;
}

/*
 * biomyst_product_image() wraps the photo in a .bm-imgframe whose <img> is
 * absolutely positioned. That frame has no height of its own, so it must fill
 * this square or the photo renders zero pixels tall.
 */
.bm-fbtcard__media .bm-imgframe {
	position: absolute;
	inset: 0;
}

.bm-fbtcard__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.bm-fbtcard__flag {
	position: absolute;
	top: 10px;
	right: 10px;
	background: var(--bm-teal);
	color: #fff;
	font-family: var(--bm-mono);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 0.1em;
	padding: 3px 7px;
	border-radius: 4px;
}

.bm-fbtcard__body {
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.bm-fbtcard__name {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bm-ink);
}

.bm-fbtcard__dose {
	font-family: var(--bm-mono);
	font-size: 10.5px;
	color: var(--bm-text-muted);
}

.bm-fbtcard__price {
	display: flex;
	align-items: baseline;
	gap: 6px;
	margin-top: 4px;
}

.bm-fbtcard__price del {
	font-size: 11.5px;
	color: var(--bm-text-strike);
}

.bm-fbtcard__price ins {
	text-decoration: none;
	font-size: 14.5px;
	font-weight: 700;
	color: var(--bm-ink);
}

.bm-fbt__foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
	margin-top: 18px;
	padding-top: 16px;
	border-top: 1px solid var(--bm-border);
}

.bm-fbt__sum {
	margin: 0;
	display: flex;
	align-items: baseline;
	gap: 12px;
	flex-wrap: wrap;
	font-size: 13px;
	color: var(--bm-text-soft);
}

.bm-fbt__prices {
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
}

.bm-fbt__prices del {
	font-size: 12.5px;
	color: var(--bm-text-strike);
}

.bm-fbt__prices ins {
	text-decoration: none;
	font-size: 20px;
	font-weight: 700;
	color: var(--bm-ink);
}

.bm-fbt__add {
	border-radius: 999px;
	padding: 0 24px;
	height: 48px;
}

.bm-fbt__add.is-busy {
	opacity: 0.7;
	pointer-events: none;
}

/* ---- Questions ----------------------------------------------------- */

.bm-faq {
	margin: clamp(36px, 5vw, 56px) 0 0;
}

.bm-faq__list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.bm-faq__item {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-2xl);
	overflow: hidden;
}

.bm-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 16px 18px;
	font-size: 14.5px;
	font-weight: 600;
	color: var(--bm-ink);
	cursor: pointer;
	list-style: none;
}

.bm-faq__q::-webkit-details-marker {
	display: none;
}

.bm-faq__chev {
	flex: none;
	width: 9px;
	height: 9px;
	border-right: 1.8px solid var(--bm-text-muted);
	border-bottom: 1.8px solid var(--bm-text-muted);
	transform: rotate(45deg) translate(-2px, -2px);
	transition: transform 0.2s ease;
}

.bm-faq__item[open] .bm-faq__chev {
	transform: rotate(225deg) translate(-2px, -2px);
}

.bm-faq__a {
	padding: 0 18px 16px;
	font-size: 13.5px;
	line-height: 1.65;
	color: var(--bm-text-soft);
}

.bm-faq__a p {
	margin: 0;
}

/* ---- Reassurance grid ---------------------------------------------- */

.bm-trustgrid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: clamp(28px, 4vw, 40px) 0 0;
	padding: 0;
	list-style: none;
}

.bm-trustgrid__cell {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 16px;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-2xl);
}

.bm-trustgrid__icon {
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: var(--bm-teal-tint);
	color: var(--bm-teal-hover);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 8px;
}

.bm-trustgrid__title {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bm-ink);
}

.bm-trustgrid__sub {
	font-size: 11.5px;
	color: var(--bm-text-muted);
}

/* ---- Mobile --------------------------------------------------------- */

@media (max-width: 860px) {

	/* The sheet's children were ordered one by one for the old panel; the new
	   markup is already in the design's order, so the ordering is reset. */
	.bm-product .bm-buy > * {
		order: 0;
	}

	.bm-offbadge {
		top: 68px;
	}

	/* On the full-bleed phone photo the chips sat across the bottle's label. The
	   same facts are in the chips under the title, so the overlay is dropped. */
	.bm-gallery__chips {
		display: none;
	}

	.bm-offers {
		grid-template-columns: 1fr 1fr;
		gap: 10px;
	}

	.bm-offercard {
		grid-template-columns: auto 1fr;
		grid-template-areas:
			"dot vials"
			"body body"
			"foot foot";
		row-gap: 8px;
		padding: 13px 12px 11px;
	}

	.bm-offercard__foot {
		flex-direction: column;
		align-items: flex-start;
		gap: 2px;
		margin-top: 4px;
	}

	.bm-summary {
		align-items: flex-start;
		padding: 14px;
	}

	.bm-summary__total {
		font-size: 24px;
	}

	/* The sticky bar holds one action; the certificate is one swipe away in the
	   gallery, so its button would only crowd the bar. */
	.bm-buy__actions .bm-coabtn {
		display: none;
	}

	.bm-add {
		background: var(--bm-ink);
	}

	.bm-fbt {
		margin-left: calc(-1 * var(--bm-gutter));
		margin-right: calc(-1 * var(--bm-gutter));
		border-radius: 0;
		border-left: 0;
		border-right: 0;
	}

	.bm-fbt__grid {
		grid-template-columns: 1fr;
	}

	.bm-fbtcard {
		flex-direction: row;
		align-items: center;
		padding: 10px 12px 10px 40px;
	}

	.bm-fbtcard__check {
		top: 50%;
		transform: translateY(-50%);
	}

	.bm-fbtcard__media {
		width: 64px;
		flex: none;
	}

	.bm-fbt__add {
		width: 100%;
	}

	.bm-trustgrid {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 400px) {
	.bm-offers {
		grid-template-columns: 1fr;
	}
}

/* ===== Related research compounds rail (inc/related-rail.php) ===== */
body.single-product .bm-site {
	overflow-x: clip;
}
.bm-rail {
	margin: 72px 0 8px;
}
.bm-rail__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 22px;
}
.bm-rail__title {
	margin: 6px 0 0;
	font-size: clamp(24px, 2.4vw, 32px);
	font-weight: 700;
	letter-spacing: -.02em;
	color: var(--bm-ink);
}
.bm-rail__title em {
	font-family: Georgia, "Times New Roman", serif;
	font-weight: 400;
	font-style: italic;
	color: var(--bm-teal-hover);
}
.bm-rail__nav {
	display: flex;
	gap: 8px;
}
.bm-rail__arrow {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border: 1px solid rgba(12, 34, 48, .14);
	border-radius: 50%;
	background: #fff;
	color: var(--bm-ink);
	font-size: 17px;
	cursor: pointer;
	transition: background .2s ease, color .2s ease, opacity .2s ease;
}
.bm-rail__arrow:hover:not(:disabled) {
	background: var(--bm-ink);
	color: #fff;
}
.bm-rail__arrow:disabled {
	opacity: .35;
	cursor: default;
}
.bm-rail.is-not-scrollable .bm-rail__nav {
	display: none;
}
/* Full-bleed track: the row spans the whole screen, edge to edge, so it sits
   centred on the page instead of starting at the content column and running
   off to the right. */
.bm-rail__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: 214px;
	gap: 14px;
	margin: 0 calc(50% - 50vw);
	padding: 4px 20px 18px;
	list-style: none;
	overflow-x: auto;
	scrollbar-width: none;
}
.bm-rail__track::-webkit-scrollbar {
	display: none;
}
/* Few enough cards to fit: centre them. */
.bm-rail.is-not-scrollable .bm-rail__track {
	justify-content: center;
}
.bm-rail__card {
	--tint: #e6f2f5;
	position: relative;
	display: flex;
	flex-direction: column;
	margin: 0;
	border: 1px solid rgba(12, 34, 48, .08);
	border-radius: 16px;
	background: #fff;
	overflow: hidden;
	transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s ease;
}
.bm-rail__card:hover {
	transform: translateY(-4px);
	box-shadow: 0 16px 34px -22px rgba(12, 34, 48, .5);
}
.bm-rail__card--mint { --tint: #dcefe9; }
.bm-rail__card--lav  { --tint: #e4e2f3; }
.bm-rail__card--sand { --tint: #f1eadb; }
.bm-rail__card--sky  { --tint: #dceaf4; }
.bm-rail__card--rose { --tint: #f3e1e1; }
.bm-rail__card--sage { --tint: #e3eadb; }
.bm-rail__media {
	position: relative;
	display: block;
	aspect-ratio: 1 / 1;
	background: linear-gradient(180deg, #fff 0%, var(--tint) 100%);
}
.bm-rail__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s cubic-bezier(.2, .8, .2, 1);
}
.bm-rail__card:hover .bm-rail__media img {
	transform: scale(1.04);
}
.bm-rail__off {
	position: absolute;
	top: 10px;
	right: 10px;
	padding: 3px 8px;
	border-radius: 999px;
	background: var(--bm-ink);
	color: #fff;
	font-family: "IBM Plex Mono", monospace;
	font-size: 11px;
	font-weight: 600;
}
.bm-rail__coa {
	position: absolute;
	left: 10px;
	top: calc(214px - 40px);
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 5px 10px;
	border-radius: 999px;
	background: rgba(255, 255, 255, .92);
	box-shadow: 0 2px 8px rgba(12, 34, 48, .1);
	font-family: "IBM Plex Mono", monospace;
	font-size: 11px;
	font-weight: 500;
	color: var(--bm-ink);
	text-decoration: none;
}
.bm-rail__tick {
	color: var(--bm-teal);
	font-weight: 700;
}
.bm-rail__coalink {
	font-family: "IBM Plex Sans", Arial, sans-serif;
	color: #5c7480;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.bm-rail__coa:hover .bm-rail__coalink {
	color: var(--bm-teal-hover);
}
.bm-rail__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 12px 12px 14px;
	flex: 1;
}
.bm-rail__name {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--bm-ink);
	text-decoration: none;
}
.bm-rail__name:hover {
	color: var(--bm-teal-hover);
}
.bm-rail__foot {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 8px;
	margin-top: auto;
}
.bm-rail__price {
	display: flex;
	flex-direction: column;
	line-height: 1.15;
}
.bm-rail__price del {
	font-size: 11.5px;
	color: #8a9aa3;
}
.bm-rail__price ins {
	font-size: 16px;
	font-weight: 700;
	color: #b4232c;
	text-decoration: none;
}
.bm-rail__add {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	height: 32px;
	padding: 0 13px;
	border: 0;
	border-radius: 999px;
	background: var(--bm-ink);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	text-decoration: none;
	white-space: nowrap;
	cursor: pointer;
	transition: background .2s ease;
}
.bm-rail__add:hover {
	background: var(--bm-teal);
	color: #fff;
}
.bm-rail__add.is-out {
	background: #eef2f4;
	color: #8a9aa3;
	cursor: default;
	font-size: 10.5px;
}
.bm-rail__add .bm-spinner {
	width: 14px;
	height: 14px;
}
@media (max-width: 640px) {
	.bm-rail {
		margin-top: 48px;
	}
	.bm-rail__track {
		grid-auto-columns: 168px;
		gap: 10px;
		padding-inline: 16px;
	}
	.bm-rail__coa {
		top: calc(168px - 36px);
		font-size: 10px;
		padding: 4px 8px;
	}
	.bm-rail__price ins {
		font-size: 15px;
	}
	.bm-rail__add {
		height: 30px;
		padding: 0 10px;
	}
}

/* ---------- Quantity pricing tiles (inc/qty-pricing.php) ---------- */
.bm-qp {
	margin: 4px 0 18px;
}
.bm-qp .bm-label {
	margin-bottom: 16px;
}
.bm-qp__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
}
.bm-qp__tile {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 7px;
	min-width: 0;
	min-height: 88px;
	padding: 15px 4px 10px;
	border: 1px solid var(--bm-border-strong);
	border-radius: 12px;
	background: #fff;
	color: var(--bm-ink);
	font-family: inherit;
	text-align: center;
	cursor: pointer;
	transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.bm-qp__tile:hover {
	border-color: var(--bm-border-hover);
}
.bm-qp__tile.is-active {
	border-color: var(--bm-teal-hover);
	background: var(--bm-teal-tint-05);
	box-shadow: 0 0 0 1px var(--bm-teal-hover) inset;
}
.bm-qp__tile[disabled] {
	opacity: .45;
	cursor: not-allowed;
}
.bm-qp__badge {
	position: absolute;
	top: -9px;
	left: 50%;
	transform: translateX(-50%);
	padding: 3px 8px;
	border-radius: 5px;
	background: var(--bm-teal-hover);
	color: #fff;
	font-size: 9px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase;
	white-space: nowrap;
}
.bm-qp__badge--2 {
	background: #c9831a;
}
.bm-qp__badge--3 {
	background: var(--bm-ink);
}
.bm-qp__pics {
	display: inline-flex;
	flex: none;
}
.bm-qp__pics img {
	display: block;
	width: 30px;
	height: 30px;
	border: 1.5px solid #fff;
	border-radius: 8px;
	object-fit: cover;
	box-shadow: 0 1px 3px rgba(12, 34, 48, .18);
}
.bm-qp__pics img + img {
	margin-left: -18px;
}
.bm-qp__text {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
	min-width: 0;
}
.bm-qp__units {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	line-height: 1.1;
	text-transform: uppercase;
	white-space: nowrap;
}
.bm-qp__off {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .03em;
	line-height: 1.1;
	text-transform: uppercase;
	color: var(--bm-teal-hover);
	white-space: nowrap;
}
.bm-qp__sum {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 12px;
	margin: 12px 0 0;
	font-size: 13.5px;
	color: var(--bm-text-mid);
}
.bm-qp__sum .bpt-livesum-unit {
	font-weight: 700;
	color: var(--bm-ink);
}
.bm-qp__sum .bpt-livesum-save {
	padding: 2px 8px;
	border-radius: 999px;
	background: #fff1e6;
	color: #b84e14;
	font-family: "IBM Plex Mono", monospace;
	font-size: 11px;
	font-weight: 600;
}
.bm-qp__note {
	margin: 8px 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: var(--bm-text-soft-2);
}
@media (max-width: 560px) {
	.bm-qp__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px 8px;
	}
	.bm-qp__tile {
		flex-direction: row;
		justify-content: flex-start;
		gap: 9px;
		min-height: 62px;
		padding: 12px 12px 10px;
		text-align: left;
	}
	.bm-qp__text {
		align-items: flex-start;
	}
	.bm-qp__pics img + img {
		margin-left: -16px;
	}
}

/* ---------- Verified test results (inc/coa-results.php) ---------- */
.bm-verified {
	margin: 56px 0 0;
	padding: 40px 36px 36px;
	border-radius: 24px;
	background: #f3f6f8;
	scroll-margin-top: 90px;
}
.bm-verified__head {
	max-width: 640px;
	margin: 0 auto 28px;
	text-align: center;
}
.bm-verified__title {
	margin: 0 0 10px;
	font-size: clamp(24px, 2.6vw, 32px);
	font-weight: 700;
	letter-spacing: -.02em;
	color: var(--bm-ink);
}
.bm-verified__intro {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.6;
	color: var(--bm-text-soft);
}
.bm-verified__grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
	gap: 18px;
	align-items: start;
}
.bm-vcard {
	padding: 22px 22px 20px;
	border-radius: 18px;
	background: #0f1a22;
	color: #fff;
}
.bm-vcard__lab {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 22px;
}
.bm-vcard__mark {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 9px;
	background: #e3eef3;
	color: var(--bm-ink);
	font-size: 12px;
	font-weight: 700;
}
.bm-vcard__labname {
	display: block;
	font-size: 14px;
	font-weight: 600;
}
.bm-vcard__labsub {
	display: block;
	font-size: 11.5px;
	color: rgba(255, 255, 255, .6);
}
.bm-vcard__eyebrow {
	margin: 0;
	font-family: "IBM Plex Mono", monospace;
	font-size: 10.5px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .55);
}
.bm-vcard__purity {
	margin: 4px 0 2px;
	font-size: 64px;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -.03em;
}
.bm-vcard__purity span {
	margin-left: 2px;
	font-size: 26px;
	color: #5fe08f;
}
.bm-vcard__facts {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 18px;
	margin: 22px 0 22px;
	padding-top: 18px;
	border-top: 1px solid rgba(255, 255, 255, .12);
}
.bm-vcard__facts dt {
	font-family: "IBM Plex Mono", monospace;
	font-size: 10px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .5);
}
.bm-vcard__facts dd {
	margin: 4px 0 0;
	font-size: 14px;
	font-weight: 600;
}
.bm-vcard__facts dd.is-good {
	color: #5fe08f;
}
.bm-vcard__actions {
	display: grid;
	gap: 8px;
}
.bm-vcard__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 40px;
	border-radius: 999px;
	background: #fff;
	color: var(--bm-ink);
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
}
.bm-vcard__btn:hover {
	background: #dff3f7;
	color: var(--bm-ink);
}
.bm-vcard__btn--ghost {
	border: 1px solid rgba(255, 255, 255, .35);
	background: transparent;
	color: #fff;
}
.bm-vcard__btn--ghost:hover {
	background: rgba(255, 255, 255, .08);
	color: #fff;
}
.bm-qc {
	padding: 18px 20px 6px;
	border: 1px solid var(--bm-border);
	border-radius: 18px;
	background: #fff;
}
.bm-qc__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--bm-border-faint);
}
.bm-qc__title {
	font-family: "IBM Plex Mono", monospace;
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--bm-text-muted);
}
.bm-qc__count {
	padding: 3px 10px;
	border-radius: 999px;
	background: #e6f7ec;
	color: #1d7a46;
	font-size: 11.5px;
	font-weight: 600;
}
.bm-qc__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.bm-qc__row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto 88px;
	align-items: center;
	gap: 14px;
	padding: 15px 0;
	border-bottom: 1px solid var(--bm-border-faint);
}
.bm-qc__row:last-child {
	border-bottom: 0;
}
.bm-qc__name {
	font-size: 14px;
	font-weight: 600;
	color: var(--bm-ink);
}
.bm-qc__name small {
	display: block;
	margin-top: 2px;
	font-size: 11.5px;
	font-weight: 400;
	color: var(--bm-text-muted);
}
.bm-qc__result {
	font-size: 13.5px;
	text-align: right;
	color: var(--bm-text-mid);
}
.bm-qc__chip {
	justify-self: end;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
}
.bm-qc__chip--pass {
	background: #e6f7ec;
	color: #1d7a46;
}
.bm-qc__chip--reported {
	background: #eef2f4;
	color: #6a7780;
}
.bm-batches {
	margin-top: 28px;
}
.bm-batches__title {
	margin: 0 0 12px;
	font-size: 15px;
	font-weight: 700;
	color: var(--bm-ink);
}
.bm-batches__track {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: minmax(220px, 1fr);
	gap: 12px;
	margin: 0;
	padding: 0 0 6px;
	list-style: none;
	overflow-x: auto;
}
.bm-batch {
	padding: 16px;
	border: 1px solid var(--bm-border);
	border-radius: 14px;
	background: #fff;
}
.bm-batch__name { margin: 0; font-size: 13.5px; font-weight: 600; }
.bm-batch__latest { margin-left: 6px; font-size: 10px; font-weight: 700; color: #1d7a46; text-transform: uppercase; }
.bm-batch__lot { margin: 2px 0 10px; font-family: "IBM Plex Mono", monospace; font-size: 11px; color: var(--bm-text-muted); }
.bm-batch__purity { margin: 0 0 10px; font-size: 26px; font-weight: 700; color: #1d7a46; }
.bm-batch dl { margin: 0 0 12px; display: grid; gap: 6px; font-size: 12.5px; }
.bm-batch dl div { display: flex; justify-content: space-between; }
.bm-batch dt { color: var(--bm-text-muted); }
.bm-batch dd { margin: 0; }
.bm-batch__btn { display: block; padding: 9px; border-radius: 999px; background: var(--bm-ink); color: #fff; font-size: 12.5px; font-weight: 600; text-align: center; text-decoration: none; }
@media (max-width: 900px) {
	.bm-verified__grid {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 640px) {
	.bm-verified {
		margin-top: 40px;
		padding: 28px 14px 18px;
		border-radius: 18px;
	}
	.bm-vcard__purity {
		font-size: 54px;
	}
	.bm-qc {
		padding: 14px 14px 4px;
	}
	.bm-qc__row {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 4px 10px;
	}
	.bm-qc__result {
		grid-column: 1;
		text-align: left;
	}
	.bm-qc__chip {
		grid-column: 2;
		grid-row: 1 / span 2;
	}
}

/* ---------- Size picker (variable products) ---------- */
.bm-sizes {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
	margin: 0 0 18px;
}
.bm-sizes .bm-label {
	margin: 0;
	min-width: 64px;
}
.bm-sizes__opts {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.bm-size {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 40px;
	padding: 0 18px;
	border: 1px solid var(--bm-border-strong);
	border-radius: 10px;
	background: #fff;
	color: var(--bm-ink);
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.bm-size:hover {
	border-color: var(--bm-ink);
}
.bm-size.is-selected {
	border-color: var(--bm-ink);
	background: var(--bm-ink);
	color: #fff;
}
.bm-size.is-disabled {
	opacity: .5;
	cursor: not-allowed;
	text-decoration: line-through;
}
.bm-size__out {
	font-size: 10px;
	font-weight: 600;
	text-decoration: none;
}
