/**
 * BioMyst store: cart, checkout, order received, and the My Account area
 * (including the Login Gate). Values transcribed from design-reference/login-gate.html
 * and the shared card/row language of the shop and product references.
 */

/* ------------------------------------------------------------------ *
 * Page shell — title block matching the catalog's rhythm
 * ------------------------------------------------------------------ */

.bm-store {
	padding-bottom: var(--bm-section-y);
}

.bm-store__head {
	padding: 36px 0 24px;
}

.bm-store__head .bm-kicker {
	margin-bottom: 10px;
}

.bm-store__title {
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 600;
	letter-spacing: -0.025em;
	line-height: 1.05;
	margin: 0 0 8px;
}

.bm-store__sub {
	font-size: 15px;
	color: var(--bm-text-soft);
	max-width: 560px;
	margin: 0;
}

/* The shortcode wrapper carries no styling of its own. */
.bm-store .woocommerce {
	position: relative;
}

/* Hidden helper states — base.css gives these display:flex, which beats [hidden]. */
.bm-field-error[hidden],
.bm-field-warn[hidden] {
	display: none;
}

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

.bm-cart {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 366px;
	align-items: start;
	gap: 26px;
}

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

/* --- line item card --- */

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

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

.bm-cart-item__lead {
	flex: 2.4;
	display: flex;
	align-items: center;
	gap: 18px;
	min-width: 0;
}

.bm-cart-item__img {
	width: 76px;
	height: 76px;
	border-radius: 13px;
	border: 1px solid var(--bm-border-faintest);
	flex: none;
}

.bm-cart-item__img a {
	position: absolute;
	inset: 0;
	display: block;
}

.bm-cart-item__body {
	min-width: 0;
}

.bm-cart-item__name {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.3;
}

.bm-cart-item__name a {
	color: var(--bm-ink);
}

.bm-cart-item__name a:hover {
	color: var(--bm-teal);
}

.bm-cart-item__meta {
	font-family: var(--bm-mono);
	font-size: 11.5px;
	color: var(--bm-text-muted);
	margin-top: 3px;
}

/* Variation attributes ("Size: 20mg"). */
.bm-cart-item__body .variation,
.bm-review__body .variation {
	display: flex;
	flex-wrap: wrap;
	gap: 0 6px;
	margin: 6px 0 0;
	font-size: 12.5px;
	color: var(--bm-text-soft-2);
}

.bm-cart-item__body .variation dt,
.bm-review__body .variation dt {
	font-weight: 500;
}

.bm-cart-item__body .variation dd,
.bm-review__body .variation dd {
	margin: 0;
}

.bm-cart-item__body .variation p,
.bm-review__body .variation p {
	margin: 0;
}

.bm-cart-item__body .backorder_notification {
	margin: 6px 0 0;
	font-size: 12px;
	color: var(--bm-low-stock);
}

.bm-cart-item__cell {
	flex: 1;
	text-align: center;
	min-width: 0;
}

/* Stacked labels only surface on the mobile card layout. */
.bm-cart-item__cell-label {
	display: none;
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bm-text-label);
}

.bm-cart-item__price {
	font-size: 14.5px;
	color: var(--bm-text-mid);
}

.bm-cart-item__price del {
	color: var(--bm-text-strike);
	margin-right: 5px;
}

.bm-cart-item__qty {
	flex: none;
	display: flex;
	justify-content: center;
}

.bm-cart-item__subtotal {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.01em;
	text-align: right;
}

.bm-cart-item__remove {
	width: 34px;
	display: flex;
	justify-content: flex-end;
	flex: none;
}

.bm-cart-item__remove .remove {
	width: 30px;
	height: 30px;
	border-radius: 8px;
	border: 1px solid var(--bm-border-strong);
	background: var(--bm-surface);
	color: var(--bm-text-muted);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 16px;
	line-height: 1;
	transition: border-color var(--bm-t), color var(--bm-t), background var(--bm-t);
}

.bm-cart-item__remove .remove:hover {
	border-color: var(--bm-error);
	color: var(--bm-error);
	background: #FFF6F6;
}

/* --- quantity stepper --- */

.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;
}

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

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

/* Two classes: base.css styles the bare input[type="number"] as a full .bm-input,
   which outranks a single class and would draw a bordered 47px box inside the stepper. */
.bm-qty .bm-qty__input {
	width: 40px;
	height: 40px;
	flex: none;
	text-align: center;
	font-size: 15px;
	font-weight: 600;
	color: var(--bm-ink);
	border: none;
	border-radius: 0;
	background: none;
	padding: 0;
	-moz-appearance: textfield;
	appearance: textfield;
}

.bm-qty .bm-qty__input:focus {
	border: none;
	box-shadow: none;
	outline: 2px solid var(--bm-teal);
	outline-offset: -2px;
}

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

/* --- coupon + update row --- */

.bm-cart__actions {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 6px;
}

.bm-cart__coupon {
	display: flex;
	gap: 10px;
	flex: 1;
	min-width: 260px;
}

.bm-cart__coupon .bm-input {
	max-width: 220px;
	height: 48px;
}

.bm-cart__coupon .bm-btn {
	flex: none;
}

.bm-cart__update {
	margin-left: auto;
}

.bm-cart__update:disabled {
	opacity: 0.45;
	cursor: default;
}

.coupon-error-notice {
	flex: 1 0 100%;
	font-size: 11.5px;
	color: var(--bm-error);
	margin: 0;
}

/* ------------------------------------------------------------------ *
 * Cart totals / order summary card
 * ------------------------------------------------------------------ */

.bm-totals {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-5xl);
	padding: clamp(20px, 3vw, 26px);
	position: sticky;
	top: calc(var(--bm-header-h) + 16px);
}

.bm-totals__title {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.015em;
	margin: 0 0 4px;
}

.bm-totals__rows {
	display: block;
}

.bm-totals__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 14px;
	padding: 11px 0;
	border-bottom: 1px solid var(--bm-border-faint);
}

.bm-totals__row--stack {
	display: block;
}

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

.bm-totals__value {
	font-size: 14px;
	font-weight: 600;
	color: var(--bm-ink);
	text-align: right;
}

.bm-totals__value .amount {
	white-space: nowrap;
}

.bm-totals__row--stack .bm-totals__label {
	display: block;
	margin-bottom: 9px;
}

.bm-totals__row--stack .bm-totals__value {
	display: block;
	text-align: left;
	font-weight: 400;
}

.bm-totals__row.cart-discount .bm-totals__value {
	color: var(--bm-teal-hover);
}

.bm-totals__row.order-total {
	border-bottom: none;
	padding: 16px 0 4px;
	align-items: center;
}

.bm-totals__row.order-total .bm-totals__label {
	font-size: 15px;
	font-weight: 600;
	color: var(--bm-ink);
}

.bm-totals__row.order-total .bm-totals__value {
	font-size: 20px;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.bm-totals__row.order-total small {
	display: block;
	font-size: 11.5px;
	font-weight: 400;
	color: var(--bm-text-muted);
	margin-top: 3px;
}

/* Free-shipping threshold — the store ships flat rate, free over the configured amount. */
.bm-totals__ship-note {
	margin: 12px 0 0;
	padding: 10px 12px;
	border-radius: var(--bm-r-md);
	background: var(--bm-teal-tint-05);
	border: 1px solid rgba(18, 175, 203, 0.16);
	font-size: 12.5px;
	line-height: 1.5;
	color: var(--bm-teal-hover);
}

.bm-totals__ship-note .amount {
	font-weight: 700;
}

.bm-totals__ship-note.is-unlocked {
	font-weight: 600;
}

.wc-proceed-to-checkout {
	margin-top: 16px;
}

.wc-proceed-to-checkout .checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 52px;
	border: none;
	border-radius: var(--bm-r-xl);
	background: var(--bm-teal);
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--bm-t);
}

.wc-proceed-to-checkout .checkout-button:hover,
.wc-proceed-to-checkout .checkout-button:focus {
	background: var(--bm-teal-hover);
	color: #fff;
}

/* --- shipping options inside the summary --- */

.bm-ship__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.bm-ship__option {
	display: flex;
	align-items: center;
	gap: 10px;
	border: 1px solid var(--bm-border-strong);
	border-radius: var(--bm-r-md);
	padding: 10px 12px;
	transition: border-color var(--bm-t), background var(--bm-t);
}

.bm-ship__option:has(input:checked) {
	border-color: var(--bm-teal);
	box-shadow: inset 0 0 0 1px var(--bm-teal);
	background: var(--bm-teal-tint-05);
}

/* Single-rate packages render a hidden input — no radio to align. */
.bm-ship__option:has(input[type="hidden"]) {
	border-style: dashed;
}

.bm-ship__option label {
	font-size: 13px;
	color: var(--bm-text-mid);
	margin: 0;
	cursor: pointer;
	flex: 1;
}

.bm-ship__option .amount {
	font-weight: 600;
	color: var(--bm-ink);
}

.bm-ship__dest,
.bm-ship__contents {
	margin: 10px 0 0;
	font-size: 12px;
	line-height: 1.5;
	color: var(--bm-text-muted);
}

.bm-ship__dest strong {
	color: var(--bm-text-mid);
	font-weight: 500;
}

.woocommerce-shipping-calculator {
	margin-top: 10px;
}

.woocommerce-shipping-calculator .shipping-calculator-button {
	font-size: 12.5px;
	font-weight: 500;
}

.woocommerce-shipping-calculator .shipping-calculator-form {
	margin-top: 12px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* ------------------------------------------------------------------ *
 * Empty cart
 * ------------------------------------------------------------------ */

.bm-cart-empty {
	max-width: 460px;
	margin: 0 auto;
	padding: clamp(36px, 6vw, 64px) 0;
	text-align: center;
}

.bm-cart-empty__icon {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--bm-teal-tint-12);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
}

/* The core notice becomes the design's heading. */
.bm-cart-empty .wc-empty-cart-message .cart-empty {
	display: block;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	font-size: 24px;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: var(--bm-ink);
	text-align: center;
}

.bm-cart-empty__body {
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--bm-text-soft-2);
	margin: 8px 0 24px;
}

.bm-cart-empty .return-to-shop {
	margin: 0;
}

.bm-cart-empty .return-to-shop .bm-btn {
	min-width: 200px;
}

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

.bm-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 388px;
	align-items: start;
	gap: 28px;
}

/* Anything WooCommerce or a gateway injects into the form (error notices,
   "Authenticating with your bank…", "Completing your order…") is prepended as
   a grid item. Left to auto-placement it took the first cell and shoved the two
   columns out of place, so extras span the full width and the columns are pinned. */
.bm-checkout > * {
	grid-column: 1 / -1;
}

.bm-checkout > .bm-checkout__main {
	grid-column: 1;
}

.bm-checkout > .bm-checkout__aside {
	grid-column: 2;
}

.bm-checkout__main {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;
}

.bm-checkout__details {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

/* Billing / shipping / additional field groups become cards. */
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields,
.woocommerce-account-fields {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-3xl);
	padding: clamp(20px, 3vw, 26px);
}

.woocommerce-account-fields {
	padding: 18px clamp(20px, 3vw, 26px);
}

/* A shipping card with the "ship to a different address" box unchecked has no fields. */
.woocommerce-shipping-fields h3 {
	margin: 0;
}

.bm-checkout__main h3,
.bm-checkout__main h3 label {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.015em;
	color: var(--bm-ink);
	margin: 0 0 18px;
	cursor: default;
}

.woocommerce-shipping-fields h3#ship-to-different-address {
	display: flex;
	align-items: center;
	margin-bottom: 0;
}

.woocommerce-shipping-fields h3#ship-to-different-address label {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	cursor: pointer;
}

.woocommerce-shipping-fields .shipping_address {
	margin-top: 18px;
}

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

/* --- form rows --- */

.bm-checkout .form-row {
	margin: 0;
	padding: 0;
	display: block;
	grid-column: span 2;
}

.bm-checkout .form-row-first,
.bm-checkout .form-row-last {
	grid-column: span 1;
}

.bm-checkout .form-row label,
.woocommerce-form__label:not(.woocommerce-form__label-for-checkbox) {
	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-checkout .form-row label .required,
.bm-auth .required {
	color: var(--bm-text-faint);
	text-decoration: none;
	border: none;
}

.bm-checkout .form-row .optional {
	color: var(--bm-text-faint);
	text-transform: none;
	letter-spacing: 0.02em;
}

.woocommerce-input-wrapper {
	display: block;
	position: relative;
	width: 100%;
}

.woocommerce-input-wrapper .description {
	font-size: 11.5px;
	color: var(--bm-text-muted);
	margin: 6px 0 0;
}

/* Textareas (order notes) keep the input skin but grow. */
.bm-checkout textarea {
	min-height: 92px;
}

/* WooCommerce's own invalid/valid field flags. */
.woocommerce-invalid input.input-text,
.woocommerce-invalid select,
.woocommerce-invalid .select2-container--default .select2-selection--single {
	border-color: var(--bm-error);
}

.woocommerce-invalid .woocommerce-input-wrapper::after {
	content: attr(data-error);
}

/* --- selects (incl. select2 country/state pickers) --- */

.bm-checkout select,
.bm-account select {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235A6671' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 36px;
}

.select2-container {
	width: 100% !important;
}

.select2-container--default .select2-selection--single {
	height: 47px;
	border: 1px solid var(--bm-border-input);
	border-radius: var(--bm-r-lg);
	background: var(--bm-surface);
	transition: border-color var(--bm-t), box-shadow var(--bm-t);
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--bm-teal);
	box-shadow: var(--bm-focus-ring);
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 45px;
	padding-left: 14px;
	padding-right: 30px;
	font-size: 14px;
	color: var(--bm-text);
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 45px;
	right: 8px;
}

.select2-container--default .select2-selection--single .select2-selection__placeholder {
	color: var(--bm-placeholder);
}

.select2-dropdown {
	border-color: var(--bm-border-input);
	border-radius: var(--bm-r-lg);
	overflow: hidden;
	box-shadow: var(--bm-shadow-card);
}

.select2-container--default .select2-search--dropdown .select2-search__field {
	height: 38px;
	border-radius: var(--bm-r-md);
	border-color: var(--bm-border-input);
	padding: 0 10px;
}

.select2-container--default .select2-results__option {
	font-size: 13.5px;
	padding: 8px 12px;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] {
	background: var(--bm-teal);
	color: #fff;
}

/* --- checkbox rows (create account, ship to different address, terms) --- */

.woocommerce-form__label-for-checkbox,
.bm-checkout .checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-family: var(--bm-font);
	font-size: 13px;
	letter-spacing: normal;
	text-transform: none;
	color: var(--bm-text-mid);
	cursor: pointer;
	margin: 0;
}

.woocommerce-form__label-for-checkbox input[type="checkbox"] {
	flex: none;
	margin-top: 2px;
}

/* ------------------------------------------------------------------ *
 * Checkout — order review card
 * ------------------------------------------------------------------ */

.bm-checkout__aside {
	min-width: 0;
	position: sticky;
	top: calc(var(--bm-header-h) + 16px);
}

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

.bm-checkout__review-title {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.015em;
	margin: 0 0 16px;
}

.bm-review__items {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding-bottom: 6px;
}

.bm-review__item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.bm-review__img {
	width: 44px;
	height: 44px;
	border-radius: 10px;
	border: 1px solid var(--bm-border-faintest);
	flex: none;
	overflow: visible;
}

.bm-review__img img {
	border-radius: 9px;
}

.bm-review__qty-badge {
	position: absolute;
	top: -7px;
	right: -7px;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border-radius: 10px;
	background: var(--bm-ink);
	color: #fff;
	font-family: var(--bm-mono);
	font-size: 10.5px;
	font-weight: 500;
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	z-index: 2;
}

.bm-review__body {
	flex: 1;
	min-width: 0;
}

.bm-review__name {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bm-ink);
	line-height: 1.35;
}

/* The badge already carries the count; keep the text copy for screen readers. */
.bm-review__name .product-quantity {
	font-weight: 400;
	color: var(--bm-text-muted);
}

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

.bm-review__total {
	font-size: 13.5px;
	font-weight: 700;
	white-space: nowrap;
}

.bm-review__totals {
	border-top: 1px solid var(--bm-border-faint);
	margin-top: 6px;
}

/* --- payment methods --- */

.woocommerce-checkout-payment {
	margin-top: 18px;
}

.wc_payment_methods {
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.wc_payment_method {
	border: 1px solid var(--bm-border-strong);
	border-radius: var(--bm-r-xl);
	background: var(--bm-surface);
	padding: 14px 16px;
	transition: border-color var(--bm-t), background var(--bm-t), box-shadow var(--bm-t);
}

/* The design's selected state is a 2px teal outline — drawn as border + inset ring
   so selecting a method never reflows the card by a pixel. */
.wc_payment_method:has(input[type="radio"]:checked) {
	border-color: var(--bm-teal);
	box-shadow: inset 0 0 0 1px var(--bm-teal);
	background: var(--bm-teal-tint-05);
}

.wc_payment_method > label {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 14px;
	font-weight: 600;
	color: var(--bm-ink);
	cursor: pointer;
	margin: 0;
}

.wc_payment_method > label img {
	max-height: 22px;
	width: auto;
	margin-left: auto;
}

.wc_payment_method .payment_box {
	margin: 12px 0 0;
	padding: 12px 14px;
	border-radius: var(--bm-r-md);
	background: var(--bm-surface-sunken);
	border: 1px solid var(--bm-border-faint);
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--bm-text-soft-2);
}

.wc_payment_method .payment_box p:last-child {
	margin-bottom: 0;
}

/* --- the design's radio control (20px ring, 9px teal dot) --- */

.wc_payment_method > input[type="radio"],
.bm-ship__option input[type="radio"] {
	appearance: none;
	-webkit-appearance: none;
	width: 20px;
	height: 20px;
	flex: none;
	border: 1px solid var(--bm-radio-off);
	border-radius: 50%;
	background: var(--bm-surface);
	margin: 0;
	cursor: pointer;
	transition: border-color var(--bm-t);
}

.wc_payment_method > input[type="radio"]:checked,
.bm-ship__option input[type="radio"]:checked {
	border-color: var(--bm-teal);
	background: radial-gradient(circle at center, var(--bm-teal) 0 4.5px, var(--bm-surface) 4.5px);
}

.wc_payment_method > input[type="radio"]:focus-visible,
.bm-ship__option input[type="radio"]:focus-visible {
	outline: 2px solid var(--bm-teal);
	outline-offset: 2px;
}

/* The radio is a sibling of the label, so pull it into the label's row. */
.wc_payment_method {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0 12px;
}

.wc_payment_method > label {
	flex: 1;
	min-width: 0;
}

.wc_payment_method .payment_box {
	flex: 1 0 100%;
}

/* --- terms + place order --- */

.woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 14px;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--bm-text-soft-2);
}

.woocommerce-privacy-policy-text p,
.woocommerce-terms-and-conditions-wrapper p {
	margin: 0 0 10px;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--bm-text-soft-2);
}

.woocommerce-terms-and-conditions {
	max-height: 180px;
	overflow-y: auto;
	padding: 12px 14px;
	margin-bottom: 12px;
	border: 1px solid var(--bm-border-faint);
	border-radius: var(--bm-r-md);
	background: var(--bm-surface-sunken);
	font-size: 12.5px;
}

.woocommerce-terms-and-conditions-checkbox-text {
	font-size: 12.5px;
	line-height: 1.5;
}

.bm-checkout__ruo {
	font-family: var(--bm-mono);
	font-size: 10px;
	line-height: 1.6;
	letter-spacing: 0.02em;
	color: #92A0A8;
	margin: 0 0 12px;
}

#place_order {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 52px;
	border: none;
	border-radius: var(--bm-r-xl);
	background: var(--bm-teal);
	color: #fff;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--bm-t);
}

#place_order:hover,
#place_order:focus {
	background: var(--bm-teal-hover);
}

/* WooCommerce's blockUI overlay while the review refreshes. */
.blockUI.blockOverlay {
	background: var(--bm-surface) !important;
	opacity: 0.6 !important;
}

/* Coupon toggle above the checkout form. */
.woocommerce-form-coupon-toggle {
	margin-bottom: 16px;
}

.checkout_coupon {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	align-items: center;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-3xl);
	padding: 18px 20px;
	margin: 0 0 18px;
}

.checkout_coupon p {
	margin: 0;
}

.checkout_coupon .input-text {
	max-width: 220px;
}

.checkout_coupon .button {
	height: 48px;
	padding: 0 20px;
	border: 1px solid var(--bm-border-strong);
	border-radius: var(--bm-r-lg);
	background: var(--bm-surface);
	color: var(--bm-ink);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

.checkout_coupon .button:hover {
	background: #F7FAFB;
	border-color: var(--bm-border-hover);
}

/* Guest checkout stays on — this is the "returning customer" prompt, not a gate. */
.woocommerce-form-login-toggle {
	margin-bottom: 16px;
}

.woocommerce-form-login.login {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-3xl);
	padding: 20px;
	margin: 0 0 18px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

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

.woocommerce-thankyou-order-received,
.woocommerce-notice--success {
	font-size: 18px;
	font-weight: 600;
	color: var(--bm-ink);
	margin: 0 0 20px;
	padding: 0;
	background: none;
	border: none;
}

.woocommerce-order-overview {
	list-style: none;
	margin: 0 0 26px;
	padding: clamp(18px, 3vw, 24px);
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-5xl);
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 20px;
}

.woocommerce-order-overview li {
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bm-text-muted);
	display: flex;
	flex-direction: column;
	gap: 8px;
	border: none;
	padding: 0;
	margin: 0;
	/* Grid items must be allowed to shrink, or a long value (e.g. the email)
	   overflows its column and paints over the next one (the total). */
	min-width: 0;
}

.woocommerce-order-overview li strong {
	font-family: var(--bm-font);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.01em;
	text-transform: none;
	color: var(--bm-ink);
	/* Wrap long, unbroken values (emails, order refs) within their own cell. */
	overflow-wrap: anywhere;
}

.woocommerce-order-overview li.total strong {
	color: var(--bm-teal-hover);
}

.woocommerce-order-details,
.woocommerce-customer-details {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-3xl);
	padding: clamp(18px, 3vw, 26px);
	margin: 0 0 20px;
}

.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-customer-details h2 {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.015em;
	margin: 0 0 16px;
}

.woocommerce-customer-details .woocommerce-columns {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 24px;
}

.woocommerce-customer-details address {
	font-style: normal;
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--bm-text-mid);
}

.woocommerce-order .bm-compliance--boxed {
	margin-top: 8px;
}

/* Bank/BACS details table printed on the thank-you screen. */
.wc-bacs-bank-details-heading,
.woocommerce-order h2 {
	font-size: 17px;
	font-weight: 600;
	margin: 0 0 12px;
}

.wc-bacs-bank-details {
	list-style: none;
	margin: 0 0 20px;
	padding: clamp(16px, 3vw, 22px);
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-3xl);
	font-size: 13.5px;
	color: var(--bm-text-mid);
}

/* ------------------------------------------------------------------ *
 * Shared: WooCommerce order tables rendered as clean rows
 * ------------------------------------------------------------------ */

.bm-store table.shop_table,
.bm-store table.woocommerce-table {
	width: 100%;
	border-collapse: collapse;
	border: none;
	font-size: 13.5px;
}

.bm-store table.shop_table th,
.bm-store table.woocommerce-table th {
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--bm-text-label);
	font-weight: 400;
	text-align: left;
	padding: 0 12px 12px 0;
	border: none;
	border-bottom: 1px solid var(--bm-border-faint);
}

.bm-store table.shop_table td,
.bm-store table.woocommerce-table td {
	padding: 13px 12px 13px 0;
	border: none;
	border-bottom: 1px solid var(--bm-border-faint);
	color: var(--bm-text-mid);
	vertical-align: top;
}

.bm-store table.shop_table th:last-child,
.bm-store table.shop_table td:last-child,
.bm-store table.woocommerce-table th:last-child,
.bm-store table.woocommerce-table td:last-child {
	padding-right: 0;
	text-align: right;
}

.bm-store table.shop_table tfoot th {
	border-bottom: 1px solid var(--bm-border-faint);
	padding: 13px 12px 13px 0;
	font-family: var(--bm-font);
	font-size: 13.5px;
	letter-spacing: normal;
	text-transform: none;
	color: var(--bm-text-soft-2);
}

.bm-store table.shop_table tfoot tr:last-child th,
.bm-store table.shop_table tfoot tr:last-child td {
	border-bottom: none;
	font-weight: 700;
	color: var(--bm-ink);
	font-size: 15px;
}

.bm-store table.shop_table td a {
	font-weight: 600;
}

.bm-store table.shop_table .product-quantity {
	color: var(--bm-text-muted);
}

.bm-store .woocommerce-table--order-details .wc-item-meta,
.bm-store .woocommerce-table--order-details .variation {
	list-style: none;
	margin: 5px 0 0;
	padding: 0;
	font-size: 12px;
	color: var(--bm-text-muted);
}

.bm-store .woocommerce-table--order-details .wc-item-meta p {
	margin: 0;
	display: inline;
}

/* ------------------------------------------------------------------ *
 * Login Gate — /my-account/ while signed out
 * ------------------------------------------------------------------ */

.bm-gate {
	position: relative;
	overflow: hidden;
	width: 100%;
	min-height: calc(100vh - var(--bm-header-h));
	display: flex;
	flex-direction: column;
	justify-content: center;
	background: var(--bm-bg);
}

.bm-gate__dots {
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(18, 175, 203, 0.09) 1px, transparent 1.5px);
	background-size: 26px 26px;
	pointer-events: none;
}

.bm-gate__glow {
	position: absolute;
	top: -360px;
	left: 50%;
	transform: translateX(-50%);
	width: 1100px;
	height: 760px;
	background: radial-gradient(ellipse at center, rgba(63, 208, 230, 0.30), rgba(63, 208, 230, 0) 62%);
	filter: blur(8px);
	pointer-events: none;
}

.bm-gate__orb {
	position: absolute;
	bottom: -300px;
	left: -160px;
	width: 620px;
	height: 620px;
	background: radial-gradient(circle at center, rgba(18, 175, 203, 0.14), rgba(18, 175, 203, 0) 64%);
	pointer-events: none;
}

.bm-gate__hex {
	position: absolute;
	top: -150px;
	right: -160px;
	opacity: 0.5;
	pointer-events: none;
}

.bm-gate__inner {
	position: relative;
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: clamp(36px, 6vw, 76px);
	flex-wrap: wrap;
	padding: clamp(28px, 5vw, 56px) clamp(16px, 4vw, 24px) 40px;
}

/* --- aside --- */

.bm-aside {
	width: 432px;
	max-width: 100%;
}

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

.bm-aside__title {
	font-size: clamp(30px, 3.4vw, 40px);
	font-weight: 600;
	color: var(--bm-ink);
	letter-spacing: -0.022em;
	line-height: 1.1;
	margin: 0 0 18px;
	text-wrap: balance;
}

.bm-aside__body {
	font-size: 15px;
	line-height: 1.6;
	color: var(--bm-text-soft);
	max-width: 384px;
	margin: 0 0 36px;
}

.bm-aside__features {
	display: flex;
	flex-direction: column;
	gap: 20px;
	max-width: 404px;
}

.bm-aside__feature {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

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

.bm-aside__feature-title {
	font-size: 14.5px;
	font-weight: 600;
	color: var(--bm-heading-alt);
	margin-bottom: 3px;
}

.bm-aside__feature-body {
	font-size: 13px;
	line-height: 1.5;
	color: var(--bm-text-soft-2);
}

/* --- card --- */

.bm-gate__col {
	width: min(424px, 100%);
}

.bm-gate__card {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-5xl);
	box-shadow: var(--bm-shadow-panel);
	overflow: hidden;
}

.bm-gate__bar {
	height: 3px;
	background: linear-gradient(90deg, var(--bm-teal), var(--bm-cyan));
}

.bm-gate__body {
	padding: clamp(26px, 6vw, 38px) clamp(22px, 6vw, 40px) 30px;
}

.bm-gate__trust {
	display: flex;
	border-top: 1px solid var(--bm-border-faint);
	background: var(--bm-surface-sunken);
}

.bm-gate__trust-cell {
	flex: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 13px 6px;
}

.bm-gate__trust-cell span {
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.04em;
	color: #5E6E77;
}

.bm-gate__trust-rule {
	width: 1px;
	background: var(--bm-border-faint);
	flex: none;
}

.bm-gate__ruo {
	margin: 18px 0 0;
	text-align: center;
	font-family: var(--bm-mono);
	font-size: 10px;
	line-height: 1.6;
	letter-spacing: 0.02em;
	color: #92A0A8;
}

/* --- auth forms inside the card --- */

.bm-auth__title {
	font-size: 24px;
	font-weight: 600;
	color: var(--bm-ink);
	letter-spacing: -0.015em;
	margin: 0 0 6px;
}

.bm-auth__sub {
	font-size: 13.5px;
	color: var(--bm-text-soft-2);
	line-height: 1.5;
	margin: 0 0 26px;
}

.bm-auth__back {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--bm-text-soft);
	margin-bottom: 18px;
}

.bm-auth__back:hover {
	color: var(--bm-ink);
}

/* Social buttons only exist when a social-login plugin injects them. */
.bm-auth__social {
	display: flex;
	gap: 10px;
	margin-bottom: 22px;
}

.bm-auth__social button,
.bm-auth__social a {
	flex: 1;
	height: 46px;
	border: 1px solid var(--bm-border-input);
	border-radius: var(--bm-r-lg);
	background: var(--bm-surface);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	font-size: 13.5px;
	font-weight: 500;
	color: #243743;
	font-family: inherit;
	cursor: pointer;
	transition: background var(--bm-t), border-color var(--bm-t);
}

.bm-auth__social button:hover,
.bm-auth__social a:hover {
	background: #F7FAFB;
	border-color: var(--bm-border-hover);
	color: #243743;
}

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

.bm-auth__divider::before,
.bm-auth__divider::after {
	content: '';
	flex: 1;
	height: 1px;
	background: #EAF0F3;
}

.bm-auth__divider span {
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #A7B3BA;
}

.bm-auth__fields {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.bm-field {
	margin: 0;
	padding: 0;
}

.bm-field__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 7px;
}

.bm-field__head .bm-field-label {
	margin-bottom: 0;
}

.bm-field__toggle {
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--bm-teal);
	background: none;
	border: none;
	padding: 0;
	cursor: pointer;
	transition: color var(--bm-t);
}

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

/*
 * WooCommerce's frontend script injects its own eye-icon reveal (.show-password-input)
 * into every account password field. The design has a single "Show" text toggle
 * (.bm-field__toggle), so suppress the native one to avoid a duplicate control.
 * The .password-input wrapper span it also adds is layout-neutral (display:inline).
 */
.bm-auth .show-password-input,
.bm-auth .hide-password-input {
	display: none;
}

.bm-auth__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: -6px;
}

.bm-auth__remember {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	color: var(--bm-text-soft-2);
	cursor: pointer;
	margin: 0;
}

.bm-auth__remember input {
	width: 15px;
	height: 15px;
	flex: none;
}

.bm-auth__lost {
	font-size: 12.5px;
	font-weight: 500;
	color: var(--bm-teal);
	white-space: nowrap;
}

.bm-auth__submit {
	margin: 2px 0 0;
	padding: 0;
}

.bm-auth__submit .bm-btn {
	height: 49px;
	font-size: 14px;
	letter-spacing: 0.01em;
	border-radius: var(--bm-r-lg);
}

.bm-auth__optin {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	font-size: 12px;
	line-height: 1.5;
	color: var(--bm-text-soft-2);
	cursor: pointer;
}

.bm-auth__optin input {
	accent-color: var(--bm-teal);
	flex: none;
	margin-top: 1px;
}

.bm-auth__note {
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--bm-text-soft-2);
	margin: 0;
}

.bm-auth__switch {
	text-align: center;
	margin: 22px 0 0;
	font-size: 13px;
	color: var(--bm-text-soft-2);
}

.bm-auth__switch a {
	color: var(--bm-teal);
	font-weight: 600;
}

/* Notices live inside the card on the gate. */
.bm-gate__body .woocommerce-error,
.bm-gate__body .woocommerce-message,
.bm-gate__body .woocommerce-info {
	font-size: 12.5px;
	padding: 11px 14px;
	border-radius: var(--bm-r-md);
	margin-bottom: 18px;
}

.bm-gate__body .woocommerce-error li {
	margin: 0;
}

/* --- "Check your inbox" confirmation state --- */

.bm-auth--confirm {
	text-align: center;
}

.bm-auth__badge {
	width: 60px;
	height: 60px;
	border-radius: 50%;
	background: var(--bm-teal-tint-12);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
	animation: bm-pop 0.4s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

.bm-auth__confirm-title {
	font-size: 21px;
	font-weight: 600;
	color: var(--bm-ink);
	letter-spacing: -0.015em;
	margin: 0 0 8px;
}

.bm-auth__confirm-body {
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--bm-text-soft-2);
	margin: 0 0 22px;
}

.bm-auth--confirm .bm-btn {
	height: 49px;
	font-size: 14px;
	border-radius: var(--bm-r-lg);
}

/* ------------------------------------------------------------------ *
 * My Account — signed in
 * ------------------------------------------------------------------ */

.bm-account .woocommerce {
	display: grid;
	grid-template-columns: 236px minmax(0, 1fr);
	align-items: start;
	gap: 24px;
}

.bm-account .woocommerce-notices-wrapper {
	grid-column: 1 / -1;
}

.woocommerce-MyAccount-navigation {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-3xl);
	padding: 10px;
	position: sticky;
	top: calc(var(--bm-header-h) + 16px);
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 10px 14px;
	border-radius: var(--bm-r-md);
	font-size: 13.5px;
	font-weight: 500;
	color: var(--bm-text-mid);
	transition: background var(--bm-t), color var(--bm-t);
}

.woocommerce-MyAccount-navigation li a:hover {
	background: var(--bm-surface-sunken);
	color: var(--bm-ink);
}

.woocommerce-MyAccount-navigation li.is-active a {
	background: var(--bm-teal-tint);
	color: var(--bm-teal-hover);
	font-weight: 600;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--bm-text-soft-2);
}

.woocommerce-MyAccount-content {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-3xl);
	padding: clamp(20px, 3vw, 28px);
	min-width: 0;
}

.woocommerce-MyAccount-content > p:first-child {
	margin-top: 0;
}

.woocommerce-MyAccount-content p {
	font-size: 14px;
	line-height: 1.65;
	color: var(--bm-text-mid);
}

.woocommerce-MyAccount-content h2,
.woocommerce-MyAccount-content h3 {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.015em;
	margin: 0 0 16px;
}

.woocommerce-MyAccount-content fieldset {
	border: 1px solid var(--bm-border-faint);
	border-radius: var(--bm-r-xl);
	padding: 18px 20px;
	margin: 20px 0;
}

.woocommerce-MyAccount-content fieldset legend {
	font-size: 14px;
	font-weight: 600;
	padding: 0 8px;
}

/* Account forms reuse the checkout field skin. */
.woocommerce-EditAccountForm .form-row,
.woocommerce-address-fields .form-row,
.woocommerce-MyAccount-content .form-row {
	margin: 0 0 14px;
	padding: 0;
	display: block;
}

.woocommerce-EditAccountForm .form-row label,
.woocommerce-address-fields .form-row label,
.woocommerce-MyAccount-content .form-row 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;
}

.woocommerce-MyAccount-content .form-row-first,
.woocommerce-MyAccount-content .form-row-last {
	display: inline-block;
	width: calc(50% - 7px);
	vertical-align: top;
}

.woocommerce-MyAccount-content .form-row-first {
	margin-right: 14px;
}

.woocommerce-MyAccount-content .clear {
	clear: both;
}

.woocommerce-MyAccount-content .button,
.woocommerce-MyAccount-content button[type="submit"] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	height: 44px;
	padding: 0 22px;
	border: none;
	border-radius: var(--bm-r-lg);
	background: var(--bm-teal);
	color: #fff;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--bm-t);
}

.woocommerce-MyAccount-content .button:hover,
.woocommerce-MyAccount-content button[type="submit"]:hover {
	background: var(--bm-teal-hover);
	color: #fff;
}

/* Row actions on the orders table sit as light outline chips. */
.woocommerce-orders-table__cell-order-actions .button,
.woocommerce-Addresses .edit,
.woocommerce-MyAccount-content .woocommerce-button--view,
.woocommerce-MyAccount-content .woocommerce-button--pay,
.woocommerce-MyAccount-content .woocommerce-button--cancel {
	height: 34px;
	padding: 0 14px;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border-strong);
	color: var(--bm-ink);
	font-size: 12.5px;
	border-radius: var(--bm-r-md);
	margin: 2px 0 2px 6px;
}

.woocommerce-orders-table__cell-order-actions .button:hover,
.woocommerce-MyAccount-content .woocommerce-button--view:hover {
	background: var(--bm-teal);
	border-color: var(--bm-teal);
	color: #fff;
}

.woocommerce-MyAccount-content .woocommerce-button--cancel:hover {
	border-color: var(--bm-error);
	color: var(--bm-error);
	background: #FFF6F6;
}

/* Addresses */

.woocommerce-Addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 20px;
}

.woocommerce-Address-title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.woocommerce-Address-title h2,
.woocommerce-Address-title h3 {
	margin: 0;
}

.woocommerce-Address address {
	font-style: normal;
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--bm-text-mid);
	padding: 16px 18px;
	border: 1px solid var(--bm-border-faint);
	border-radius: var(--bm-r-xl);
	background: var(--bm-surface-sunken);
}

/* Downloads / orders empty states */

.woocommerce-info,
.woocommerce-Message--info {
	margin-bottom: 0;
}

.woocommerce-MyAccount-content .woocommerce-info {
	margin-bottom: 16px;
}

/* Order status pills. */
.woocommerce-orders-table__cell-order-status {
	font-family: var(--bm-mono);
	font-size: 11px;
	font-weight: 500;
	color: var(--bm-teal-hover);
}

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

/* The design hides the gate aside below 920px. */
@media (max-width: 920px) {
	.bm-aside {
		display: none;
	}
}

@media (max-width: 1000px) {
	.bm-cart {
		grid-template-columns: minmax(0, 1fr);
	}

	.bm-totals {
		position: static;
	}
}

/* The design's checkout is two columns from 900px. */
@media (max-width: 899px) {
	.bm-checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	.bm-checkout > .bm-checkout__main,
	.bm-checkout > .bm-checkout__aside {
		grid-column: 1;
	}

	.bm-checkout__aside {
		position: static;
	}

	.bm-account .woocommerce {
		grid-template-columns: minmax(0, 1fr);
	}

	.woocommerce-MyAccount-navigation {
		position: static;
	}

	.woocommerce-MyAccount-navigation ul {
		flex-direction: row;
		flex-wrap: wrap;
	}
}

@media (max-width: 720px) {
	/* Checkout field stacking now lives with the 12-column grid further down. */
	.woocommerce-MyAccount-content .form-row-first,
	.woocommerce-MyAccount-content .form-row-last {
		width: 100%;
		margin-right: 0;
	}
}

/* Cart line items stack into the design's mobile card. */
@media (max-width: 700px) {
	.bm-cart-item {
		display: grid;
		grid-template-columns: 1fr auto;
		gap: 14px 12px;
		padding: 16px;
		box-shadow: var(--bm-shadow-mobile-card);
	}

	.bm-cart-item__lead {
		grid-column: 1;
		grid-row: 1;
	}

	.bm-cart-item__remove {
		grid-column: 2;
		grid-row: 1;
		align-self: start;
	}

	.bm-cart-item__img {
		width: 60px;
		height: 60px;
		border-radius: 11px;
	}

	.bm-cart-item__name {
		font-size: 15.5px;
	}

	.bm-cart-item__cell {
		grid-column: span 2;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		text-align: left;
		padding-top: 12px;
		border-top: 1px solid var(--bm-border-faint);
		margin: 0;
	}

	.bm-cart-item__cell + .bm-cart-item__cell {
		padding-top: 12px;
	}

	.bm-cart-item__cell-label {
		display: block;
	}

	.bm-cart-item__qty {
		justify-content: space-between;
	}

	.bm-cart-item__subtotal {
		text-align: right;
	}

	.bm-cart__actions {
		flex-direction: column;
		align-items: stretch;
	}

	.bm-cart__coupon {
		min-width: 0;
	}

	.bm-cart__coupon .bm-input {
		max-width: none;
	}

	.bm-cart__update {
		margin-left: 0;
	}
}

@media (max-width: 520px) {
	.woocommerce-order-overview {
		grid-template-columns: 1fr 1fr;
	}

	.bm-gate__trust-cell span {
		font-size: 9px;
	}
}

/* ------------------------------------------------------------------ *
 * Free reward line (auto-added by the cart flyout) on the cart + checkout pages
 * ------------------------------------------------------------------ */

.bm-reward-tag {
	display: inline-block;
	vertical-align: middle;
	margin-left: 4px;
	padding: 2px 6px;
	border-radius: 5px;
	background: var(--bm-teal-tint-12);
	color: var(--bm-teal-hover);
	font-family: var(--bm-mono);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	line-height: 1.3;
}

.bm-reward-free {
	color: var(--bm-teal-hover);
	font-weight: 600;
}

.bm-reward-qty {
	font-family: var(--bm-mono);
	font-size: 13px;
	color: var(--bm-text-soft);
}

/* ================================================================== *
 * Checkout — the three-step layout
 *
 * Step cards in the left column, a sticky order summary on the right.
 * `.bm-checkout-focus` is set on <body> when the focused chrome is on:
 * the site header and footer are hidden in favour of the slim checkout bar.
 * ================================================================== */

/* --- focused chrome ------------------------------------------------ */

body.bm-checkout-focus .bm-header,
body.bm-checkout-focus .bm-footer,
body.bm-checkout-focus .bm-bogobar {
	display: none;
}

body.bm-checkout-focus {
	background: var(--bm-bg);
}

.bm-cobar {
	background: var(--bm-surface);
	border-bottom: 1px solid var(--bm-border-header);
}

.bm-cobar__inner {
	max-width: 1120px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 15px clamp(16px, 4vw, 32px);
}

.bm-cobar__logo {
	display: flex;
	align-items: center;
	flex: none;
}

.bm-cobar__logo img,
.bm-cobar__logo svg,
.bm-cobar__logo .bm-logo--text {
	height: 28px;
	width: auto;
	max-width: 190px;
	object-fit: contain;
	object-position: left center;
	display: block;
}

.bm-cobar__steps {
	flex: 1 1 auto;
	justify-content: flex-end;
	margin-right: 18px;
	display: flex;
	align-items: center;
	gap: 9px;
	font-family: var(--bm-mono);
	font-size: 11px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	min-width: 0;
}

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

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

.bm-cobar__steps .is-current {
	color: var(--bm-ink);
	font-weight: 500;
}

.bm-cobar__steps .is-next {
	color: var(--bm-text-faint);
}

.bm-cobar__ssl {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	flex: none;
	font-family: var(--bm-mono);
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--bm-text-soft);
}

.bm-store--focus {
	padding-top: 30px;
}

.bm-store__signedin {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}

.bm-store__signedin strong {
	color: var(--bm-ink);
	font-weight: 600;
}

/* --- slim checkout footer ------------------------------------------ */

.bm-cofoot {
	background: var(--bm-ink);
	color: #fff;
	margin-top: 40px;
}

.bm-cofoot__inner {
	max-width: 1120px;
	margin: 0 auto;
	padding: 34px clamp(16px, 4vw, 32px) 26px;
}

.bm-cofoot__top {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 24px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--bm-on-dark-line);
}

.bm-cofoot__brand {
	max-width: 300px;
}

.bm-cofoot__logo {
	display: inline-block;
	margin-bottom: 10px;
}

.bm-cofoot__brand img,
.bm-cofoot__brand svg {
	height: 26px;
	width: auto;
	max-width: 180px;
	object-fit: contain;
	object-position: left center;
	display: block;
	filter: brightness(0) invert(1);
	opacity: 0.92;
}

.bm-cofoot__brand p {
	margin: 0;
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--bm-on-dark-muted);
}

.bm-cofoot__links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 26px;
	font-size: 13px;
}

.bm-cofoot__links a {
	color: var(--bm-on-dark-soft);
}

.bm-cofoot__links a:hover {
	color: #fff;
}

.bm-cofoot__ruo {
	margin: 18px 0 0;
	max-width: 900px;
	font-size: 11.5px;
	line-height: 1.65;
	color: var(--bm-on-dark-faint);
}

.bm-cofoot__bottom {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 16px;
	font-family: var(--bm-mono);
	font-size: 10.5px;
	letter-spacing: 0.03em;
	color: var(--bm-on-dark-faint);
}

/* --- step cards ---------------------------------------------------- */

.bm-checkout.is-busy {
	opacity: 0.94;
	pointer-events: none;
	transition: opacity 0.12s ease;
}

/*
 * WooCommerce curtains the review table and the payment box in white while it
 * recalculates. By the time it does, the figures on screen are already the new
 * ones, so the curtain only hides a number that is not changing. Keep the overlay
 * — it usefully swallows clicks mid-update — and make it invisible.
 */
.woocommerce .blockUI.blockOverlay,
.woocommerce-checkout .blockUI.blockOverlay,
.bm-checkout .blockUI.blockOverlay {
	opacity: 0 !important;
	background: transparent !important;
}

.bm-step,
.bm-checkout .bm-step.bm-checkout__details {
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-4xl);
	padding: 22px clamp(18px, 3vw, 26px) 24px;
	margin: 0 0 16px;
}

.bm-step__head {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}

.bm-step__num {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--bm-ink);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--bm-mono);
	font-size: 12.5px;
	font-weight: 600;
	flex: none;
}

.bm-step__title {
	font-size: 17px;
	font-weight: 600;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--bm-ink);
}

.bm-step__note {
	font-size: 13px;
	color: var(--bm-text-muted);
	margin: 0 0 20px 40px;
}

.bm-step__note--secure {
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--bm-teal-hover);
	font-weight: 500;
}

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

/* --- option cards: shipping methods and order bumps ---------------- */

.bm-ship-opts,
.bm-bumps {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.bm-optcard {
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	padding: 13px 14px;
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-xl);
	background: var(--bm-surface);
	text-align: left;
	font: inherit;
	color: inherit;
	cursor: pointer;
	transition: border-color var(--bm-t), background var(--bm-t);
}

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

.bm-optcard.is-on {
	border-color: var(--bm-teal);
	border-width: 1.5px;
	background: var(--bm-teal-tint-05);
	padding: 12.5px 13.5px;
}

.bm-optcard__input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}

.bm-optcard__radio {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 2px solid var(--bm-radio-off);
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: border-color var(--bm-t);
}

.bm-optcard.is-on .bm-optcard__radio {
	border-color: var(--bm-teal);
}

.bm-optcard__radio span {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--bm-teal);
	opacity: 0;
	transition: opacity var(--bm-t);
}

.bm-optcard.is-on .bm-optcard__radio span {
	opacity: 1;
}

.bm-optcard__check {
	width: 18px;
	height: 18px;
	border-radius: 5px;
	border: 1.5px solid var(--bm-radio-off);
	background: var(--bm-surface);
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background var(--bm-t), border-color var(--bm-t);
}

.bm-optcard__check svg {
	opacity: 0;
	transition: opacity var(--bm-t);
}

.bm-optcard.is-on .bm-optcard__check {
	background: var(--bm-teal);
	border-color: var(--bm-teal);
}

.bm-optcard.is-on .bm-optcard__check svg {
	opacity: 1;
}

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

.bm-optcard__row {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}

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

.bm-optcard__badge {
	font-family: var(--bm-mono);
	font-size: 9px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--bm-teal-hover);
	background: var(--bm-teal-tint-12);
	padding: 3px 7px;
	border-radius: 5px;
}

.bm-optcard__sub {
	font-size: 12.5px;
	line-height: 1.4;
	color: var(--bm-text-soft-2);
}

.bm-optcard__price {
	flex: none;
	font-size: 14px;
	font-weight: 700;
	white-space: nowrap;
	color: var(--bm-ink);
}

.bm-bump__icon {
	width: 32px;
	height: 32px;
	border-radius: 9px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex: none;
	background: var(--bm-teal-tint);
	color: var(--bm-teal-hover);
}

.bm-bump__icon--priority {
	background: rgba(198, 138, 18, 0.1);
	color: var(--bm-low-stock);
}

/* --- cross-sell rail ------------------------------------------------ */

.bm-xsell--checkout {
	background: #F7FBFC;
	border: 1px dashed #B9D4DC;
	border-radius: var(--bm-r-4xl);
	padding: 20px clamp(18px, 3vw, 26px);
	margin: 0 0 16px;
}

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

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

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

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

.bm-xsell__rows {
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.bm-xsell__row {
	display: flex;
	align-items: center;
	gap: 12px;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-xl);
	padding: 10px 12px;
}

.bm-xsell__thumb {
	position: relative;
	width: 46px;
	height: 46px;
	border-radius: 9px;
	overflow: hidden;
	flex: none;
	display: block;
}

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

.bm-xsell__body {
	flex: 1;
	min-width: 0;
}

.bm-xsell__name {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bm-ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

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

.bm-xsell--checkout .bm-xsell__price {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	flex: none;
	line-height: 1.2;
}

.bm-xsell--checkout .bm-xsell__price del {
	font-size: 10.5px;
	color: var(--bm-text-strike);
}

.bm-xsell--checkout .bm-xsell__price ins {
	text-decoration: none;
	font-size: 14px;
	font-weight: 700;
	color: var(--bm-teal-hover);
}

.bm-xsell--checkout .bm-xsell__add {
	height: 34px;
	line-height: 34px;
	padding: 0 15px;
	border-radius: 17px;
	font-size: 12.5px;
}

/* --- free-gift notice ----------------------------------------------- */

.bm-giftnote {
	display: flex;
	align-items: center;
	gap: 11px;
	padding: 13px 18px;
	border-radius: var(--bm-r-2xl);
	background: var(--bm-teal-tint);
	border: 1px solid rgba(18, 175, 203, 0.3);
	color: var(--bm-teal-hover);
	margin: 0 0 16px;
}

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

/* --- payment step --------------------------------------------------- */

.bm-cardbrands {
	display: flex;
	gap: 6px;
	margin-left: auto;
}

.bm-cardbrand {
	height: 24px;
	padding: 0 8px;
	border: 1px solid var(--bm-border-strong);
	border-radius: 5px;
	background: var(--bm-surface);
	display: flex;
	align-items: center;
	font-family: var(--bm-mono);
	font-size: 9.5px;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.bm-cardbrand--visa { color: #1A1F71; }
.bm-cardbrand--amex { color: #006FCF; }
.bm-cardbrand--disc { color: #F58220; }

.bm-cardbrand--mc i {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #EB001B;
	display: block;
}

.bm-cardbrand--mc i + i {
	background: #F79E1B;
	margin-left: -4px;
}

/* --- research acknowledgments --------------------------------------- */

.bm-acks {
	margin: 22px 0 0;
}

.bm-acks__head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 10px;
}

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

.bm-acks__rule {
	flex: 1;
	height: 1px;
	background: var(--bm-border-faint);
}

.bm-acks__count {
	font-family: var(--bm-mono);
	font-size: 10px;
	color: var(--bm-text-faint);
	transition: color var(--bm-t);
}

.bm-acks__count.is-done {
	color: var(--bm-teal-hover);
}

.bm-acks__list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.bm-ack {
	display: flex;
	align-items: flex-start;
	gap: 11px;
	padding: 12px 13px;
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-lg);
	background: var(--bm-surface);
	cursor: pointer;
	transition: border-color var(--bm-t), background var(--bm-t);
}

.bm-ack.is-on {
	border-color: var(--bm-teal);
	border-width: 1.5px;
	background: var(--bm-teal-tint-05);
	padding: 11.5px 12.5px;
}

.bm-ack__input {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}

.bm-ack__box {
	width: 18px;
	height: 18px;
	margin-top: 2px;
	border-radius: 5px;
	border: 1.5px solid var(--bm-radio-off);
	background: var(--bm-surface);
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background var(--bm-t), border-color var(--bm-t);
}

.bm-ack__box svg {
	opacity: 0;
	transition: opacity var(--bm-t);
}

.bm-ack.is-on .bm-ack__box {
	background: var(--bm-teal);
	border-color: var(--bm-teal);
}

.bm-ack.is-on .bm-ack__box svg {
	opacity: 1;
}

.bm-ack__input:focus-visible + .bm-ack__box {
	box-shadow: var(--bm-focus-ring);
}

.bm-ack__text {
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--bm-text-mid);
}

/* --- pay button ----------------------------------------------------- */

.bm-checkout .bm-paybtn,
.bm-checkout #place_order.bm-paybtn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	width: 100%;
	height: 56px;
	margin-top: 18px;
	border: none;
	border-radius: 13px;
	background: var(--bm-teal);
	color: #fff;
	font-family: inherit;
	font-size: 15.5px;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 14px 30px -14px rgba(18, 175, 203, 0.6);
	transition: background var(--bm-t), box-shadow var(--bm-t);
}

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

/* #place_order carries an id-level rule elsewhere, so the locked state matches it. */
.bm-checkout #place_order.bm-paybtn:disabled,
.bm-checkout #place_order.bm-paybtn.is-locked {
	background: var(--bm-radio-off);
	color: #fff;
	cursor: not-allowed;
	box-shadow: none;
}

/* The lock rides as a pseudo-element: WooCommerce replaces the button's children. */
.bm-checkout .bm-paybtn::before {
	content: "";
	width: 15px;
	height: 15px;
	flex: none;
	background: currentColor;
	-webkit-mask: var(--bm-lock-mask) center / contain no-repeat;
	mask: var(--bm-lock-mask) center / contain no-repeat;
}

.bm-checkout .bm-paybtn {
	--bm-lock-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="11" width="14" height="10" rx="2.5"/><path d="M8 11V8a4 4 0 018 0v3"/></svg>');
}

.bm-paytrust {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px 18px;
}

.bm-paytrust li {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.04em;
	color: var(--bm-text-muted);
	white-space: nowrap;
}

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

/* --- order summary aside -------------------------------------------- */

.bm-checkout__aside {
	position: sticky;
	top: 20px;
}

.bm-summary {
	display: block;
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-4xl);
	overflow: hidden;
	box-shadow: 0 24px 60px -34px rgba(12, 34, 48, 0.3);
}

.bm-summary__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--bm-border-faint);
}

.bm-summary__title {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	font-size: 15px;
	font-weight: 600;
	color: var(--bm-ink);
}

.bm-summary__count {
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 10px;
	background: var(--bm-teal-tint-14, rgba(18, 175, 203, 0.14));
	color: var(--bm-teal-hover);
	font-size: 11.5px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.bm-summary__total {
	font-size: 15px;
	font-weight: 700;
	color: var(--bm-ink);
}

/* rewards ladder */
.bm-summary__rewards {
	padding: 12px 16px;
	background: var(--bm-surface-sunken);
	border-bottom: 1px solid var(--bm-border-faint);
}

.bm-summary__rewards-top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.bm-summary__rewards-text {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--bm-ink);
	min-width: 0;
}

.bm-summary__rewards-text strong {
	color: var(--bm-teal-hover);
}

.bm-summary__rewards-pill {
	flex: none;
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.06em;
	color: var(--bm-teal-hover);
	background: var(--bm-teal-tint-12);
	padding: 3px 7px;
	border-radius: 5px;
}

.bm-summary__milestones {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
}

.bm-milestone {
	padding: 8px 10px;
	border-radius: var(--bm-r-md);
	background: var(--bm-surface);
	border: 1px solid var(--bm-border);
	min-width: 0;
}

.bm-milestone.is-done {
	border-color: var(--bm-teal);
	border-width: 1.5px;
	padding: 7.5px 9.5px;
}

.bm-milestone__row {
	display: flex;
	align-items: center;
	gap: 8px;
	min-width: 0;
}

.bm-milestone__icon {
	width: 26px;
	height: 26px;
	border-radius: 7px;
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--bm-border-faint);
	color: var(--bm-text-muted);
}

.bm-milestone.is-done .bm-milestone__icon {
	background: var(--bm-teal);
	color: #fff;
}

.bm-milestone__text {
	flex: 1;
	min-width: 0;
	display: block;
}

.bm-milestone__label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var(--bm-ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

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

.bm-milestone.is-done .bm-milestone__sub {
	color: var(--bm-teal-hover);
}

.bm-milestone__track {
	display: block;
	height: 3px;
	border-radius: 2px;
	background: #E4EBEF;
	margin-top: 7px;
	overflow: hidden;
}

.bm-milestone__fill {
	display: block;
	height: 100%;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--bm-teal), var(--bm-cyan));
	transition: width 0.35s ease;
}

/* summary lines */
.bm-summary__items {
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.bm-sumline {
	display: flex;
	gap: 12px;
	align-items: center;
}

.bm-sumline--gift {
	padding: 10px 12px;
	border-radius: var(--bm-r-xl);
	background: rgba(18, 175, 203, 0.07);
	border: 1px solid rgba(18, 175, 203, 0.3);
}

.bm-sumline__thumb {
	position: relative;
	width: 56px;
	height: 56px;
	flex: none;
	border-radius: 11px;
	overflow: visible;
}

.bm-sumline--gift .bm-sumline__thumb {
	width: 44px;
	height: 44px;
}

.bm-sumline__thumb img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 11px;
	border: 1px solid var(--bm-border-faintest);
}

.bm-sumline__qtybadge {
	position: absolute;
	top: -6px;
	left: -6px;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	background: var(--bm-ink);
	color: #fff;
	border: 2px solid var(--bm-surface);
	border-radius: 10px;
	font-size: 10.5px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 1;
}

.bm-sumline__body {
	flex: 1;
	min-width: 0;
}

.bm-sumline__name {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bm-ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

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

.bm-sumline__tier {
	font-family: var(--bm-mono);
	font-size: 10px;
	color: var(--bm-teal-hover);
	margin-top: 2px;
}

.bm-sumline__controls {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 6px;
}

.bm-sumline__qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--bm-border-strong);
	border-radius: 7px;
	overflow: hidden;
}

.bm-sumline__qbtn {
	width: 24px;
	height: 24px;
	border: none;
	background: none;
	cursor: pointer;
	color: var(--bm-text-soft);
	font-size: 14px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	user-select: none;
	transition: background var(--bm-t);
}

.bm-sumline__qbtn:hover:not(:disabled) {
	background: #F4F8FA;
}

.bm-sumline__qbtn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

.bm-sumline__qval {
	width: 24px;
	text-align: center;
	font-size: 12px;
	font-weight: 600;
	line-height: 24px;
	border-left: 1px solid var(--bm-border-strong);
	border-right: 1px solid var(--bm-border-strong);
	color: var(--bm-ink);
}

.bm-sumline__remove {
	border: none;
	background: none;
	padding: 0;
	font: inherit;
	font-size: 11.5px;
	color: var(--bm-text-faint);
	cursor: pointer;
	transition: color var(--bm-t);
}

.bm-sumline__remove:hover {
	color: var(--bm-error);
}

.bm-sumline__price {
	text-align: right;
	flex: none;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	line-height: 1.2;
}

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

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

.bm-sumline__free {
	font-size: 13px;
	font-weight: 700;
	color: var(--bm-teal-hover);
}

/* summary promo */
.bm-summary__coupon {
	padding: 0 16px 14px;
}

.bm-summary__coupon .bm-coupon__form {
	position: relative;
	display: flex;
	gap: 8px;
}

.bm-summary__coupon .bm-coupon__icon {
	position: absolute;
	left: 12px;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	color: var(--bm-teal);
	pointer-events: none;
}

.bm-summary__coupon input.bm-coupon__input {
	flex: 1;
	min-width: 0;
	height: 42px;
	border: 1.5px dashed var(--bm-teal);
	border-radius: var(--bm-r-md);
	background: var(--bm-teal-tint-05);
	padding: 0 12px 0 34px;
	font-size: 13px;
	font-weight: 500;
	font-family: var(--bm-mono);
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--bm-ink);
	outline: none;
}

.bm-summary__coupon input.bm-coupon__input::placeholder {
	font-family: var(--bm-font);
	text-transform: none;
	letter-spacing: normal;
	color: var(--bm-text-muted);
}

.bm-summary__coupon input.bm-coupon__input:focus {
	border-style: solid;
	box-shadow: var(--bm-focus-ring);
}

.bm-summary__coupon .bm-coupon__apply {
	flex: none;
	height: 42px;
	padding: 0 15px;
	border: none;
	border-radius: var(--bm-r-md);
	background: var(--bm-ink);
	color: #fff;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition: background var(--bm-t);
}

.bm-summary__coupon .bm-coupon__apply:hover {
	background: var(--bm-teal);
}

/* summary totals */
.bm-summary__totals {
	padding: 14px 20px 18px;
	border-top: 1px solid var(--bm-border-faint);
	display: flex;
	flex-direction: column;
	gap: 7px;
	font-size: 13px;
	color: var(--bm-text-soft);
}

.bm-summary__row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
}

.bm-summary__val {
	color: var(--bm-ink);
	text-align: right;
}

.bm-summary__row--save .bm-summary__val,
.bm-summary__free {
	color: var(--bm-in-stock);
	font-weight: 600;
}

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

.bm-summary__ship-name {
	color: var(--bm-text-muted);
}

.bm-summary__row--total {
	padding-top: 10px;
	margin-top: 4px;
	border-top: 1px dashed var(--bm-border-strong);
	font-size: 15px;
	font-weight: 600;
	color: var(--bm-ink);
}

.bm-summary__row--total .bm-summary__val {
	font-size: 26px;
	font-weight: 700;
	letter-spacing: -0.02em;
}

.bm-summary__saving {
	display: flex;
	align-items: center;
	gap: 7px;
	margin-top: 4px;
	padding: 9px 12px;
	border-radius: var(--bm-r-md);
	background: var(--bm-teal-tint);
	font-size: 12.5px;
	font-weight: 600;
	color: var(--bm-teal-hover);
}

.bm-summary__terms {
	font-size: 11px;
	line-height: 1.5;
	color: var(--bm-text-faint);
	margin: 4px 0 0;
}

.bm-checkout__chips {
	list-style: none;
	margin: 12px 0 0;
	padding: 0;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 6px 16px;
}

.bm-checkout__chips li {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-family: var(--bm-mono);
	font-size: 10px;
	letter-spacing: 0.04em;
	color: var(--bm-text-muted);
}

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

.bm-checkout__backtocart a {
	font-weight: 600;
}

/* --- step 1 field polish -------------------------------------------- */

.bm-checkout .bm-field-check .woocommerce-input-wrapper > label,
.bm-checkout .bm-field-check label.checkbox {
	font-family: var(--bm-font);
	font-size: 12.5px;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	color: var(--bm-text-soft);
}

/* --- step 1: flatten WooCommerce's own field cards -------------------
 * The billing/shipping/notes groups already sit inside the step card, so they drop their
 * own card chrome; only the "ship to a different address" and account boxes keep a frame
 * because they read as standalone choices. */

.bm-checkout .bm-checkout__details {
	gap: 16px;
}

.bm-checkout .bm-checkout__details .woocommerce-billing-fields,
.bm-checkout .bm-checkout__details .woocommerce-shipping-fields,
.bm-checkout .bm-checkout__details .woocommerce-additional-fields {
	background: none;
	border: none;
	border-radius: 0;
	padding: 0;
}

.bm-checkout .bm-checkout__details .woocommerce-account-fields,
.bm-checkout .bm-checkout__details .woocommerce-shipping-fields {
	border-top: 1px solid var(--bm-border-faint);
	padding-top: 16px;
}

.bm-checkout .bm-checkout__details .woocommerce-account-fields {
	background: none;
	border-left: none;
	border-right: none;
	border-bottom: none;
	border-radius: 0;
	padding-left: 0;
	padding-right: 0;
}

/* The group headings duplicate the step heading; the shipping toggle keeps its own. */
.bm-checkout .bm-checkout__details .woocommerce-billing-fields > h3,
.bm-checkout .bm-checkout__details .woocommerce-additional-fields > h3 {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Checkbox rows read as sentences, not as field labels. */
.bm-checkout .bm-field-check label,
.bm-checkout .bm-field-check .woocommerce-form__label-for-checkbox,
.bm-checkout .form-row label.woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-family: var(--bm-font);
	font-size: 12.5px;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	color: var(--bm-text-soft);
	cursor: pointer;
	margin: 0;
}

.bm-checkout .bm-field-check .optional {
	display: none;
}

.bm-checkout .bm-field-check {
	margin-top: 2px;
}

/* Step 3: WooCommerce's gateway list inside the payment card. */
.bm-step--payment .wc_payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 9px;
}

.bm-step--payment .wc_payment_methods > li {
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-xl);
	padding: 13px 14px;
	background: var(--bm-surface);
	transition: border-color var(--bm-t), background var(--bm-t);
}

.bm-step--payment .wc_payment_methods > li.bm-pm-selected {
	border-color: var(--bm-teal);
	border-width: 1.5px;
	background: var(--bm-teal-tint-05);
	padding: 12.5px 13.5px;
}

.bm-step--payment .wc_payment_methods label {
	font-size: 14px;
	font-weight: 600;
	color: var(--bm-ink);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin: 0;
}

.bm-step--payment .wc_payment_methods .payment_box {
	margin: 10px 0 0;
	padding: 0;
	background: none;
	font-size: 12.5px;
	line-height: 1.55;
	color: var(--bm-text-soft-2);
}

.bm-step--payment .wc_payment_methods .payment_box p:last-child {
	margin-bottom: 0;
}

/* --- step 1: the design's field grid ---------------------------------
 * The hi-fi pairs Email + Phone, then Street, then City / State / ZIP on one row.
 * A 12-column track lets each field claim the design's proportions while the
 * `.form-row-first` / `.form-row-last` contract WooCommerce emits keeps working. */

.bm-checkout .woocommerce-billing-fields__field-wrapper,
.bm-checkout .woocommerce-shipping-fields__field-wrapper,
.bm-checkout .woocommerce-additional-fields__field-wrapper {
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: 14px 12px;
}

.bm-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
.bm-checkout .woocommerce-shipping-fields__field-wrapper > .form-row,
.bm-checkout .woocommerce-additional-fields__field-wrapper > .form-row {
	grid-column: span 12;
}

/* Same scope as the span-12 default above, or that rule wins on specificity. */
.bm-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
.bm-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,
.bm-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first,
.bm-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last {
	grid-column: span 6;
}

.bm-checkout #billing_city_field,
.bm-checkout #shipping_city_field {
	grid-column: span 5;
}

.bm-checkout #billing_state_field,
.bm-checkout #shipping_state_field {
	grid-column: span 4;
}

.bm-checkout #billing_postcode_field,
.bm-checkout #shipping_postcode_field {
	grid-column: span 3;
}

/* The rule under the contact block, exactly where the design draws it. */
.bm-checkout .bm-fieldsep {
	grid-column: span 12;
	height: 1px;
	padding: 0;
	margin: 2px 0;
	background: var(--bm-border-faint);
}

/* Any checkbox row reads as a sentence, including ones plugins inject
 * (the newsletter opt-in arrives with its own wrapper, not a .form-row). */
.bm-checkout .form-row label.checkbox,
.bm-checkout label.woocommerce-form__label-for-checkbox,
.bm-checkout .omnisend_newsletter_checkbox_field label,
.bm-checkout .wfacp-form-control-wrapper label.checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-family: var(--bm-font);
	font-size: 12.5px;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	color: var(--bm-text-soft);
	cursor: pointer;
	margin: 0;
}

.bm-checkout .omnisend_newsletter_checkbox_field,
.bm-checkout .wfacp-form-control-wrapper {
	grid-column: span 12;
}

.bm-checkout .omnisend_newsletter_checkbox_field .optional,
.bm-checkout .form-row label.checkbox .optional {
	display: none;
}

@media (max-width: 620px) {
	.bm-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
	.bm-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,
	.bm-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first,
	.bm-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last,
	.bm-checkout #billing_city_field,
	.bm-checkout #shipping_city_field {
		grid-column: span 12;
	}

	.bm-checkout #billing_state_field,
	.bm-checkout #shipping_state_field,
	.bm-checkout #billing_postcode_field,
	.bm-checkout #shipping_postcode_field {
		grid-column: span 6;
	}
}

/* The two marketing consents sit directly under the fields they refer to: newsletter
 * under Email, SMS under Phone. Ids beat FunnelKit's own wfacp-col-full width rule. */
.bm-checkout #omnisend_newsletter_checkbox_field,
.bm-checkout #omnisend_sms_checkbox_field {
	grid-column: span 6;
	margin-top: -4px;
}

.bm-checkout #omnisend_newsletter_checkbox_field label,
.bm-checkout #omnisend_sms_checkbox_field label {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	font-family: var(--bm-font);
	font-size: 12px;
	line-height: 1.5;
	letter-spacing: normal;
	text-transform: none;
	color: var(--bm-text-soft);
	cursor: pointer;
	margin: 0;
}

.bm-checkout #omnisend_newsletter_checkbox_field input[type="checkbox"],
.bm-checkout #omnisend_sms_checkbox_field input[type="checkbox"] {
	margin-top: 2px;
	flex: none;
}

@media (max-width: 620px) {
	.bm-checkout #omnisend_newsletter_checkbox_field,
	.bm-checkout #omnisend_sms_checkbox_field {
		grid-column: span 12;
	}
}

/* The design stacks the summary under the steps below 1010px. */
@media (max-width: 1010px) {
	.bm-checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	.bm-checkout__aside {
		position: static;
		max-width: 560px;
		width: 100%;
		margin: 0 auto;
	}
}

@media (max-width: 640px) {
	.bm-cobar__inner {
		flex-wrap: wrap;
		gap: 10px 14px;
	}

	.bm-cobar__ssl {
		order: 2;
		margin-left: auto;
	}

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

	.bm-xsell--checkout .bm-xsell__row {
		flex-wrap: wrap;
	}

	.bm-xsell--checkout .bm-xsell__add {
		margin-left: auto;
	}
}

/* ===================================================================
 * Beacon Checkout research attestation (#beacon-attestation)
 * Plugin markup restyled to match the checkout; markup, field names and
 * validation are the plugin's and untouched. Scoped under .bm-checkout
 * so these beat the plugin's own sheet and its inline --beacon-* vars.
 * =================================================================== */

.bm-checkout .beacon-attestation {
	--beacon-fg: var(--bm-text);
	--beacon-muted: var(--bm-text-muted);
	--beacon-accent: var(--bm-teal);
	--beacon-border: var(--bm-border);
	--beacon-surface: var(--bm-surface);
	--beacon-panel: var(--bm-surface);
	--beacon-checked-bg: var(--bm-teal-tint-05);
	--beacon-focus-ring: transparent;
	margin: 22px 0 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none;
	font-family: var(--bm-font);
}

/* Header: mono kicker + rule, then the title */
.bm-checkout .beacon-attestation-eyebrow {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 8px;
	font-family: var(--bm-mono);
	font-size: 10px;
	font-weight: 400;
	letter-spacing: 0.12em;
	color: var(--bm-text-label);
}

.bm-checkout .beacon-attestation-eyebrow::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--bm-border-faint);
}

.bm-checkout .beacon-attestation-header h3 {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--bm-text);
}

.bm-checkout .beacon-attestation-section {
	margin-top: 12px;
}

/* Purchaser type */
.bm-checkout .beacon-field-label {
	margin-bottom: 7px;
	font-family: var(--bm-mono);
	font-size: 10px;
	font-weight: 400;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--bm-text-label);
	opacity: 1;
}

.bm-checkout .beacon-field-select::after {
	display: none; /* the theme's select skin already draws a chevron */
}

.bm-checkout .beacon-field-control select,
.bm-checkout .beacon-field-control input.input-text {
	height: 47px;
	min-height: 47px;
	padding: 0 36px 0 14px;
	border: 1px solid var(--bm-border-input);
	border-radius: var(--bm-r-lg);
	background-color: var(--bm-surface);
	font-family: var(--bm-font);
	font-size: 14px;
	color: var(--bm-text);
}

.bm-checkout .beacon-field-control input.input-text {
	padding-right: 14px;
}

.bm-checkout .beacon-field-control select:focus,
.bm-checkout .beacon-field-control input.input-text:focus {
	border-color: var(--bm-teal);
	box-shadow: var(--bm-focus-ring);
}

/* Statements: teal-tick checklist on a quiet panel */
.bm-checkout .beacon-attest-bullets {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin: 0 0 10px;
	padding: 14px 15px;
	list-style: none;
	border: 1px solid var(--bm-border-faint);
	border-radius: var(--bm-r-lg);
	background: var(--bm-surface-muted);
}

.bm-checkout .beacon-attest-bullets li {
	position: relative;
	padding: 0 0 0 26px;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;
	color: var(--bm-text-mid);
}

.bm-checkout .beacon-attest-bullets li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1px;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--bm-teal-tint-14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%230E93AB' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E") center / 10px no-repeat;
}

/* "I confirm all of the statements above": custom checkbox card */
.bm-checkout .beacon-attest-label {
	display: flex !important;
	align-items: center;
	gap: 11px;
	margin: 0;
	padding: 13px 14px;
	border: 1px solid var(--bm-border);
	border-radius: var(--bm-r-lg);
	background: var(--bm-surface);
	cursor: pointer;
	transition: border-color var(--bm-t), background var(--bm-t);
}

.bm-checkout .beacon-attest-label:hover {
	border-color: var(--bm-border-hover);
}

.bm-checkout .beacon-attest-label:has(input:checked) {
	border-color: var(--bm-teal);
	box-shadow: inset 0 0 0 0.5px var(--bm-teal);
	background: var(--bm-teal-tint-05);
}

.bm-checkout .beacon-attest-label input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	flex: none;
	width: 18px;
	height: 18px;
	margin: 0;
	border: 1.5px solid var(--bm-radio-off);
	border-radius: 5px;
	background: var(--bm-surface) center / 11px no-repeat;
	cursor: pointer;
	transition: background-color var(--bm-t), border-color var(--bm-t);
}

.bm-checkout .beacon-attest-label input[type="checkbox"]:checked {
	border-color: var(--bm-teal);
	background-color: var(--bm-teal);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E");
}

.bm-checkout .beacon-attest-label input[type="checkbox"]:focus-visible {
	outline: none;
	box-shadow: var(--bm-focus-ring);
}

.bm-checkout .beacon-attest-short {
	font-size: 13.5px;
	font-weight: 600;
	color: var(--bm-text);
}

/* Missed-confirmation nudge: keep the plugin's cue, in the theme's error colour */
.bm-checkout .beacon-attestation.beacon-attestation--attention {
	box-shadow: none;
	animation: none;
}

.bm-checkout .beacon-attestation.beacon-attestation--attention .beacon-attest-all-label {
	outline: none;
	border-color: var(--bm-error);
	background: var(--bm-surface);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--bm-error) 18%, transparent);
}

.bm-checkout .beacon-attestation-error {
	border-radius: var(--bm-r-lg);
	font-size: 13px;
}

/* Expandable statement / agreement rows, joined into one list */
.bm-checkout .beacon-legal-details {
	margin: 0;
	border: 1px solid var(--bm-border);
	border-radius: 0;
	background: var(--bm-surface);
}

.bm-checkout .beacon-statement-details {
	margin-top: 10px;
	border-radius: var(--bm-r-lg) var(--bm-r-lg) 0 0;
}

.bm-checkout .beacon-statement-details + .beacon-legal-details {
	margin-top: 0;
	border-top: 0;
	border-radius: 0 0 var(--bm-r-lg) var(--bm-r-lg);
}

.bm-checkout .beacon-legal-details > summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 12px 14px;
	font-size: 12.5px;
	font-weight: 500;
	color: var(--bm-text-mid);
}

.bm-checkout .beacon-legal-details > summary:hover {
	color: var(--bm-text);
}

.bm-checkout .beacon-legal-details > summary::after,
.bm-checkout .beacon-legal-details[open] > summary::after {
	content: "";
	float: none;
	flex: none;
	width: 14px;
	height: 14px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%238A969C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center / 14px no-repeat;
	transition: transform var(--bm-t);
}

.bm-checkout .beacon-legal-details[open] > summary::after {
	transform: rotate(180deg);
}

.bm-checkout .beacon-legal-body,
.bm-checkout .beacon-attest-full-list {
	border-top: 1px solid var(--bm-border-faint);
	padding: 12px 14px;
	font-size: 12px;
	line-height: 1.55;
	color: var(--bm-text-muted);
}

.bm-checkout .beacon-attest-full-list strong {
	font-size: 12.5px;
	color: var(--bm-text);
}

.bm-checkout .beacon-legal-meta {
	padding: 0 14px 12px;
	font-family: var(--bm-mono);
	font-size: 10px;
	color: var(--bm-text-faint);
}

.bm-checkout .beacon-assent-sentence {
	margin: 10px 0 0;
	font-size: 11.5px;
	line-height: 1.5;
	color: var(--bm-text-faint);
}

/* Split shipping (inc/split-fulfilment.php): two shipments at checkout */
.bm-sf-title { margin-top: 14px; }
.bm-sf-title:first-of-type { margin-top: 4px; }
