/**
 * JSM Product Page CRO — shared + desktop styles only.
 * Mobile layout lives in jsm-product-page-cro-mobile.css (body.jsm-cro-is-mobile).
 */

:root {
	--jsm-cro-navy: #002b5c;
	--jsm-cro-blue: #004aad;
	--jsm-cro-green: #16813a;
	--jsm-cro-border: #dce4f2;
	--jsm-cro-bg: #f7faff;
	--jsm-cro-text: #1e293b;
	--jsm-cro-muted: #64748b;
	--jsm-cro-radius: 12px;
	--jsm-cro-shadow: 0 8px 24px rgba(0, 43, 92, 0.08);
}

/* Announcement bar — full width above header/content */
.jsm-cro-announcement {
	background: var(--jsm-cro-navy);
	color: #fff;
	font-size: 13px;
	line-height: 1.35;
	padding: 10px 0;
	width: 100%;
	position: relative;
	z-index: 10;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.jsm-cro-announcement__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	align-items: center;
	column-gap: 20px;
	row-gap: 0;
	max-width: 100%;
}

.jsm-cro-announcement__delivery,
.jsm-cro-announcement__rating,
.jsm-cro-announcement__tags {
	margin: 0;
	font-size: 13px;
	font-weight: 500;
}

.jsm-cro-announcement__delivery {
	justify-self: start;
}

.jsm-cro-announcement__aside {
	justify-self: center;
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.jsm-cro-announcement__rating {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	white-space: nowrap;
}

.jsm-cro-announcement__rating-score {
	font-weight: 600;
}

.jsm-cro-announcement__rating-stars {
	letter-spacing: 0.06em;
	font-size: 11px;
	line-height: 1;
	color: #fde68a;
}

.jsm-cro-announcement__rating-via {
	opacity: 0.92;
	font-size: 12px;
}

/* Reviews temporarily off — rating omitted in template */
.jsm-cro-announcement--no-reviews .jsm-cro-announcement__rating {
	display: none !important;
}

.jsm-cro-announcement__tags {
	justify-self: end;
	text-align: right;
	opacity: 0.92;
	font-size: 12px;
}

.jsm-cro-announcement__cart {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 4px;
	min-width: 36px;
	min-height: 36px;
	padding: 0 8px;
	border: 1px solid rgba(255, 255, 255, 0.28);
	border-radius: 999px;
	color: #fff;
	text-decoration: none;
	background: rgba(255, 255, 255, 0.08);
	transition: background 0.15s ease, border-color 0.15s ease;
}

.jsm-cro-announcement__cart:hover,
.jsm-cro-announcement__cart:focus-visible {
	background: rgba(255, 255, 255, 0.16);
	border-color: rgba(255, 255, 255, 0.45);
	color: #fff;
}

.jsm-cro-announcement__cart-icon {
	display: block;
	flex-shrink: 0;
}

.jsm-cro-announcement__cart-count {
	min-width: 16px;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

/* Hide native attribute table only when CRO bottle cards replace it. */
.jsm-cro-active.jsm-cro-has-bottle-options .variations_form .variations,
.jsm-cro-active.jsm-cro-has-bottle-options .variations_form table.variations,
.jsm-cro-active.jsm-cro-has-bottle-options .variations_form .reset_variations,
.jsm-cro-active.jsm-cro-has-bottle-options .single_variation_wrap > .woocommerce-variation {
	display: none !important;
}

/* Non-bottle variable products (e.g. dispenser color/temperature) keep native selects. */
.jsm-cro-active:not(.jsm-cro-has-bottle-options) .variations_form table.variations {
	display: table !important;
	width: 100%;
	margin: 0 0 14px;
	border-collapse: separate;
	border-spacing: 0 8px;
}
.jsm-cro-active:not(.jsm-cro-has-bottle-options) .variations_form table.variations td.label {
	padding: 0 12px 0 0;
	vertical-align: middle;
	font-weight: 600;
	color: #0f172a;
}
.jsm-cro-active:not(.jsm-cro-has-bottle-options) .variations_form table.variations td.value {
	padding: 0;
	width: 100%;
}
.jsm-cro-active:not(.jsm-cro-has-bottle-options) .variations_form table.variations select {
	width: 100%;
	min-height: 44px;
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	padding: 8px 12px;
	background: #fff;
}

/* Plastic cups: clean aligned pack size + quantity (this product only). */
body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-buybox__config form.variations_form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 0;
	margin: 0;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations,
body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations tbody,
body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations tr,
body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations td,
body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations th {
	display: block;
	width: 100%;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations {
	margin: 0;
	padding: 0;
	border-spacing: 0;
}

body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations th.label,
body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations td.label,
body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations th.label label {
	display: block;
	padding: 0 0 8px;
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--jsm-cro-navy, #002b5c);
}

body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations td.value {
	padding: 0;
}

body.jsm-cro-active.jsm-cro-plastic-cups .variations_form table.variations select {
	width: 100%;
	max-width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 12px 14px;
	border: 1.5px solid #d0d7e2;
	border-radius: 10px;
	background: #fff;
	color: #0f172a;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	box-shadow: none;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234b5361' d='M1.4 1.2 6 5.8l4.6-4.6 1.2 1.2L6 8.2.2 2.4z'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 12px 8px;
	padding-right: 36px;
}

body.jsm-cro-active.jsm-cro-plastic-cups .variations_form .reset_variations {
	display: none !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator {
	margin: 0;
	padding: 0;
	gap: 0;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-step--qty,
body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-quantity-card {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-step--qty .jsm-cro-step__details {
	margin: 0;
	padding: 0;
	background: transparent !important;
	border: 0 !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-step--qty .jsm-cro-step__summary {
	display: flex;
	align-items: center;
	gap: 0;
	padding: 0 0 8px;
	margin: 0;
	cursor: default;
	pointer-events: none;
	list-style: none;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-step--qty .jsm-cro-step__num {
	display: none !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-step--qty .jsm-cro-step__title {
	margin: 0;
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	color: var(--jsm-cro-navy, #002b5c);
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-step--qty .jsm-cro-step__body {
	display: block !important;
	padding: 0 !important;
	margin: 0 !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-panel,
body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-row,
body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-stack,
body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-stepper-wrap {
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	gap: 0;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-controls,
body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-controls__quantity,
body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .quantity {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-controls__quantity {
	display: grid !important;
	grid-template-columns: 48px 1fr 48px;
	align-items: stretch;
	min-height: 48px;
	border: 1.5px solid #d0d7e2;
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
	box-sizing: border-box;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-controls__quantity .minus,
body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-controls__quantity .plus {
	width: 48px !important;
	min-width: 48px !important;
	height: auto !important;
	min-height: 48px !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #f8fafc !important;
	color: var(--jsm-cro-navy, #002b5c) !important;
	font-size: 18px !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	box-shadow: none !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-controls__quantity .minus {
	border-right: 1px solid #e2e8f0 !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-controls__quantity .plus {
	border-left: 1px solid #e2e8f0 !important;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-controls__quantity input.qty {
	width: 100% !important;
	min-width: 0 !important;
	height: 48px !important;
	min-height: 48px !important;
	margin: 0 !important;
	padding: 0 8px !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
	color: var(--jsm-cro-navy, #002b5c) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	text-align: center !important;
	box-shadow: none !important;
	-moz-appearance: textfield;
}

body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-controls__quantity input.qty::-webkit-outer-spin-button,
body.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-qty-controls__quantity input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

body.jsm-cro-is-mobile.jsm-cro-active.jsm-cro-plastic-cups .jsm-cro-configurator .jsm-cro-step--qty {
	margin: 0 !important;
}
/* Hide Clear + orphaned native qty steppers; qty chips remain the control. */
.jsm-cro-active:not(.jsm-cro-has-bottle-options) .variations_form .reset_variations,
.jsm-cro-active:not(.jsm-cro-has-bottle-options) form.variations_form > .quantity {
	display: none !important;
}
.jsm-cro-active .woocommerce-tabs,
.jsm-cro-active .related.products,
.jsm-cro-active .up-sells,
.jsm-cro-active .upsells.products {
	display: none !important;
}

/* Layout grid */
.jsm-cro-product-wrap {
	width: 100%;
	clear: both;
}
.jsm-cro-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin: 24px 0 32px;
}
.jsm-cro-postcode { display: none; margin-bottom: 16px; }
.jsm-cro-summary-mobile { display: none; }
.jsm-cro-summary-card { display: none; }
.jsm-cro-mobile-flow { display: none; }
.jsm-cro-mobile-cart-fixed { display: none; }
.jsm-cro-sticky-cta { display: none; }
.jsm-cro-quick-checkout--mobile { display: none; }
.jsm-cro-trust-benefits--mobile { display: none; }
.jsm-cro-accordions--mobile { display: none; }
.jsm-cro-help--mobile { display: none; }
.jsm-cro-related-wrap--mobile { display: none; }
.jsm-cro-related-sidebar--left,
.jsm-cro-related-sidebar--right { display: none; }

@media (min-width: 1024px) {
	.jsm-cro-layout.product-layout {
		grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
		gap: 28px;
		align-items: start;
	}
	.jsm-cro-layout__media { grid-column: 1; min-width: 0; }
	.jsm-cro-layout__buybox { grid-column: 2; min-width: 0; align-self: start; }
	.jsm-cro-postcode { display: block; margin-bottom: 14px; }
	.jsm-cro-summary-mobile { display: none !important; }
	.jsm-cro-mobile-flow { display: none !important; }
	.jsm-cro-summary-card { display: block; }
	.jsm-cro-quick-checkout--mobile { display: none !important; }
	.jsm-cro-trust-benefits--mobile { display: none !important; }
	.jsm-cro-accordions--mobile { display: none !important; }
	.jsm-cro-help--mobile { display: none !important; }
	.jsm-cro-related-wrap--mobile { display: none !important; }
	body.jsm-cro-active .jsm-cro-related-sidebar--left,
	body.jsm-cro-active .jsm-cro-related-sidebar--right,
	body.jsm-cro-active .jsm-cro-recommend { display: none !important; }
}

/* Gallery */
.jsm-cro-gallery-card {
	position: relative;
	background: #fff;
	border: 1px solid var(--jsm-cro-border);
	border-radius: var(--jsm-cro-radius);
	padding: 16px;
	box-shadow: var(--jsm-cro-shadow);
}
.jsm-cro-gallery-card__badge {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 2;
	background: #f59e0b;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 6px 10px;
	border-radius: 999px;
}
.jsm-cro-gallery-card__main .woocommerce-product-gallery { margin: 0; float: none !important; width: 100% !important; }
.jsm-cro-gallery-card__main .woocommerce-product-gallery__wrapper,
.jsm-cro-gallery-card__main .woocommerce-product-gallery__image {
	max-width: 100%;
}
.jsm-cro-gallery-card__main .woocommerce-product-gallery__image img {
	display: block;
	max-height: 280px;
	width: auto !important;
	max-width: 100%;
	margin: 0 auto;
	object-fit: contain;
}
.jsm-cro-gallery-card__main .flex-control-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 12px 0 0 !important;
	padding: 0 !important;
}
.jsm-cro-gallery-card__main .flex-control-thumbs li {
	width: 56px !important;
	float: none !important;
	margin: 0 !important;
}
.jsm-cro-gallery-card__main .flex-control-thumbs img {
	max-height: 56px;
	object-fit: cover;
	border-radius: 8px;
}

/* Product info accordions — shared compact subtle style */
.jsm-cro-info-accordions,
.jsm-cro-product-tabs {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
}

.jsm-cro-info-accordion,
.jsm-cro-product-tab {
	margin: 0;
	border: 1px solid #e8edf3;
	border-radius: 8px;
	background: #fafbfc;
	overflow: hidden;
}

.jsm-cro-info-accordion__summary,
.jsm-cro-product-tab__summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	min-height: 40px;
	padding: 9px 12px;
	font-size: 13px;
	font-weight: 600;
	line-height: 1.3;
	color: #475569;
	cursor: pointer;
	list-style: none;
}

.jsm-cro-info-accordion__summary::-webkit-details-marker,
.jsm-cro-product-tab__summary::-webkit-details-marker {
	display: none;
}

.jsm-cro-info-accordion__summary::after,
.jsm-cro-product-tab__summary::after {
	content: "";
	flex-shrink: 0;
	width: 6px;
	height: 6px;
	margin-left: 8px;
	border-right: 1.5px solid #94a3b8;
	border-bottom: 1.5px solid #94a3b8;
	transform: rotate(45deg);
	transition: transform 0.15s ease, border-color 0.15s ease;
}

.jsm-cro-info-accordion[open] .jsm-cro-info-accordion__summary,
.jsm-cro-product-tab[open] .jsm-cro-product-tab__summary {
	color: var(--jsm-cro-navy);
	border-bottom: 1px solid #e8edf3;
}

.jsm-cro-info-accordion[open] .jsm-cro-info-accordion__summary::after,
.jsm-cro-product-tab[open] .jsm-cro-product-tab__summary::after {
	transform: rotate(-135deg);
	margin-top: 2px;
	border-color: var(--jsm-cro-blue);
}

.jsm-cro-info-accordion__body,
.jsm-cro-product-tab__body {
	padding: 10px 12px 12px;
	color: var(--jsm-cro-muted);
	font-size: 13px;
	line-height: 1.5;
}

.jsm-cro-info-accordion__body > *:first-child,
.jsm-cro-product-tab__body > *:first-child {
	margin-top: 0;
}

.jsm-cro-info-accordion__body p,
.jsm-cro-product-tab__body p {
	margin: 0 0 8px;
}

.jsm-cro-info-accordion__body p:last-child,
.jsm-cro-product-tab__body p:last-child {
	margin-bottom: 0;
}

.jsm-cro-info-accordion__body .woocommerce-product-attributes,
.jsm-cro-product-tab__body .woocommerce-product-attributes {
	width: 100%;
	font-size: 13px;
}

.jsm-cro-info-accordion__body #reviews .commentlist,
.jsm-cro-product-tab__body #reviews .commentlist {
	margin: 0;
	padding: 0;
}

.jsm-cro-info-accordion__body #reviews .woocommerce-Reviews-title,
.jsm-cro-product-tab__body #reviews .woocommerce-Reviews-title {
	display: none;
}

.jsm-cro-layout__media .jsm-cro-info-accordions,
.jsm-cro-layout__media .jsm-cro-product-tabs,
.jsm-cro-layout__media .jsm-cro-product-tabs--desktop {
	margin-top: 12px;
}

/* Intro */
.jsm-cro-intro__label {
	margin: 0 0 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--jsm-cro-blue);
}
.jsm-cro-intro__title {
	margin: 0 0 10px;
	font-size: clamp(1.5rem, 2.5vw, 2rem);
	line-height: 1.2;
	color: var(--jsm-cro-navy);
}
.jsm-cro-intro__rating { margin-bottom: 12px; }
.jsm-cro-intro__desc { color: var(--jsm-cro-muted); margin-bottom: 16px; }
.jsm-cro-intro__desc img,
.jsm-cro-intro__desc figure,
.jsm-cro-intro__desc .gallery,
.jsm-cro-intro__desc .wp-block-image,
.jsm-cro-intro__desc .wp-block-gallery,
.jsm-cro-info-accordion__body .woocommerce-Tabs-panel--description img,
.jsm-cro-info-accordion__body .woocommerce-Tabs-panel--description figure,
.jsm-cro-info-accordion__body .woocommerce-Tabs-panel--description .gallery,
.jsm-cro-info-accordion__body .woocommerce-Tabs-panel--description .wp-block-image,
.jsm-cro-info-accordion__body .woocommerce-Tabs-panel--description .wp-block-gallery {
	display: none !important;
}
.jsm-cro-feature-row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 10px;
	list-style: none;
	margin: 0 0 18px;
	padding: 0;
}
.jsm-cro-feature-row li {
	border: 1px solid var(--jsm-cro-border);
	border-radius: 10px;
	padding: 10px;
	background: #fff;
	font-size: 11px;
}
.jsm-cro-feature-row strong { display: block; font-size: 12px; color: var(--jsm-cro-text); }

/* Price card */
.jsm-cro-price-card {
	border: 1px solid var(--jsm-cro-border);
	border-radius: var(--jsm-cro-radius);
	background: var(--jsm-cro-bg);
	padding: 14px;
	margin-bottom: 18px;
}
.jsm-cro-price-card__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	font-size: 14px;
}
.jsm-cro-price-card__row--sub { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--jsm-cro-border); }
.jsm-cro-badge {
	display: inline-block;
	padding: 3px 8px;
	border-radius: 999px;
	background: var(--jsm-cro-blue);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
}
.jsm-cro-badge--save { background: var(--jsm-cro-green); }

/* Steps */
.jsm-cro-step { margin-bottom: 22px; }
.jsm-cro-step__head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.jsm-cro-step__num {
	width: 28px; height: 28px; border-radius: 50%;
	background: var(--jsm-cro-blue); color: #fff;
	display: inline-flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 14px;
}
.jsm-cro-step__title { margin: 0; font-size: 17px; font-weight: 700; }

/* Bottle cards */
.jsm-cro-bottle__name,
.jsm-cro-bottle__name-sub {
	display: inline;
}

.jsm-cro-bottle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.jsm-cro-bottle {
	display: grid; grid-template-columns: auto 1fr; gap: 10px;
	width: 100%; text-align: left; padding: 14px;
	border: 2px solid var(--jsm-cro-border); border-radius: var(--jsm-cro-radius);
	background: #fff; cursor: pointer;
}
.jsm-cro-bottle.is-selected { border-color: var(--jsm-cro-blue); background: var(--jsm-cro-bg); box-shadow: 0 0 0 1px var(--jsm-cro-blue); }
.jsm-cro-bottle__radio {
	width: 18px; height: 18px; border: 2px solid #cbd5e1; border-radius: 50%; margin-top: 4px;
}
.jsm-cro-bottle.is-selected .jsm-cro-bottle__radio { border-color: var(--jsm-cro-blue); box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 6px var(--jsm-cro-blue); }
.jsm-cro-bottle__body strong { display: block; font-size: 14px; }
.jsm-cro-bottle__body span { display: block; margin-top: 4px; font-size: 12px; color: var(--jsm-cro-muted); }

/* Plans */
.jsm-cro-plans { display: flex; flex-direction: column; gap: 10px; }
.jsm-cro-plan {
	display: grid; grid-template-columns: auto 1fr; gap: 12px;
	padding: 14px; border: 2px solid var(--jsm-cro-border); border-radius: var(--jsm-cro-radius);
	background: #fff; cursor: pointer;
}
.jsm-cro-plan input { position: absolute; opacity: 0; pointer-events: none; }
.jsm-cro-plan.is-selected { border-color: var(--jsm-cro-blue); background: var(--jsm-cro-bg); }
.jsm-cro-plan__radio { width: 18px; height: 18px; border: 2px solid #cbd5e1; border-radius: 50%; margin-top: 2px; }
.jsm-cro-plan.is-selected .jsm-cro-plan__radio { border-color: var(--jsm-cro-blue); box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 6px var(--jsm-cro-blue); }
.jsm-cro-plan__row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.jsm-cro-plan__desc { display: block; margin-top: 4px; font-size: 13px; color: var(--jsm-cro-muted); }
.jsm-cro-frequency { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.jsm-cro-frequency__btn {
	padding: 8px 12px; border: 1px solid var(--jsm-cro-border); border-radius: 999px;
	background: #fff; font-size: 12px; font-weight: 600; cursor: pointer;
}
.jsm-cro-frequency__btn.is-active { background: var(--jsm-cro-blue); border-color: var(--jsm-cro-blue); color: #fff; }
.jsm-cro-plan[data-plan="one-time"] .jsm-cro-frequency { display: none; }

/* Quantity */
.jsm-cro-qty-row { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.jsm-cro-qty-controls .quantity {
	display: inline-flex !important; align-items: center;
	border: 1px solid var(--jsm-cro-border); border-radius: 10px; overflow: hidden; margin: 0 !important;
}
.jsm-cro-qty-controls .qty { flex: 1 1 auto; width: 100% !important; min-width: 2.75rem !important; min-height: 44px; text-align: center !important; font-weight: 700 !important; border: 0 !important; }
.jsm-cro-qty-controls .minus, .jsm-cro-qty-controls .plus { width: 44px !important; min-height: 44px; border: 0 !important; background: #f8fafc !important; }
.jsm-cro-qty-quick { display: flex; flex-wrap: wrap; gap: 8px; }
.jsm-cro-qty-quick__btn {
	padding: 10px 14px; border: 1px solid var(--jsm-cro-border); border-radius: 999px;
	background: #fff; font-size: 13px; font-weight: 600; cursor: pointer;
}
.jsm-cro-qty-quick__btn.is-active { border-color: var(--jsm-cro-blue); background: var(--jsm-cro-bg); color: var(--jsm-cro-blue); }
.jsm-cro-qty-note { font-size: 13px; color: var(--jsm-cro-muted); margin: 8px 0 14px; }
.jsm-cro-audience__title { margin: 0 0 8px; font-size: 15px; font-weight: 700; }
.jsm-cro-audience { display: flex; flex-wrap: wrap; gap: 8px; }
.jsm-cro-audience__btn {
	padding: 10px 16px; border: 1px solid var(--jsm-cro-border); border-radius: 999px;
	background: #fff; font-size: 13px; font-weight: 600; cursor: pointer;
}
.jsm-cro-audience__btn.is-active { background: var(--jsm-cro-blue); border-color: var(--jsm-cro-blue); color: #fff; }

/* Order summary */
.jsm-cro-summary-card,
.jsm-cro-summary-mobile {
	border: 1px solid var(--jsm-cro-border);
	border-radius: var(--jsm-cro-radius);
	background: #fff;
	padding: 18px;
	box-shadow: var(--jsm-cro-shadow);
}
.jsm-cro-summary-card__head,
.jsm-cro-summary-mobile__head {
	display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; margin-bottom: 14px;
}
.jsm-cro-summary-card__title { margin: 0; font-size: 18px; font-weight: 700; }
.jsm-cro-summary-card__edit { font-size: 11px; color: var(--jsm-cro-muted); max-width: 110px; text-align: right; line-height: 1.3; }
.jsm-cro-summary-lines { margin: 0 0 12px; }
.jsm-cro-summary-line { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; font-size: 14px; }
.jsm-cro-summary-line dt { margin: 0; color: var(--jsm-cro-muted); font-weight: 500; }
.jsm-cro-summary-line dd { margin: 0; font-weight: 600; text-align: right; }
.jsm-cro-summary-line dd[data-jsm-cro-summary],
.jsm-cro-summary-total strong[data-jsm-cro-summary="total"] {
	color: var(--jsm-cro-navy) !important;
	opacity: 1 !important;
	visibility: visible !important;
	background: none !important;
}
.jsm-cro-summary-total strong[data-jsm-cro-summary="total"] {
	color: var(--jsm-cro-blue) !important;
	font-size: 28px !important;
	line-height: 1.1 !important;
}
.jsm-cro-summary-line--save dd { color: var(--jsm-cro-green); }
.jsm-cro-summary-line--hidden { display: none !important; }
.jsm-cro-summary-total {
	display: flex; justify-content: space-between; align-items: baseline;
	margin: 0 0 16px; padding-top: 12px; border-top: 1px solid var(--jsm-cro-border);
	font-size: 14px; color: var(--jsm-cro-muted);
}
.jsm-cro-summary-total strong { font-size: 28px; font-weight: 800; color: var(--jsm-cro-blue); line-height: 1; }
.jsm-cro-summary-terms {
	margin: -6px 0 14px;
	font-size: 12px;
	line-height: 1.45;
	color: var(--jsm-cro-muted);
}

/* Cart line items — edit/add/remove in order summary */
.jsm-cro-cart-line-items {
	margin: 12px 0 0;
	padding-top: 12px;
	border-top: 1px solid var(--jsm-cro-border);
}
.jsm-cro-cart-line-items__empty {
	margin: 0;
	font-size: 12px;
	color: var(--jsm-cro-muted);
}
.jsm-cro-cart-line-items__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.jsm-cro-cart-line-items__item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
	padding: 8px 0;
	border-bottom: 1px solid var(--jsm-cro-border);
}
.jsm-cro-cart-line-items__item:last-child { border-bottom: 0; }
.jsm-cro-cart-line-items__name {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var(--jsm-cro-navy);
	text-decoration: none;
	line-height: 1.3;
}
.jsm-cro-cart-line-items__price {
	display: block;
	margin-top: 2px;
	font-size: 12px;
	font-weight: 700;
	color: var(--jsm-cro-blue);
}
.jsm-cro-cart-line-items__actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
}
.jsm-cro-cart-line-items__qty {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.jsm-cro-cart-qty-btn {
	width: 26px;
	height: 26px;
	border: 1px solid var(--jsm-cro-border);
	border-radius: 6px;
	background: #fff;
	color: var(--jsm-cro-navy);
	font-size: 14px;
	line-height: 1;
	cursor: pointer;
}
.jsm-cro-cart-line-items__qty-value {
	min-width: 18px;
	text-align: center;
	font-size: 13px;
	font-weight: 700;
}
.jsm-cro-cart-line-items__remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border: 0;
	border-radius: 6px;
	background: transparent;
	font-size: 0;
	text-decoration: none;
}
.jsm-cro-cart-line-items__remove-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border-radius: 6px;
	font-size: 18px;
	line-height: 1;
	font-weight: 700;
	color: var(--jsm-cro-muted);
}
.jsm-cro-cart-line-items__remove:hover .jsm-cro-cart-line-items__remove-icon { color: #b91c1c; }
.jsm-cro-cart-line-items__footer {
	display: none !important;
}

.jsm-cro-summary-actions .woocommerce-variation-add-to-cart { margin: 0 !important; padding: 0 !important; }
.jsm-cro-summary-actions .quantity { display: none !important; }
.jsm-cro-summary-actions .single_add_to_cart_button,
.jsm-cro-summary-actions .jsm-cro-submit-proxy {
	width: 100% !important; margin: 0 !important; padding: 16px 18px !important;
	border-radius: 10px !important; background: var(--jsm-cro-blue) !important; color: #fff !important;
	font-size: 15px !important; font-weight: 700 !important; text-transform: none !important;
}

.jsm-cro-submit-proxy .jsm-cro-cta-text {
	display: inline !important;
	color: #fff !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	line-height: 1.3;
	text-indent: 0 !important;
	opacity: 1 !important;
	visibility: visible !important;
}

.jsm-cro-submit-source,
.variations_form .woocommerce-variation-add-to-cart .jsm-cro-submit-source {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.variations_form .woocommerce-variation-add-to-cart {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

/* Quick checkout */
.jsm-cro-quick-checkout { margin-top: 14px; }
.jsm-cro-quick-checkout__label { margin: 0 0 8px; font-size: 13px; font-weight: 600; }
.jsm-cro-quick-checkout__hint { margin: 0 0 10px; font-size: 12px; color: var(--jsm-cro-muted); }
.jsm-cro-pay {
	display: block; width: 100%; margin-bottom: 8px; padding: 12px 14px;
	border-radius: 10px; border: 0; font-weight: 700; cursor: pointer; font-size: 14px;
}
.jsm-cro-pay--apple, .jsm-cro-pay--google { background: #111; color: #fff; }
.jsm-cro-pay--paypal { background: #ffc439; color: #111; }
.jsm-cro-pay--card { background: var(--jsm-cro-navy); color: #fff; }
.jsm-cro-pay--klarna { background: #ffb3c7; color: #111; }
.jsm-cro-pay--other { background: #fff; color: var(--jsm-cro-navy); border: 1px solid var(--jsm-cro-border); }
.jsm-cro-quick-checkout__note { margin: 8px 0 0; font-size: 11px; color: var(--jsm-cro-muted); text-align: center; }

.jsm-cro-trust-icons {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
	margin: 14px 0 0; padding: 0; list-style: none; font-size: 11px; color: var(--jsm-cro-muted);
}
.jsm-cro-trust-icons--mobile {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
	margin: 14px 0 0;
	padding: 0;
	list-style: none;
	font-size: 11px;
	color: var(--jsm-cro-muted);
}
@media (min-width: 1024px) {
	.jsm-cro-trust-icons--mobile { display: none; }
}

/* Postcode */
.jsm-cro-postcode__card {
	border: 1px solid var(--jsm-cro-border); border-radius: var(--jsm-cro-radius);
	background: #fff; padding: 16px; box-shadow: var(--jsm-cro-shadow);
}
.jsm-cro-postcode__title { margin: 0 0 6px; font-size: 16px; font-weight: 700; }
.jsm-cro-postcode__hint { margin: 0 0 12px; font-size: 12px; color: var(--jsm-cro-muted); }
.jsm-cro-postcode__row { display: flex; gap: 8px; flex-wrap: wrap; }
.jsm-cro-postcode__input {
	flex: 1; min-width: 140px; padding: 12px 14px; border: 1px solid var(--jsm-cro-border);
	border-radius: 10px; font-size: 15px;
}
.jsm-cro-btn--outline {
	padding: 12px 14px; border: 1px solid var(--jsm-cro-blue); border-radius: 10px;
	background: #fff; color: var(--jsm-cro-blue); font-weight: 600; cursor: pointer;
}
.jsm-cro-postcode__status {
	margin: 10px 0 0; padding: 10px 12px; border-radius: 8px;
	font-size: 13px; font-weight: 600; display: none;
}
.jsm-cro-postcode__status.is-visible { display: block; }
.jsm-cro-postcode__status.is-zone1 {
	background: #ecfdf3; color: var(--jsm-cro-green);
}
.jsm-cro-postcode__status.is-zone2,
.jsm-cro-postcode__status.is-zone2-water-blocked {
	background: #fff7ed; color: #b45309;
}
.jsm-cro-postcode__status.is-zone2-water-blocked {
	background: #fef2f2; color: #b91c1c;
}
.jsm-cro-postcode__status.is-invalid,
.jsm-cro-postcode__status.is-checking {
	background: #f8fafc; color: var(--jsm-cro-muted);
}

.is-delivery-blocked .jsm-cro-configurator,
.is-delivery-blocked .jsm-cro-buybox__config,
.is-delivery-blocked .jsm-cro-summary-actions .jsm-cro-submit-proxy {
	opacity: 0.72;
}

.is-delivery-blocked .jsm-cro-submit-proxy[disabled],
.is-delivery-blocked .jsm-cro-pay[disabled] {
	cursor: not-allowed;
}

body.is-delivery-blocked [data-jsm-cro-sticky-submit] {
	opacity: 0.55;
	cursor: pointer;
}

/* Sticky CTA */
.jsm-cro-sticky-cta__btn {
	width: 100%; padding: 14px 16px; border: 0; border-radius: 10px;
	background: var(--jsm-cro-blue); color: #fff; font-size: 15px; font-weight: 700; cursor: pointer;
}
.jsm-cro-sticky-cta__note { margin: 6px 0 0; text-align: center; font-size: 11px; color: var(--jsm-cro-muted); }

/* Below fold: related products, trust strip, help */
.jsm-cro-below-fold { width: 100%; clear: both; }
.jsm-cro-related {
	padding: 36px 0 12px;
	border-top: 1px solid var(--jsm-cro-border);
	margin-top: 8px;
}
.jsm-cro-related__title {
	margin: 0 0 20px;
	font-size: 22px;
	color: var(--jsm-cro-navy);
}
.jsm-cro-related .related.products {
	margin: 0;
	padding: 0;
}
.jsm-cro-related .related.products > h2:first-child { display: none; }
.jsm-cro-related .products {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.jsm-cro-related .products li.product {
	margin: 0 !important;
	width: auto !important;
	float: none !important;
	border: 1px solid var(--jsm-cro-border);
	border-radius: var(--jsm-cro-radius);
	padding: 12px;
	background: #fff;
}

/* Trust strip + accordions + recommend */
.jsm-cro-trust-strip { background: var(--jsm-cro-bg); padding: 28px 0; margin-top: 0; }
.jsm-cro-trust-strip__inner {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px;
}
.jsm-cro-trust-strip__card {
	background: #fff; border: 1px solid var(--jsm-cro-border); border-radius: var(--jsm-cro-radius);
	padding: 16px;
}
.jsm-cro-trust-strip__card h3 { margin: 0 0 6px; font-size: 15px; color: var(--jsm-cro-navy); }
.jsm-cro-trust-strip__card p { margin: 0; font-size: 13px; color: var(--jsm-cro-muted); }

.jsm-cro-accordions { margin: 24px 0; }
.jsm-cro-accordion {
	border: 1px solid var(--jsm-cro-border); border-radius: 10px; background: #fff; margin-bottom: 10px; overflow: hidden;
}
.jsm-cro-accordion summary {
	padding: 14px 16px; font-weight: 700; cursor: pointer; list-style: none;
}
.jsm-cro-accordion summary::-webkit-details-marker { display: none; }
.jsm-cro-accordion__body { padding: 0 16px 14px; color: var(--jsm-cro-muted); font-size: 14px; }

.jsm-cro-recommend { margin: 24px 0; }
.jsm-cro-recommend h2 { margin: 0 0 14px; font-size: 20px; }
.jsm-cro-recommend__track {
	display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 8px;
}
.jsm-cro-recommend__card {
	flex: 0 0 220px; scroll-snap-align: start;
	border: 1px solid var(--jsm-cro-border); border-radius: var(--jsm-cro-radius);
	padding: 12px; background: #fff; position: relative;
}
.jsm-cro-recommend__card h3 { margin: 8px 0 4px; font-size: 14px; }
.jsm-cro-recommend__price { margin: 0; font-weight: 700; color: var(--jsm-cro-blue); }
.jsm-cro-recommend__add {
	position: absolute; right: 12px; bottom: 12px; width: 32px; height: 32px;
	border-radius: 50%; background: var(--jsm-cro-blue); color: #fff;
	display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-size: 20px; font-weight: 700;
}

.jsm-cro-help { text-align: center; margin: 0 0 48px; padding-bottom: 24px; }
.jsm-cro-help__phone { margin: 0; font-size: 16px; font-weight: 700; }
.jsm-cro-help__phone a { color: var(--jsm-cro-blue); text-decoration: none; }
.jsm-cro-help__hours { margin: 6px 0 0; color: var(--jsm-cro-muted); font-size: 13px; }

/* Configurator + summary in buy box column */
.jsm-cro-layout__buybox .jsm-cro-configurator,
.jsm-cro-buybox__config .jsm-cro-configurator { margin-top: 0; }
.jsm-cro-layout__buybox form.variations_form,
.jsm-cro-layout__buybox form.jsm-cro-simple-cart,
.jsm-cro-buybox__config form.variations_form,
.jsm-cro-buybox__config form.jsm-cro-simple-cart { margin: 0; }
.jsm-cro-simple-cart__actions {
	display: none;
}
.jsm-cro-layout__buybox .jsm-cro-summary-card .jsm-cro-quick-checkout {
	display: block;
}


/* Tighter top spacing below nav */
body.jsm-cro-active.single-product .site-content { padding-top: 8px !important; }
body.jsm-cro-active.single-product #primary { margin-top: 0 !important; padding-top: 0 !important; }
@media (min-width: 1200px) {
	body.jsm-cro-active.ast-plain-container #primary { margin-top: 12px !important; margin-bottom: 20px !important; }
}
body.jsm-cro-active .woocommerce-breadcrumb { display: none !important; }
.jsm-cro-layout { margin: 8px 0 24px; gap: 20px; }
.jsm-cro-intro__title { margin-bottom: 8px; }
.jsm-cro-step { margin-bottom: 18px; }

@media (min-width: 1024px) {
	.jsm-cro-layout.product-layout {
		gap: 22px;
	}
}

/* Gallery — larger CRO image + visible thumbs + lightbox */
.jsm-cro-gallery-card { padding: 12px; }
.jsm-cro-gallery-card__main .woocommerce-product-gallery__image img {
	max-height: 360px;
	width: 100% !important;
	object-fit: contain;
}
.jsm-cro-gallery-card__main .woocommerce-product-gallery__trigger {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}
.jsm-cro-gallery-card__main ol.flex-control-thumbs,
.jsm-cro-gallery-card__main .flex-control-thumbs {
	display: flex !important;
	flex-wrap: nowrap;
	gap: 8px;
	margin: 12px 0 0 !important;
	padding: 0 !important;
	overflow-x: auto;
	list-style: none;
}
.jsm-cro-gallery-card__main .flex-control-thumbs li {
	width: 64px !important;
	min-width: 64px;
	flex: 0 0 64px;
}
.jsm-cro-gallery-card__main .flex-control-thumbs img {
	width: 64px !important;
	height: 64px !important;
	object-fit: cover;
	border-radius: 8px;
	border: 2px solid transparent;
}
.jsm-cro-gallery-card__main .flex-control-thumbs .flex-active img {
	border-color: var(--jsm-cro-blue);
}

/* Price — single row */
.jsm-cro-price-card--single-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 10px;
	padding: 12px 14px;
	margin-bottom: 16px;
	font-size: 14px;
	line-height: 1.4;
}
.jsm-cro-price-card--single-row strong { color: var(--jsm-cro-navy); }
.jsm-cro-price-card__sub strong { color: var(--jsm-cro-green); }
.jsm-cro-price-card__sep { color: var(--jsm-cro-muted); }

/* Feature icons */
.jsm-cro-feature-row li {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	padding: 12px 10px;
}
.jsm-cro-feature-row__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 8px;
	background: var(--jsm-cro-bg);
	margin-bottom: 2px;
}

/* Bottle options — one row, clean copy */
.jsm-cro-bottle-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
.jsm-cro-bottle {
	grid-template-columns: auto 1fr;
	align-items: flex-start;
	padding: 12px;
	border-width: 2px;
	transition: border-color 0.15s ease, background 0.15s ease;
}
.jsm-cro-bottle__title {
	display: block;
	font-size: 13px;
	font-weight: 700;
	color: var(--jsm-cro-navy);
	line-height: 1.3;
}
.jsm-cro-bottle__price {
	display: block;
	font-size: 22px;
	font-weight: 800;
	color: var(--jsm-cro-navy);
	margin: 8px 0 4px;
	line-height: 1.1;
	letter-spacing: -0.02em;
}
.jsm-cro-bottle__desc {
	display: block;
	font-size: 11px;
	line-height: 1.45;
	color: var(--jsm-cro-muted);
}

/* Plan frequency — readable pills */
.jsm-cro-frequency { gap: 6px; }
.jsm-cro-frequency__btn {
	padding: 8px 11px;
	font-size: 12px;
	font-weight: 700;
	color: var(--jsm-cro-navy);
	white-space: nowrap;
	line-height: 1.2;
}
.jsm-cro-frequency__btn.is-active {
	color: #fff;
}

/* Quantity row — stepper + quick buttons inline */
.jsm-cro-qty-row {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 8px;
	overflow-x: auto;
	padding-bottom: 2px;
}
.jsm-cro-qty-controls { flex: 0 0 auto; }
.jsm-cro-qty-controls .quantity {
	display: inline-flex !important;
	align-items: center;
	border: 2px solid var(--jsm-cro-border);
	border-radius: 10px;
	background: #fff;
	min-height: 44px;
}
.jsm-cro-qty-controls .minus,
.jsm-cro-qty-controls .plus {
	width: 40px !important;
	min-height: 44px !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	color: var(--jsm-cro-navy) !important;
	background: #f8fafc !important;
	cursor: pointer;
	line-height: 1 !important;
}
.jsm-cro-qty-controls .minus.is-disabled { opacity: 0.35; cursor: not-allowed; }
body.jsm-cro-active .jsm-cro-step--qty .jsm-cro-qty-controls {
	width: 100%;
	max-width: 100%;
}

.jsm-cro-qty-controls input.qty {
	flex: 1 1 auto;
	width: 100% !important;
	min-width: 2.75rem !important;
	min-height: 44px !important;
	-moz-appearance: textfield;
}
.jsm-cro-qty-controls input.qty::-webkit-outer-spin-button,
.jsm-cro-qty-controls input.qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.jsm-cro-qty-quick {
	display: flex;
	flex: 1 1 auto;
	gap: 6px;
	min-width: 0;
}
.jsm-cro-qty-quick__btn {
	flex: 1 1 0;
	min-width: 0;
	padding: 10px 8px;
	font-size: 12px;
	font-weight: 700;
	color: var(--jsm-cro-navy);
	white-space: nowrap;
	border-radius: 10px;
}
.jsm-cro-qty-quick__btn.is-active {
	color: var(--jsm-cro-blue);
	background: var(--jsm-cro-bg);
}

/* Audience */
.jsm-cro-audience { display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; }
.jsm-cro-audience__btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 14px;
	font-size: 13px;
	font-weight: 700;
	color: var(--jsm-cro-navy);
	white-space: nowrap;
	border-radius: 10px;
}
.jsm-cro-audience__btn.is-active { color: #fff; }

/* Summary card — match mockup */
.jsm-cro-summary-card { padding: 16px; }
.jsm-cro-summary-card__head {
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	margin-bottom: 12px;
}
.jsm-cro-summary-card__edit {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	max-width: none;
	text-align: left;
	font-size: 12px;
	color: var(--jsm-cro-blue);
	font-weight: 600;
}
.jsm-cro-summary-line dt { color: var(--jsm-cro-text); font-weight: 600; }
.jsm-cro-summary-line dt [data-jsm-cro-summary="frequency"],
.jsm-cro-summary-line--sub [data-jsm-cro-summary="frequency"] { color: var(--jsm-cro-blue); }
.jsm-cro-summary-line--divider {
	border-top: 1px solid var(--jsm-cro-border);
	margin-top: 4px;
	padding-top: 10px;
}
.jsm-cro-summary-actions .single_add_to_cart_button,
.jsm-cro-summary-actions .jsm-cro-submit-proxy {
	display: flex !important;
	align-items: center;
	justify-content: center !important;
	gap: 10px;
	width: 100%;
	text-align: center;
}

.jsm-cro-checkout-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-bottom: 14px;
}

.jsm-cro-continue-shopping {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 48px;
	padding: 12px 16px;
	border-radius: 10px;
	font-size: 15px;
	font-weight: 700;
	text-align: center;
	text-decoration: none;
	box-sizing: border-box;
	cursor: pointer;
	font-family: inherit;
}

.jsm-cro-continue-shopping:hover {
	opacity: 0.92;
	color: var(--jsm-cro-blue);
}

/* Payment buttons — exact mockup style */
.jsm-cro-quick-checkout { margin-top: 16px; }
.jsm-cro-quick-checkout__divider {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 12px;
}
.jsm-cro-quick-checkout__divider-line {
	flex: 1;
	height: 1px;
	background: var(--jsm-cro-border);
}
.jsm-cro-quick-checkout__divider-label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	color: var(--jsm-cro-muted);
	white-space: nowrap;
}
.jsm-cro-pay {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	min-height: 46px;
	margin-bottom: 8px;
	padding: 10px 14px;
	border-radius: 8px;
	border: 0;
	font-weight: 700;
	cursor: pointer;
	font-size: 15px;
	transition: opacity 0.15s ease;
}
.jsm-cro-pay:hover { opacity: 0.92; }
.jsm-cro-pay--apple,
.jsm-cro-pay--google {
	background: #000;
	color: #fff;
}
.jsm-cro-pay__logo { width: 18px; height: 18px; flex-shrink: 0; }
.jsm-cro-pay__logo--google { width: 20px; height: 20px; }
.jsm-cro-pay--paypal {
	background: #ffc439;
	color: #111;
	padding: 8px 14px;
}
.jsm-cro-pay__logo--paypal { width: 72px; height: 22px; }
.jsm-cro-pay--card {
	background: var(--jsm-cro-blue);
	color: #fff;
	justify-content: space-between;
	padding: 10px 14px;
}
.jsm-cro-pay__card-text { font-size: 14px; font-weight: 700; }
.jsm-cro-pay__card-brands { display: inline-flex; gap: 6px; align-items: center; }
.jsm-cro-pay__visa,
.jsm-cro-pay__mc { width: 36px; height: 24px; border-radius: 4px; }
.jsm-cro-quick-checkout__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 10px 0 0;
	font-size: 11px;
	color: var(--jsm-cro-muted);
	text-align: center;
}

/* Trust strip — single card, 4 columns */
.jsm-cro-trust-strip { padding: 20px 0; }
.jsm-cro-trust-strip__inner { display: block; }
.jsm-cro-trust-strip__card {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	background: #fff;
	border: 1px solid var(--jsm-cro-border);
	border-radius: var(--jsm-cro-radius);
	padding: 0;
	overflow: hidden;
}
.jsm-cro-trust-strip__item {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 16px 14px;
	border-right: 1px solid var(--jsm-cro-border);
}
.jsm-cro-trust-strip__item:last-child { border-right: 0; }
.jsm-cro-trust-strip__icon {
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--jsm-cro-bg);
}
.jsm-cro-trust-strip__item h3 { margin: 0 0 4px; font-size: 14px; color: var(--jsm-cro-navy); }
.jsm-cro-trust-strip__item p { margin: 0; font-size: 12px; line-height: 1.45; color: var(--jsm-cro-muted); }

/* Help footer — flush to site footer */
.jsm-cro-help { margin: 0; padding: 16px 0 8px; }
.jsm-cro-below-fold { margin-bottom: 0; }

/* No theme dark-blue hover on CRO controls */
.jsm-cro-active .jsm-cro-bottle:not(.is-selected):hover,
.jsm-cro-active .jsm-cro-plan:not(.is-selected):hover {
	background: #fff !important;
	border-color: #94a3b8 !important;
	color: inherit !important;
}
.jsm-cro-active .jsm-cro-frequency__btn:not(.is-active):hover,
.jsm-cro-active .jsm-cro-qty-quick__btn:not(.is-active):hover,
.jsm-cro-active .jsm-cro-audience__btn:not(.is-active):hover {
	background: #fff !important;
	border-color: #94a3b8 !important;
	color: var(--jsm-cro-navy) !important;
}
.jsm-cro-active .jsm-cro-summary-actions .single_add_to_cart_button:hover,
.jsm-cro-active .jsm-cro-summary-actions .jsm-cro-submit-proxy:hover,
.jsm-cro-active .jsm-cro-sticky-cta__btn:hover {
	background: var(--jsm-cro-blue) !important;
	color: #fff !important;
	opacity: 0.94;
}
.jsm-cro-active .jsm-cro-pay--apple:hover,
.jsm-cro-active .jsm-cro-pay--google:hover { background: #000 !important; color: #fff !important; opacity: 0.92; }
.jsm-cro-active .jsm-cro-pay--paypal:hover { background: #ffc439 !important; color: #111 !important; opacity: 0.92; }
.jsm-cro-active .jsm-cro-pay--card:hover { background: var(--jsm-cro-blue) !important; color: #fff !important; opacity: 0.92; }


/* v1.0.4 — gallery thumbs, postcode desktop, related products, payment logos */

.jsm-cro-gallery-hidden {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.jsm-cro-gallery-main {
	position: relative;
	border-radius: 10px;
	overflow: hidden;
	background: linear-gradient(180deg, #e8f4fc 0%, #f8fbff 100%);
}

.jsm-cro-gallery-main__link {
	display: block;
	cursor: zoom-in;
}

.jsm-cro-gallery-main__img {
	display: block;
	width: 100% !important;
	max-height: 360px;
	object-fit: contain;
	margin: 0 auto;
}

.jsm-cro-gallery-thumbs {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 12px;
	overflow-x: auto;
	padding-bottom: 2px;
	scrollbar-width: thin;
}

.jsm-cro-gallery-thumb {
	flex: 0 0 64px;
	width: 64px;
	height: 64px;
	padding: 0;
	border: 2px solid transparent;
	border-radius: 8px;
	background: #fff;
	overflow: hidden;
	cursor: pointer;
	transition: border-color 0.15s ease;
}

.jsm-cro-gallery-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.jsm-cro-gallery-thumb.is-active {
	border-color: var(--jsm-cro-blue);
	box-shadow: 0 0 0 1px var(--jsm-cro-blue);
}

.jsm-cro-gallery-thumbs__more {
	flex: 0 0 auto;
	font-size: 22px;
	font-weight: 700;
	color: var(--jsm-cro-navy);
	line-height: 1;
	padding-right: 4px;
}

.jsm-cro-gallery-card__badge {
	background: #fff;
	color: var(--jsm-cro-navy);
	border: 1px solid var(--jsm-cro-border);
	box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}

/* Postcode checker — desktop card */
@media (min-width: 1024px) {
	.jsm-cro-postcode__card {
		padding: 16px;
		border-radius: 12px;
	}
	.jsm-cro-postcode__title { font-size: 15px; }
	.jsm-cro-postcode__row {
		display: grid;
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
		gap: 10px;
	}
	.jsm-cro-postcode__input { min-height: 42px; }
	.jsm-cro-postcode__check { white-space: nowrap; min-height: 42px; }
	.jsm-cro-postcode__card .jsm-cro-postcode__status.is-visible {
		display: block;
		margin-top: 12px;
		padding: 10px 12px;
		border-radius: 8px;
		background: #ecfdf5;
		color: #166534;
		font-size: 13px;
		font-weight: 700;
	}
}

/* Bottle options — aligned cards */
.jsm-cro-bottle__body {
	display: flex;
	flex-direction: column;
	min-height: 108px;
}
.jsm-cro-bottle__title {
	min-height: 2.6em;
}

/* Quantity panel */
.jsm-cro-qty-panel {
	border: 1px solid var(--jsm-cro-border);
	border-radius: 12px;
	padding: 12px;
	background: #fff;
	margin-bottom: 14px;
}
.jsm-cro-qty-panel .jsm-cro-qty-note {
	margin: 10px 0 0;
}

/* Audience — full width aligned with steps */
.jsm-cro-audience--full {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	overflow: visible;
}
.jsm-cro-audience--full .jsm-cro-audience__btn {
	flex: 1 1 0;
	width: 100%;
	justify-content: center;
	min-height: 44px;
}

/* Related products — inline (between steps 2 & 3) */
.jsm-cro-related-inline {
	margin: 4px 0 18px;
	padding: 14px;
	border: 1px solid var(--jsm-cro-border);
	border-radius: 12px;
	background: #fff;
}
.jsm-cro-related-inline__title {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 700;
	color: var(--jsm-cro-navy);
}
.jsm-cro-related-inline__track {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
.jsm-cro-related-inline__card {
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	padding: 8px;
	border: 1px solid var(--jsm-cro-border);
	border-radius: 10px;
}
.jsm-cro-related-inline__thumb img {
	width: 56px;
	height: 56px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
}
.jsm-cro-related-inline__body h4 {
	margin: 0 0 2px;
	font-size: 12px;
	line-height: 1.3;
}
.jsm-cro-related-inline__body h4 a { color: var(--jsm-cro-navy); text-decoration: none; }
.jsm-cro-related-inline__price {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	color: var(--jsm-cro-blue);
}
.jsm-cro-related-inline__add {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 999px;
	background: var(--jsm-cro-blue);
	color: #fff;
	font-size: 18px;
	font-weight: 700;
	text-decoration: none;
	line-height: 1;
}

/* Related products — sidebar under Today's total */
.jsm-cro-related-sidebar {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid var(--jsm-cro-border);
}
.jsm-cro-related-sidebar__title {
	margin: 0 0 10px;
	font-size: 14px;
	font-weight: 700;
	color: var(--jsm-cro-navy);
}
.jsm-cro-related-sidebar__item {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) auto;
	gap: 10px;
	align-items: center;
	padding: 8px 0;
	border-bottom: 1px solid var(--jsm-cro-border);
}
.jsm-cro-related-sidebar__item:last-child { border-bottom: 0; padding-bottom: 0; }
.jsm-cro-related-sidebar__thumb img {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 8px;
	display: block;
}
.jsm-cro-related-sidebar__meta h4 {
	margin: 0 0 2px;
	font-size: 12px;
	line-height: 1.3;
}
.jsm-cro-related-sidebar__meta h4 a { color: var(--jsm-cro-navy); text-decoration: none; }
.jsm-cro-related-sidebar__meta p {
	margin: 0;
	font-size: 12px;
	font-weight: 700;
	color: var(--jsm-cro-blue);
}
.jsm-cro-related-sidebar__add {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: var(--jsm-cro-blue);
	color: #fff;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	line-height: 1;
}

@media (min-width: 1024px) {
	.jsm-cro-layout__media .jsm-cro-related-sidebar--left {
		margin-top: 12px;
		padding-top: 0;
		border-top: 0;
	}

	.jsm-cro-layout__media .jsm-cro-related-sidebar--left .jsm-cro-related-sidebar__title {
		font-size: 13px;
		font-weight: 600;
		color: #475569;
		margin-bottom: 8px;
	}

	.jsm-cro-summary-card .jsm-cro-related-sidebar--right {
		margin-top: 14px;
		padding-top: 14px;
		border-top: 1px solid var(--jsm-cro-border);
	}

	.jsm-cro-summary-card .jsm-cro-related-sidebar--right .jsm-cro-related-sidebar__title {
		font-size: 13px;
		margin-bottom: 8px;
	}
}

/* Payment logos — compact mockup sizing */
.jsm-cro-pay__brand {
	display: block;
	max-width: 100%;
	height: auto;
	object-fit: contain;
}
.jsm-cro-pay--apple .jsm-cro-pay__brand--apple,
.jsm-cro-pay--google .jsm-cro-pay__brand--google {
	height: 18px;
	width: auto;
}
.jsm-cro-pay--paypal .jsm-cro-pay__brand--paypal {
	height: 20px;
	width: auto;
}
.jsm-cro-pay--card .jsm-cro-pay__brand--visa {
	height: 14px;
	width: auto;
}
.jsm-cro-pay--card .jsm-cro-pay__brand--mc {
	height: 18px;
	width: auto;
}
.jsm-cro-pay--apple,
.jsm-cro-pay--google,
.jsm-cro-pay--paypal {
	padding: 12px 14px;
	min-height: 44px;
}
.jsm-cro-pay--card {
	min-height: 44px;
}

@media (min-width: 1024px) {
	.jsm-cro-related-inline__track {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}


/* v1.0.5 — quantity mockup + cleaner quick checkout */

.jsm-cro-step--qty .jsm-cro-qty-panel {
	border: 0;
	padding: 0;
	background: transparent;
	margin-bottom: 16px;
}

.jsm-cro-step--qty .jsm-cro-qty-panel {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.jsm-cro-step--qty .jsm-cro-qty-row {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: stretch;
}

.jsm-cro-qty-stepper-wrap {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.jsm-cro-step--qty .jsm-cro-qty-controls label,
.jsm-cro-step--qty .jsm-cro-qty-controls .screen-reader-text,
.jsm-cro-step--qty .jsm-cro-qty-controls > label {
	display: none !important;
}

.jsm-cro-step--qty .jsm-cro-qty-controls .quantity {
	display: inline-flex !important;
	align-items: center;
	width: 100%;
	min-height: 48px;
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
}

.jsm-cro-step--qty .jsm-cro-qty-controls .minus,
.jsm-cro-step--qty .jsm-cro-qty-controls .plus {
	flex: 0 0 44px;
	width: 44px !important;
	min-height: 48px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: #fff !important;
	color: var(--jsm-cro-navy) !important;
	font-size: 20px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	cursor: pointer;
}

.jsm-cro-step--qty .jsm-cro-qty-controls input.qty {
	flex: 1 1 auto;
	width: 100% !important;
	min-width: 2.75rem !important;
	min-height: 48px !important;
	padding: 0 !important;
	border: 0 !important;
	border-left: 1px solid #cbd5e1 !important;
	border-right: 1px solid #cbd5e1 !important;
	border-radius: 0 !important;
	background: #fff !important;
	color: var(--jsm-cro-navy) !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	text-align: center !important;
}

.jsm-cro-step--qty .jsm-cro-qty-note {
	margin: 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--jsm-cro-navy);
	line-height: 1.3;
}

.jsm-cro-qty-quick-wrap {
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.jsm-cro-qty-quick__label {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: var(--jsm-cro-blue);
	line-height: 1.2;
}

.jsm-cro-step--qty .jsm-cro-qty-quick {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	flex: none;
	min-width: 0;
	width: 100%;
}

.jsm-cro-step--qty .jsm-cro-qty-quick__btn {
	min-height: 48px;
	padding: 10px 8px;
	border: 1px solid #cbd5e1;
	border-radius: 10px;
	background: #fff;
	color: var(--jsm-cro-navy);
	font-size: 13px;
	font-weight: 700;
	line-height: 1.2;
	white-space: nowrap;
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.jsm-cro-step--qty .jsm-cro-qty-quick__btn.is-active {
	background: var(--jsm-cro-navy);
	border-color: var(--jsm-cro-navy);
	color: #fff;
	box-shadow: none;
}

.jsm-cro-active .jsm-cro-step--qty .jsm-cro-qty-quick__btn:not(.is-active):hover {
	background: #fff !important;
	border-color: #94a3b8 !important;
	color: var(--jsm-cro-navy) !important;
}

.jsm-cro-active .jsm-cro-step--qty .jsm-cro-qty-quick__btn.is-active:hover {
	background: var(--jsm-cro-navy) !important;
	border-color: var(--jsm-cro-navy) !important;
	color: #fff !important;
}

/* Quick checkout — clean stack */
.jsm-cro-quick-checkout {
	margin-top: 14px;
}

.jsm-cro-quick-checkout__divider {
	margin-bottom: 10px;
}

.jsm-cro-quick-checkout__divider-label {
	font-size: 11px;
	font-weight: 600;
	color: #94a3b8;
	letter-spacing: 0.01em;
}

.jsm-cro-quick-checkout__buttons {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.jsm-cro-quick-checkout .jsm-cro-pay {
	margin-bottom: 0;
	min-height: 42px;
	padding: 8px 12px;
	border-radius: 8px;
	box-shadow: none;
}

.jsm-cro-quick-checkout .jsm-cro-pay--apple,
.jsm-cro-quick-checkout .jsm-cro-pay--google {
	background: #000;
}

.jsm-cro-quick-checkout .jsm-cro-pay--paypal {
	background: #f5b800;
	padding: 7px 12px;
}

.jsm-cro-quick-checkout .jsm-cro-pay--card {
	background: var(--jsm-cro-blue);
	padding: 8px 14px;
}

.jsm-cro-quick-checkout .jsm-cro-pay--apple .jsm-cro-pay__brand--apple,
.jsm-cro-quick-checkout .jsm-cro-pay--google .jsm-cro-pay__brand--google {
	height: 16px;
}

.jsm-cro-quick-checkout .jsm-cro-pay--paypal .jsm-cro-pay__brand--paypal {
	height: 18px;
}

.jsm-cro-quick-checkout .jsm-cro-pay--card .jsm-cro-pay__card-text {
	font-size: 13px;
	font-weight: 600;
}

.jsm-cro-quick-checkout .jsm-cro-pay--card .jsm-cro-pay__brand--visa {
	height: 12px;
}

.jsm-cro-quick-checkout .jsm-cro-pay--card .jsm-cro-pay__brand--mc {
	height: 16px;
}

.jsm-cro-quick-checkout .jsm-cro-pay__card-brands {
	gap: 5px;
}

.jsm-cro-quick-checkout__note {
	margin-top: 8px;
	font-size: 10px;
	color: #94a3b8;
}


/* v1.0.6 — compact quantity + crisp payment marks */

.jsm-cro-step--qty .jsm-cro-qty-panel {
	margin-bottom: 14px;
}

.jsm-cro-step--qty .jsm-cro-qty-row {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: stretch;
}

.jsm-cro-qty-stepper-wrap {
	padding-top: 0;
	gap: 6px;
}

.jsm-cro-step--qty .jsm-cro-qty-controls .quantity {
	min-height: 40px;
	max-width: 112px;
	border-color: #d1d9e6;
	border-radius: 8px;
}

.jsm-cro-step--qty .jsm-cro-qty-controls .minus,
.jsm-cro-step--qty .jsm-cro-qty-controls .plus {
	flex: 0 0 34px;
	width: 34px !important;
	min-height: 40px !important;
	font-size: 18px !important;
}

.jsm-cro-step--qty .jsm-cro-qty-controls input.qty {
	min-height: 40px !important;
	font-size: 15px !important;
	border-left-color: #d1d9e6 !important;
	border-right-color: #d1d9e6 !important;
}

.jsm-cro-step--qty .jsm-cro-qty-note {
	font-size: 12px;
	font-weight: 600;
}

.jsm-cro-qty-quick-wrap {
	gap: 6px;
}

.jsm-cro-qty-quick__label {
	font-size: 11px;
	font-weight: 600;
	margin: 0;
}

.jsm-cro-step--qty .jsm-cro-qty-quick {
	gap: 6px;
}

.jsm-cro-step--qty .jsm-cro-qty-quick__btn {
	min-height: 40px;
	padding: 0 4px;
	border-color: #d1d9e6;
	border-radius: 8px;
	font-size: 11px;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.jsm-cro-step--qty .jsm-cro-qty-quick__btn span {
	display: block;
	max-width: 100%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	line-height: 1.1;
}

/* Payment marks — vector Apple Pay + PayPal */
.jsm-cro-pay__wallet {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	line-height: 1;
}

.jsm-cro-pay__apple-icon {
	width: 14px;
	height: 17px;
	flex-shrink: 0;
}

.jsm-cro-pay__apple-text,
.jsm-cro-pay__google-text {
	color: #fff;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1;
}

.jsm-cro-pay__google-g {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}

/* Stripe Google Pay slot — live Express Checkout button under Apple Pay */
.jsm-cro-active .variations_form #wc-stripe-express-checkout-element,
.jsm-cro-active .variations_form #wc-stripe-payment-request-wrapper {
	display: none !important;
}

.jsm-cro-stripe-google-slot {
	width: 100%;
	margin-bottom: 8px;
	min-height: 40px;
}

.jsm-cro-stripe-google-slot #wc-stripe-express-checkout-element,
.jsm-cro-stripe-google-slot #wc-stripe-payment-request-wrapper {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	clear: none !important;
}

.jsm-cro-stripe-google-slot iframe {
	width: 100% !important;
	min-height: 40px;
}

.jsm-cro-stripe-google-slot--mobile {
	display: none;
}

@media (min-width: 1024px) {
	.jsm-cro-stripe-google-slot--desktop {
		display: block;
		min-height: 44px;
	}

	.jsm-cro-summary-sticky,
	.jsm-cro-summary-card,
	.jsm-cro-quick-checkout,
	.jsm-cro-quick-checkout__buttons {
		overflow: visible;
	}

	.jsm-cro-stripe-google-slot--desktop #wc-stripe-express-checkout-element,
	.jsm-cro-stripe-google-slot--desktop #wc-stripe-payment-request-wrapper {
		display: block !important;
		min-height: 44px;
		visibility: visible !important;
		opacity: 1 !important;
	}

	.jsm-cro-stripe-google-slot--desktop iframe {
		min-height: 44px !important;
	}
}

.jsm-cro-stripe-express-mount {
	width: 100%;
}

.jsm-cro-pay__paypal-mark {
	display: block;
	width: auto;
	height: 16px;
}

.jsm-cro-pay__paypal-word {
	display: inline-flex;
	align-items: baseline;
	font-style: italic;
	font-weight: 700;
	font-size: 16px;
	line-height: 1;
	letter-spacing: -0.02em;
}

.jsm-cro-pay__paypal-pay {
	color: #003087;
}

.jsm-cro-pay__paypal-pal {
	color: #009cde;
}

.jsm-cro-pay__mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
}

.jsm-cro-pay__mark svg {
	display: block;
	width: auto;
	height: 18px;
}

.jsm-cro-pay__mark--apple svg {
	height: 17px;
}

.jsm-cro-pay__mark--paypal svg {
	height: 16px;
}

.jsm-cro-quick-checkout .jsm-cro-pay--apple,
.jsm-cro-quick-checkout .jsm-cro-pay--google,
.jsm-cro-quick-checkout .jsm-cro-pay--paypal {
	min-height: 40px;
	padding: 0 12px;
}

.jsm-cro-quick-checkout .jsm-cro-pay--paypal {
	background: #ffc439;
}

.jsm-cro-quick-checkout .jsm-cro-pay--card {
	min-height: 40px;
	padding: 0 12px;
}

.jsm-cro-quick-checkout__buttons {
	gap: 5px;
}

/* v1.0.7 — product intro mockup + sticky Today's total */

.jsm-cro-intro--mockup {
	margin-bottom: 6px;
}

.jsm-cro-intro--mockup .jsm-cro-intro__label {
	margin: 0 0 10px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--jsm-cro-blue);
}

.jsm-cro-intro--mockup .jsm-cro-intro__title {
	margin: 0 0 12px;
	font-size: clamp(1.65rem, 2.4vw, 2.125rem);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -0.02em;
	color: #0f172a;
}

.jsm-cro-intro--mockup .jsm-cro-intro__rating {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 14px;
}

.jsm-cro-intro__stars {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	line-height: 0;
}

.jsm-cro-intro--mockup .jsm-cro-intro__review-count {
	font-size: 14px;
	font-weight: 500;
	color: #64748b;
}

.jsm-cro-intro--mockup .jsm-cro-intro__desc {
	margin: 0 0 18px;
	max-width: 640px;
	font-size: 14px;
	line-height: 1.55;
	color: #64748b;
}

.jsm-cro-feature-row--mockup {
	gap: 12px;
	margin: 0 0 16px;
}

.jsm-cro-feature-row--mockup li {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 6px;
	padding: 14px 12px;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	background: #fff;
}

.jsm-cro-feature-row--mockup .jsm-cro-feature-row__icon {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	width: auto;
	height: auto;
	margin: 0 0 2px;
	padding: 0;
	background: transparent;
	border-radius: 0;
}

.jsm-cro-feature-row--mockup strong {
	font-size: 13px;
	font-weight: 700;
	color: #0f172a;
	line-height: 1.3;
}

.jsm-cro-feature-row--mockup li > span:last-of-type {
	font-size: 12px;
	line-height: 1.4;
	color: #64748b;
}

/* Price line — compact intro price (subscription default) */
.jsm-cro-price-line {
	margin: 0 0 10px;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.45;
	color: var(--jsm-cro-muted, #64748b);
}

.jsm-cro-price-line__amount {
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--jsm-cro-navy, #003f8f);
}

.jsm-cro-price-line__note {
	font-size: 12px;
	font-weight: 400;
	color: #94a3b8;
}

/* Price card — two-column mockup (legacy) */
.jsm-cro-price-card--mockup {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr);
	align-items: stretch;
	padding: 0;
	margin-bottom: 16px;
	background: #fff;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: none;
}

.jsm-cro-price-card__col--from,
.jsm-cro-price-card__col--sub {
	padding: 11px 14px;
}

.jsm-cro-price-card__col--from {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 4px;
}

.jsm-cro-price-card__from-label {
	font-size: 12px;
	font-weight: 700;
	color: #0f172a;
	line-height: 1.2;
}

.jsm-cro-price-card__stack {
	display: flex;
	flex-direction: column;
	gap: 1px;
	min-width: 0;
}

.jsm-cro-price-card__amount {
	font-size: 24px;
	font-weight: 800;
	line-height: 1;
	color: #002b5c;
	text-align: left;
}

.jsm-cro-price-card__amount .woocommerce-Price-amount,
.jsm-cro-price-card__amount .woocommerce-Price-currencySymbol {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
}

.jsm-cro-price-card__amount--green,
.jsm-cro-price-card__amount--green .woocommerce-Price-amount,
.jsm-cro-price-card__amount--green .woocommerce-Price-currencySymbol {
	color: #16813a;
}

.jsm-cro-price-card__unit {
	display: block;
	font-size: 11px;
	line-height: 1.25;
	color: #64748b;
	text-align: left;
}

.jsm-cro-price-card__unit--sub {
	max-width: 108px;
}

.jsm-cro-price-card__divider {
	width: 1px;
	background: #e2e8f0;
}

.jsm-cro-price-card__col--sub {
	display: flex;
	align-items: center;
}

.jsm-cro-price-card__sub-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	width: 100%;
}

.jsm-cro-price-card--mockup .jsm-cro-badge--save {
	flex: 0 0 auto;
	align-self: center;
	padding: 4px 10px;
	font-size: 10px;
	font-weight: 700;
	line-height: 1.2;
	border-radius: 999px;
	white-space: nowrap;
}

/* v1.0.9 — bottle price, qty grid, trust benefits, sticky summary */

.jsm-cro-bottle.is-selected .jsm-cro-bottle__price {
	color: var(--jsm-cro-blue);
}

.jsm-cro-step--qty .jsm-cro-qty-row {
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-items: stretch;
}

.jsm-cro-qty-stepper-wrap {
	padding-top: 0;
}

.jsm-cro-step--qty .jsm-cro-qty-controls .quantity {
	min-height: 44px;
	max-width: 100%;
	width: 100%;
}

.jsm-cro-step--qty .jsm-cro-qty-controls .minus,
.jsm-cro-step--qty .jsm-cro-qty-controls .plus {
	flex: 0 0 42px;
	width: 42px !important;
	min-height: 44px !important;
	font-size: 20px !important;
	font-weight: 500 !important;
}

.jsm-cro-step--qty .jsm-cro-qty-controls input.qty {
	min-height: 44px !important;
	font-size: 16px !important;
}

.jsm-cro-step--qty .jsm-cro-qty-quick {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 8px;
	width: 100%;
}

.jsm-cro-trust-benefits {
	display: flex;
	flex-direction: column;
	gap: 14px;
	margin: 16px 0 0;
	padding: 0;
	list-style: none;
}

.jsm-cro-trust-benefits__item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.jsm-cro-trust-benefits__icon {
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 999px;
	background: #e8f4fc;
	color: var(--jsm-cro-navy);
}

.jsm-cro-trust-benefits__icon svg {
	display: block;
}

.jsm-cro-trust-benefits__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

.jsm-cro-trust-benefits__text strong {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.25;
	color: var(--jsm-cro-navy);
}

.jsm-cro-trust-benefits__text span {
	font-size: 12px;
	line-height: 1.35;
	color: #64748b;
}

.jsm-cro-trust-benefits--mobile {
	display: flex;
	margin-top: 14px;
}

@media (min-width: 1024px) {
	.jsm-cro-trust-benefits--mobile {
		display: none !important;
	}

	.jsm-cro-layout__buybox {
		align-self: start;
	}
}


/* v1.1.3 — center quantity stepper value */
.jsm-cro-step--qty .jsm-cro-qty-controls .quantity {
	display: flex !important;
	align-items: stretch;
	width: 100%;
	max-width: 100%;
}

.jsm-cro-step--qty .jsm-cro-qty-controls .minus,
.jsm-cro-step--qty .jsm-cro-qty-controls .plus {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-align: center !important;
}

.jsm-cro-step--qty .jsm-cro-qty-controls input.qty {
	flex: 1 1 0;
	min-width: 44px;
	width: 100% !important;
	padding: 0 !important;
	text-align: center !important;
	text-align-last: center !important;
}

/* v1.4.0 — live Stripe / PayPal wallet slots */
.jsm-cro-payment-gateways-source {
	position: absolute;
	left: 0;
	top: 0;
	width: min(100vw, 390px);
	height: 420px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	clip-path: inset(50%);
	opacity: 0;
	pointer-events: none;
	visibility: visible;
	z-index: 0;
}

/* Keep express checkout inside wallet slots only (never floating over mobile cart CTA). */
body.jsm-cro-active:not(.woocommerce-checkout) #wc-stripe-express-checkout-element,
body.jsm-cro-active:not(.woocommerce-checkout) #wc-stripe-payment-request-wrapper,
body.jsm-cart-page-active #wc-stripe-express-checkout-element,
body.jsm-cart-page-active #wc-stripe-payment-request-wrapper,
body.jsm-cart-mobile-active #wc-stripe-express-checkout-element,
body.jsm-cart-mobile-active #wc-stripe-payment-request-wrapper {
	display: none !important;
}

/* Stripe SDK must mount in a displayed node — source stays visually clipped off-screen. */
body.jsm-cro-active .jsm-cro-payment-gateways-source #wc-stripe-express-checkout-element,
body.jsm-cro-active .jsm-cro-payment-gateways-source #wc-stripe-payment-request-wrapper,
body.jsm-cart-page-active .jsm-cro-payment-gateways-source #wc-stripe-express-checkout-element,
body.jsm-cart-page-active .jsm-cro-payment-gateways-source #wc-stripe-payment-request-wrapper {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	position: absolute;
	left: 0;
	top: 0;
	width: min(100vw, 390px);
	min-height: 44px;
	pointer-events: none;
}

body.jsm-cro-active .jsm-cro-wallet-slot #wc-stripe-express-checkout-element,
body.jsm-cro-active .jsm-cro-wallet-slot #wc-stripe-payment-request-wrapper,
body.jsm-cart-page-active .jsm-cro-wallet-slot #wc-stripe-express-checkout-element,
body.jsm-cart-page-active .jsm-cro-wallet-slot #wc-stripe-payment-request-wrapper,
body.jsm-cart-mobile-active .jsm-cro-wallet-slot #wc-stripe-express-checkout-element,
body.jsm-cart-mobile-active .jsm-cro-wallet-slot #wc-stripe-payment-request-wrapper {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}

.jsm-cro-quick-checkout--mobile {
	display: none;
}

.jsm-cro-wallet-slots {
	display: flex;
	flex-direction: column;
	gap: 8px;
	width: 100%;
}

.jsm-cro-wallet-slot {
	width: 100%;
	min-height: 44px;
	overflow: visible;
	pointer-events: auto;
}

.jsm-cro-wallet-slot--empty {
	display: none !important;
}

/* Phase 3 Option B: product-page continue CTAs (no live express SDK mounts). */
body.jsm-cro-product-checkout-first .jsm-cro-quick-checkout--continue-first .jsm-cro-wallet-slot {
	display: block !important;
}

body.jsm-cro-product-checkout-first .jsm-cro-quick-checkout--continue-first .jsm-cro-pay {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	border: 0;
	border-radius: 8px;
}

body.jsm-cro-product-checkout-first .jsm-cro-wallet-card-fallback {
	display: block !important;
}

body.jsm-cro-product-checkout-first .jsm-cro-payment-gateways-source {
	display: none !important;
}

.jsm-cro-wallet-slot--merged {
	display: none !important;
}

.jsm-cro-wallet-slot #wc-stripe-express-checkout-element,
.jsm-cro-wallet-slot #wc-stripe-payment-request-wrapper,
.jsm-cro-wallet-slot #ppc-button-ppcp-gateway,
.jsm-cro-wallet-slot #ppc-button-applepay-container,
.jsm-cro-wallet-slot #ppc-button-googlepay-container,
.jsm-cro-wallet-slot #ppc-button-ppcp-card-button-gateway {
	display: block !important;
	width: 100% !important;
	min-height: 44px;
	margin: 0 !important;
}

.jsm-cro-wallet-slot .ppcp-button-apm,
.jsm-cro-wallet-slot .ppc-button-wrapper {
	width: 100%;
	margin: 0;
}

.jsm-cro-wallet-slot iframe {
	width: 100% !important;
	min-height: 44px;
}

.jsm-cro-wallet-slot[data-jsm-cro-wallet-slot="google-pay"] iframe,
.jsm-cro-wallet-slot[data-jsm-cro-wallet-slot="google-pay"] .gpay-button,
.jsm-cro-wallet-slot[data-jsm-cro-wallet-slot="google-pay"] button,
.jsm-cro-wallet-slot[data-jsm-cro-wallet-slot="google-pay"] #wc-stripe-express-checkout-element,
.jsm-cro-wallet-slot[data-jsm-cro-wallet-slot="google-pay"] #wc-stripe-payment-request-wrapper {
	display: block !important;
	pointer-events: auto !important;
	cursor: pointer;
	min-height: 44px !important;
}

.jsm-cro-wallet-slot .ppcp-button-applepay,
.jsm-cro-wallet-slot .ppcp-button-googlepay,
.jsm-cro-wallet-slot .ppcp-button-apm {
	display: block !important;
	width: 100% !important;
	min-height: 44px !important;
	opacity: 1 !important;
	visibility: visible !important;
}

.jsm-cro-wallet-slot #ppc-button-googlepay-container:empty,
.jsm-cro-wallet-slot #ppc-button-applepay-container:empty {
	display: none !important;
	min-height: 0 !important;
}

body.jsm-cro-active .jsm-cro-related-wrap--mobile,
body.jsm-cro-active .jsm-cro-accordions--mobile,
body.jsm-cro-active .jsm-cro-related-sidebar--right {
	content-visibility: auto;
	contain-intrinsic-size: 1px 360px;
}

.jsm-cro-wallet-slot[data-jsm-cro-wallet-slot="apple-pay"] apple-pay-button,
.jsm-cro-wallet-slot[data-jsm-cro-wallet-slot="apple-pay"] #ppc-button-applepay-container > * {
	display: block !important;
	width: 100% !important;
	min-height: 44px !important;
	visibility: visible !important;
	opacity: 1 !important;
}
.jsm-cro-wallet-slot .apple-pay-btn,
.jsm-cro-wallet-slot #ppc-button-applepay-container .ppcp-button-apm {
	display: block !important;
	width: 100% !important;
	min-height: 44px !important;
	-webkit-appearance: -apple-pay-button;
	appearance: -apple-pay-button;
	-apple-pay-button-type: pay;
	-apple-pay-button-style: black;
}

.jsm-cro-wallet-slot[data-jsm-cro-wallet-slot="apple-pay"] iframe,
.jsm-cro-wallet-slot[data-jsm-cro-wallet-slot="apple-pay"] #wc-stripe-express-checkout-element,
.jsm-cro-wallet-slot[data-jsm-cro-wallet-slot="apple-pay"] #wc-stripe-payment-request-wrapper {
	display: block !important;
	pointer-events: auto !important;
	min-height: 44px !important;
}

.jsm-cro-wallet-card-fallback {
	width: 100%;
}

.jsm-cro-wallet-card-fallback .jsm-cro-pay--card {
	width: 100%;
}

/* v1.4.1 — prominent checkout zone & CTAs (all products) */
.jsm-cro-checkout-zone--mobile {
	display: none;
}

.jsm-cro-checkout-zone {
	margin-top: 16px;
	padding: 18px 16px;
	border-radius: 14px;
	border: 2px solid rgba(0, 87, 184, 0.32);
	background: linear-gradient(180deg, #eef6ff 0%, #ffffff 52%);
	box-shadow: 0 12px 32px rgba(0, 87, 184, 0.14);
	scroll-margin-top: 24px;
}

.jsm-cro-checkout-zone__head {
	margin-bottom: 14px;
	text-align: center;
}

.jsm-cro-checkout-zone__title {
	margin: 0 0 6px;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.25;
	color: var(--jsm-cro-navy);
}

.jsm-cro-checkout-zone__lead {
	margin: 0;
	font-size: 13px;
	line-height: 1.45;
	color: var(--jsm-cro-muted);
}

.jsm-cro-checkout-zone .jsm-cro-checkout-actions {
	gap: 12px;
	margin-bottom: 0;
}

.jsm-cro-checkout-zone .jsm-cro-summary-actions .single_add_to_cart_button,
.jsm-cro-checkout-zone .jsm-cro-summary-actions .jsm-cro-submit-proxy {
	min-height: 56px !important;
	padding: 16px 20px !important;
	font-size: 17px !important;
	font-weight: 800 !important;
	box-shadow: 0 6px 22px rgba(0, 87, 184, 0.38) !important;
	letter-spacing: 0.01em;
	color: #fff !important;
	text-indent: 0 !important;
	line-height: 1.35 !important;
}

.jsm-cro-checkout-zone .jsm-cro-submit-proxy .jsm-cro-cta-text {
	display: inline !important;
	color: #fff !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	opacity: 1 !important;
	visibility: visible !important;
	text-indent: 0 !important;
}

.jsm-cro-checkout-zone .jsm-cro-continue-shopping {
	min-height: 50px;
	padding: 13px 16px;
	border: 2px solid var(--jsm-cro-blue);
	background: #fff;
	color: var(--jsm-cro-blue);
	font-size: 15px;
	font-weight: 700;
}

.jsm-cro-checkout-zone .jsm-cro-continue-shopping:hover {
	background: #f0f7ff;
	opacity: 1;
}

.jsm-cro-checkout-zone .jsm-cro-quick-checkout {
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px dashed rgba(0, 87, 184, 0.28);
}

.jsm-cro-checkout-zone .jsm-cro-quick-checkout__divider-label {
	font-size: 13px;
	font-weight: 800;
	color: var(--jsm-cro-blue);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.jsm-cro-checkout-zone .jsm-cro-wallet-slots {
	gap: 10px;
}

.jsm-cro-checkout-zone .jsm-cro-wallet-slot:not(.jsm-cro-wallet-slot--empty):not(.jsm-cro-wallet-slot--merged) {
	min-height: 52px;
	border-radius: 10px;
	box-shadow: 0 3px 10px rgba(15, 23, 42, 0.1);
}

.jsm-cro-checkout-zone .jsm-cro-wallet-slot #wc-stripe-express-checkout-element,
.jsm-cro-checkout-zone .jsm-cro-wallet-slot #wc-stripe-payment-request-wrapper,
.jsm-cro-checkout-zone .jsm-cro-wallet-slot #ppc-button-ppcp-gateway,
.jsm-cro-checkout-zone .jsm-cro-wallet-slot #ppc-button-applepay-container,
.jsm-cro-checkout-zone .jsm-cro-wallet-slot #ppc-button-googlepay-container,
.jsm-cro-checkout-zone .jsm-cro-wallet-slot #ppc-button-ppcp-card-button-gateway {
	min-height: 52px;
}

.jsm-cro-checkout-zone .jsm-cro-wallet-card-fallback .jsm-cro-pay--card {
	min-height: 52px;
	font-size: 15px;
	box-shadow: 0 3px 10px rgba(0, 87, 184, 0.25);
}

.jsm-cro-checkout-zone .jsm-cro-quick-checkout__note {
	font-size: 12px;
	font-weight: 600;
	color: #475569;
}

.jsm-cro-summary-total + .jsm-cro-checkout-zone {
	margin-top: 14px;
}

/* v1.4.2 — Stripe express checkout visible in mobile checkout zone */
body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile .jsm-cro-wallet-slot:not(.jsm-cro-wallet-slot--empty):not(.jsm-cro-wallet-slot--merged) {
	display: block !important;
	min-height: 52px;
}

body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile #wc-stripe-express-checkout-element,
body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile #wc-stripe-payment-request-wrapper,
body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile #ppc-button-ppcp-gateway,
body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile #ppc-button-applepay-container,
body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile #ppc-button-googlepay-container,
body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile #ppc-button-ppcp-card-button-gateway {
	display: block !important;
	width: 100% !important;
	min-height: 52px !important;
	visibility: visible !important;
	opacity: 1 !important;
}

body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile .jsm-cro-wallet-slot iframe,
body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile .jsm-cro-wallet-slot button,
body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile .jsm-cro-wallet-slot .StripeElement {
	width: 100% !important;
	min-height: 52px !important;
}

body.jsm-cro-is-mobile.jsm-cro-active .jsm-cro-checkout-zone--mobile .jsm-cro-quick-checkout {
	margin-top: 0;
	padding-top: 14px;
}

.jsm-cro-wallet-slot #ppc-button-applepay-container.is-jsm-cro-wallet-mount-inert {
	display: none !important;
	visibility: hidden !important;
	min-height: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	pointer-events: none !important;
}

/* Dispenser water add-on */
.jsm-cro-water-addon__intro {
	margin: 0 0 12px;
	font-size: 0.95rem;
	color: #475569;
	line-height: 1.45;
}

.jsm-cro-water-addon__choice {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 12px;
}

.jsm-cro-water-addon__opt {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 12px 14px;
	border: 1.5px solid #cbd5e1;
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
}

.jsm-cro-water-addon__opt input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}

.jsm-cro-water-addon__opt.is-selected {
	border-color: #1a4789;
	box-shadow: 0 0 0 1px #1a4789;
	background: #f0f6ff;
}

.jsm-cro-water-addon__opt-title {
	font-weight: 700;
	color: #0f172a;
}

.jsm-cro-water-addon__opt-desc {
	font-size: 0.85rem;
	color: #64748b;
}

.jsm-cro-water-addon__details {
	margin-top: 4px;
	padding-top: 4px;
}

.jsm-cro-water-addon__qty {
	margin-top: 14px;
}

.jsm-cro-water-addon__qty-label {
	display: block;
	font-weight: 600;
	margin-bottom: 8px;
	color: #0f172a;
}

.jsm-cro-water-addon__line {
	margin: 12px 0 0;
	font-size: 0.95rem;
	color: #334155;
}

.jsm-cro-water-addon__siblings {
	margin: 14px 0 0;
	font-size: 0.9rem;
	color: #64748b;
}

.jsm-cro-water-addon__siblings a {
	color: #1a4789;
	font-weight: 600;
	text-decoration: underline;
}

@media (max-width: 544px) {
	.jsm-cro-water-addon__choice {
		grid-template-columns: 1fr;
	}
}
