:root{
	--chv-bo-primary:#355b49;
	--chv-bo-primary-dark:#29483a;
	--chv-bo-soft:#f4f8f5;
	--chv-bo-soft-2:#eef5f0;
	--chv-bo-border:rgba(53,91,73,.14);
	--chv-bo-border-strong:rgba(53,91,73,.24);
	--chv-bo-text:#25352e;
	--chv-bo-muted:#6b7f75;
	--chv-bo-white:#fff;
	--chv-bo-accent:#d9b85d;
	--chv-bo-danger:#b42323;
	--chv-bo-radius:22px;
	--chv-bo-radius-sm:16px;
	--chv-bo-shadow:0 16px 45px rgba(41,72,58,.09);
	--chv-bo-shadow-soft:0 8px 26px rgba(41,72,58,.07);
}

.chv-bo-wrap,
.chv-bo-wrap *{box-sizing:border-box}

.chv-bo-wrap{
	display:grid;
	grid-template-columns:minmax(0,1fr) 360px;
	gap:26px;
	align-items:start;
	margin:24px auto;
	font-family:inherit;
	color:var(--chv-bo-text);
}

.chv-bo-products{
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:18px;
	align-items:stretch;
}

.chv-bo-card{
	position:relative;
	background:var(--chv-bo-white);
	border:1px solid var(--chv-bo-border);
	border-radius:var(--chv-bo-radius);
	overflow:hidden;
	box-shadow:var(--chv-bo-shadow-soft);
	transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
	display:flex;
	flex-direction:column;
	height:100%;
}

.chv-bo-card:hover{
	transform:translateY(-3px);
	box-shadow:var(--chv-bo-shadow);
	border-color:var(--chv-bo-border-strong);
}

.chv-bo-image{
	position:relative;
	display:block;
	background:linear-gradient(180deg,#f9fbf9,#eff6f1);
	aspect-ratio:1/1;
	overflow:hidden;
	flex:0 0 auto;
}

.chv-bo-image img{
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	transition:transform .35s ease;
}

.chv-bo-card:hover .chv-bo-image img{transform:scale(1.035)}

.chv-bo-sale{
	position:absolute;
	top:12px;
	inset-inline-start:12px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	padding:6px 10px;
	border-radius:999px;
	background:var(--chv-bo-primary);
	color:#fff;
	font-size:12px;
	font-weight:800;
	line-height:1;
	box-shadow:0 8px 18px rgba(41,72,58,.18);
}

.chv-bo-card-body{
	padding:16px 16px 18px;
	display:flex;
	flex-direction:column;
	flex:1 1 auto;
	min-height:210px;
}

.chv-bo-card h3{
	font-size:15px;
	line-height:1.45;
	font-weight:800;
	margin:0 0 8px;
	min-height:64px;
	max-height:64px;
	overflow:hidden;
	display:-webkit-box;
	-webkit-line-clamp:3;
	-webkit-box-orient:vertical;
}

.chv-bo-card h3 a{color:var(--chv-bo-text);text-decoration:none}
.chv-bo-card h3 a:hover{color:var(--chv-bo-primary)}

.chv-bo-price{
	font-size:15px;
	font-weight:800;
	color:var(--chv-bo-primary);
	min-height:28px;
	margin-bottom:14px;
	display:flex;
	align-items:center;
	flex-wrap:wrap;
	gap:4px;
}

.chv-bo-price del{color:var(--chv-bo-muted);font-weight:600;opacity:.72;margin-inline-end:5px}
.chv-bo-price ins{text-decoration:none;color:var(--chv-bo-primary)}

.chv-bo-card-actions{
	display:grid;
	grid-template-columns:minmax(86px,.72fr) minmax(118px,1fr);
	align-items:center;
	gap:10px;
	width:100%;
	min-width:0;
	margin-top:auto;
}

.chv-bo-card-actions.has-variable{
	grid-template-columns:minmax(74px,.62fr) minmax(116px,1fr) minmax(96px,.82fr);
	gap:8px;
}

.chv-bo-details,
.chv-bo-add,
.chv-bo-choose,
.chv-bo-add-variation,
.chv-bo-checkout,
.chv-bo-cart{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:40px;
	border-radius:999px;
	padding:0 14px;
	font-size:13px;
	font-weight:800;
	line-height:1;
	text-decoration:none!important;
	border:1px solid var(--chv-bo-border);
	transition:all .18s ease;
	font-family:inherit;
	cursor:pointer;
	white-space:nowrap;
}

.chv-bo-details,
.chv-bo-cart{
	background:#fff;
	color:var(--chv-bo-primary);
}

.chv-bo-details{
	width:100%;
	min-width:0;
}

.chv-bo-card-actions.has-variable .chv-bo-details{
	padding-inline:10px;
	font-size:12.5px;
	min-height:38px;
}

.chv-bo-details:hover,
.chv-bo-cart:hover{
	background:var(--chv-bo-soft);
	border-color:var(--chv-bo-border-strong);
	color:var(--chv-bo-primary-dark);
}

.chv-bo-add,
.chv-bo-choose,
.chv-bo-add-variation,
.chv-bo-checkout{
	background:var(--chv-bo-primary);
	border-color:var(--chv-bo-primary);
	color:#fff!important;
	box-shadow:0 10px 24px rgba(41,72,58,.15);
}

.chv-bo-add:hover,
.chv-bo-choose:hover,
.chv-bo-add-variation:hover:not(:disabled),
.chv-bo-checkout:hover{
	background:var(--chv-bo-primary-dark);
	border-color:var(--chv-bo-primary-dark);
	color:#fff!important;
	transform:translateY(-1px);
}

.chv-bo-add-variation:disabled{
	cursor:not-allowed;
	opacity:.55;
	box-shadow:none;
	background:rgba(53,91,73,.72);
	border-color:transparent;
}

.chv-bo-qty-control{
	min-width:0;
	display:flex;
	align-items:center;
	justify-content:flex-end;
	width:100%;
}

.chv-bo-qty-control > .chv-bo-add{
	width:100%;
	min-width:0;
}

.chv-bo-stepper{
	display:none;
	align-items:center;
	justify-content:space-between;
	gap:7px;
	width:100%;
	min-width:0;
}

.chv-bo-qty-control.is-active > .chv-bo-add{display:none}
.chv-bo-qty-control.is-active .chv-bo-stepper{display:flex}

.chv-bo-product-dec,
.chv-bo-product-inc,
.chv-bo-cart-qty,
.chv-bo-remove{
	position:relative;
	display:inline-flex;
	align-items:center!important;
	justify-content:center!important;
	border:0;
	border-radius:50%;
	font-size:0!important;
	line-height:0!important;
	font-family:inherit;
	cursor:pointer;
	transition:all .16s ease;
	-webkit-appearance:none;
	appearance:none;
	text-indent:-9999px;
	overflow:hidden;
}

.chv-bo-product-dec,
.chv-bo-product-inc,
.chv-bo-cart-qty{
	width:34px;
	height:34px;
	min-width:34px;
	min-height:34px;
	padding:0!important;
	background:var(--chv-bo-soft-2);
	color:var(--chv-bo-primary)!important;
	border-radius:50%;
	box-shadow:none;
}

.chv-bo-product-dec:hover,
.chv-bo-product-inc:hover,
.chv-bo-cart-qty:hover{
	background:var(--chv-bo-primary);
	color:#fff!important;
	transform:translateY(-1px);
}

.chv-bo-product-dec:before,
.chv-bo-cart-qty[data-action="dec"]:before{
	content:"";
	position:absolute;
	inset:50% auto auto 50%;
	width:12px;
	height:2px;
	border-radius:999px;
	background:currentColor;
	transform:translate(-50%,-50%);
}

.chv-bo-product-inc:before,
.chv-bo-product-inc:after,
.chv-bo-cart-qty[data-action="inc"]:before,
.chv-bo-cart-qty[data-action="inc"]:after{
	content:"";
	position:absolute;
	inset:50% auto auto 50%;
	width:12px;
	height:2px;
	border-radius:999px;
	background:currentColor;
	transform:translate(-50%,-50%);
}

.chv-bo-product-inc:after,
.chv-bo-cart-qty[data-action="inc"]:after{
	transform:translate(-50%,-50%) rotate(90deg);
}

.chv-bo-product-qty{
	display:flex;
	align-items:center;
	justify-content:center;
	height:34px;
	min-width:46px;
	padding:0 9px;
	border-radius:999px;
	background:#fff;
	border:1px solid var(--chv-bo-border);
	font-size:13px;
	font-weight:900;
	color:var(--chv-bo-primary);
}

/* Compact variable products: details + variant selector + add button on one row */
.chv-bo-variable{
	min-width:0;
	width:100%;
	margin:0;
	padding:0;
	border:0;
	background:transparent;
	display:contents;
}

.chv-bo-variation-fields{
	min-width:0;
	width:100%;
}

.chv-bo-variation-select{
	width:100%;
	height:38px;
	border-radius:999px;
	border:1px solid var(--chv-bo-border);
	background:#fff;
	color:var(--chv-bo-text);
	font-size:12.5px;
	font-weight:800;
	padding:0 13px;
	outline:0;
	box-shadow:none;
	white-space:nowrap;
	text-overflow:ellipsis;
}

.chv-bo-variation-select:focus{border-color:var(--chv-bo-primary)}
.chv-bo-variation-price{display:none!important}

.chv-bo-add-variation{
	width:100%;
	min-width:0;
	min-height:38px;
	padding-inline:10px;
	font-size:12.5px;
}

.chv-bo-summary{
	position:sticky;
	top:95px;
	z-index:2;
}

.chv-bo-summary-card{
	background:#fff;
	border:1px solid var(--chv-bo-border);
	border-radius:26px;
	padding:22px;
	box-shadow:var(--chv-bo-shadow);
}

.chv-bo-summary-head{margin-bottom:18px}
.chv-bo-kicker{
	display:inline-flex;
	align-items:center;
	padding:6px 10px;
	border-radius:999px;
	background:var(--chv-bo-soft-2);
	color:var(--chv-bo-primary);
	font-size:11px;
	font-weight:900;
	line-height:1;
	margin-bottom:10px;
}

.chv-bo-summary-head h3{
	font-size:22px;
	line-height:1.25;
	font-weight:900;
	color:var(--chv-bo-primary-dark);
	margin:0 0 8px;
}

.chv-bo-summary-head p{
	font-size:13px;
	line-height:1.7;
	color:var(--chv-bo-muted);
	margin:0;
}

.chv-bo-levels{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:8px;
	margin:18px 0;
}

.chv-bo-level{
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:4px;
	min-height:58px;
	border:1px solid var(--chv-bo-border);
	border-radius:16px;
	background:#fff;
	color:var(--chv-bo-muted);
	transition:all .16s ease;
}

.chv-bo-level strong{font-size:15px;font-weight:900;line-height:1;color:inherit}
.chv-bo-level small{font-size:12px;font-weight:800;line-height:1;color:inherit}
.chv-bo-level.is-active{background:var(--chv-bo-primary);border-color:var(--chv-bo-primary);color:#fff;box-shadow:0 12px 22px rgba(41,72,58,.16)}

.chv-bo-totals{
	display:grid;
	gap:9px;
	padding:14px;
	border-radius:18px;
	background:var(--chv-bo-soft);
	margin-bottom:18px;
}

.chv-bo-totals div{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	font-size:13px;
	color:var(--chv-bo-muted);
}

.chv-bo-totals strong{font-size:14px;color:var(--chv-bo-text);font-weight:900;text-align:end}
.chv-bo-totals .is-saving strong{color:#2f8f5b}
.chv-bo-totals .is-total{padding-top:10px;border-top:1px solid var(--chv-bo-border)}
.chv-bo-totals .is-total span,
.chv-bo-totals .is-total strong{font-size:16px;color:var(--chv-bo-primary-dark);font-weight:900}

.chv-bo-selected h4{
	font-size:14px;
	font-weight:900;
	margin:0 0 12px;
	color:var(--chv-bo-primary-dark);
}

.chv-bo-empty{
	margin:0 0 14px;
	padding:14px;
	border:1px dashed var(--chv-bo-border-strong);
	border-radius:16px;
	color:var(--chv-bo-muted);
	font-size:13px;
	text-align:center;
}

.chv-bo-selected-item{
	display:grid;
	grid-template-columns:46px minmax(0,1fr) auto 30px;
	gap:10px;
	align-items:center;
	padding:10px 0;
	border-bottom:1px solid rgba(53,91,73,.09);
}

.chv-bo-selected-item:last-child{border-bottom:0}
.chv-bo-selected-img img{width:46px;height:46px;object-fit:cover;border-radius:12px;display:block;background:var(--chv-bo-soft)}
.chv-bo-selected-info{min-width:0;display:flex;flex-direction:column;gap:4px}
.chv-bo-selected-info strong{font-size:12.5px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--chv-bo-text)}
.chv-bo-selected-info span{font-size:12px;font-weight:800;color:var(--chv-bo-primary)}

.chv-bo-mini-qty{display:grid;grid-template-columns:30px 24px 30px;align-items:center;gap:4px}
.chv-bo-mini-qty .chv-bo-cart-qty{width:30px;height:30px;min-width:30px;min-height:30px}
.chv-bo-mini-qty span{font-size:12px;font-weight:900;text-align:center;color:var(--chv-bo-primary)}

.chv-bo-remove{
	width:30px;
	height:30px;
	min-width:30px;
	min-height:30px;
	padding:0!important;
	background:rgba(207,46,46,.08);
	color:var(--chv-bo-danger);
}
.chv-bo-remove:before,
.chv-bo-remove:after{
	content:"";
	position:absolute;
	inset:50% auto auto 50%;
	width:11px;
	height:2px;
	border-radius:999px;
	background:currentColor;
}
.chv-bo-remove:before{transform:translate(-50%,-50%) rotate(45deg)}
.chv-bo-remove:after{transform:translate(-50%,-50%) rotate(-45deg)}
.chv-bo-remove:hover{background:var(--chv-bo-danger);color:#fff}

.chv-bo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.chv-bo-checkout,.chv-bo-cart{min-height:44px}

.chv-bo-loading{position:relative;pointer-events:none;opacity:.72}
.chv-bo-loading:after{
	content:"";
	position:absolute;
	inset:0;
	border-radius:inherit;
	background:rgba(255,255,255,.25);
}

@media (max-width:1199px){
	.chv-bo-wrap{grid-template-columns:minmax(0,1fr) 330px;gap:20px}
	.chv-bo-products{grid-template-columns:repeat(2,minmax(0,1fr))}
	.chv-bo-card-actions.has-variable{grid-template-columns:minmax(70px,.55fr) minmax(110px,1fr) minmax(90px,.78fr)}
}

@media (max-width:991px){
	.chv-bo-wrap{grid-template-columns:1fr}
	.chv-bo-summary{position:relative;top:auto;order:-1}
	.chv-bo-products{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media (max-width:575px){
	.chv-bo-wrap{gap:16px;margin:16px auto}
	.chv-bo-products{grid-template-columns:1fr;gap:14px}
	.chv-bo-summary-card{padding:18px;border-radius:22px}
	.chv-bo-levels{grid-template-columns:repeat(2,1fr)}
	.chv-bo-card-body{min-height:auto}
	.chv-bo-card h3{min-height:auto;max-height:none;-webkit-line-clamp:unset}
	.chv-bo-card-actions{gap:8px;grid-template-columns:minmax(88px,.7fr) minmax(116px,1fr)}
	.chv-bo-card-actions.has-variable{grid-template-columns:minmax(72px,.55fr) minmax(104px,1fr) minmax(84px,.78fr)}
	.chv-bo-details{min-width:0}
	.chv-bo-product-dec,.chv-bo-product-inc,.chv-bo-cart-qty{width:32px;height:32px;min-width:32px;min-height:32px}
	.chv-bo-product-qty{height:32px;min-width:42px}
	.chv-bo-variation-select,.chv-bo-add-variation{height:36px;min-height:36px;font-size:11.5px;padding-inline:8px}
	.chv-bo-selected-item{grid-template-columns:42px minmax(0,1fr);gap:8px}
	.chv-bo-mini-qty{grid-column:2;justify-self:start;margin-top:4px}
	.chv-bo-remove{grid-column:1;grid-row:2;width:28px;height:28px;min-width:28px;min-height:28px;justify-self:center}
	.chv-bo-actions{grid-template-columns:1fr}
}

/* ChloroVit offers sticky checkout bar - shortcode page only */
.chv-bo-sticky-checkout{
	position:fixed;
	left:50%;
	bottom:18px;
	transform:translateX(-50%);
	z-index:99990;
	width:min(760px, calc(100vw - 32px));
	min-height:74px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:18px;
	padding:13px 16px 13px 20px;
	border:1px solid rgba(53,91,73,.16);
	border-radius:22px;
	background:rgba(255,255,255,.96);
	box-shadow:0 18px 50px rgba(41,72,58,.18);
	backdrop-filter:blur(12px);
	-webkit-backdrop-filter:blur(12px);
	font-family:inherit;
	color:var(--chv-bo-text);
}

.chv-bo-rtl .chv-bo-sticky-checkout{
	padding:13px 20px 13px 16px;
}

.chv-bo-sticky-info{
	min-width:0;
	display:grid;
	gap:3px;
	line-height:1.25;
}

.chv-bo-sticky-info span{
	color:#8a968f;
	font-size:12px;
	font-weight:800;
}

.chv-bo-sticky-info strong{
	color:var(--chv-bo-primary-dark);
	font-size:16px;
	font-weight:900;
}

.chv-bo-sticky-info small{
	color:var(--chv-bo-muted);
	font-size:13px;
	font-weight:800;
}

.chv-bo-sticky-info .woocommerce-Price-amount{
	color:var(--chv-bo-primary-dark);
	font-weight:900;
}

.chv-bo-sticky-btn{
	flex:0 0 auto;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:150px;
	min-height:50px;
	padding:0 24px;
	border-radius:999px;
	background:var(--chv-bo-primary-dark);
	border:1px solid var(--chv-bo-primary-dark);
	color:#fff!important;
	font-size:14px;
	font-weight:900;
	line-height:1;
	text-decoration:none!important;
	box-shadow:0 12px 28px rgba(41,72,58,.18);
	transition:transform .18s ease, background-color .18s ease, border-color .18s ease;
}

.chv-bo-sticky-btn:hover{
	background:var(--chv-bo-primary);
	border-color:var(--chv-bo-primary);
	color:#fff!important;
	transform:translateY(-1px);
}

@media (max-width:575px){
	.chv-bo-wrap{padding-bottom:168px}
	.chv-bo-sticky-checkout{
		bottom:84px;
		width:calc(100vw - 20px);
		min-height:70px;
		gap:10px;
		padding:11px 12px;
		border-radius:18px;
	}
	.chv-bo-sticky-info span{font-size:11px}
	.chv-bo-sticky-info strong{font-size:14px}
	.chv-bo-sticky-info small{font-size:11.5px}
	.chv-bo-sticky-btn{
		min-width:118px;
		min-height:46px;
		padding:0 16px;
		font-size:13px;
	}
}
