.bepro-vc {
	--bepro-vc-accent: #00a8d4;
	--bepro-vc-border: #dce4ea;
	--bepro-vc-text: #3f4854;
	--bepro-vc-muted: #77828d;
	--bepro-vc-success: #42ad57;
	color: var(--bepro-vc-text);
	font-size: 14px;
	line-height: 1.4;
}

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

.bepro-vc__primary {
	margin-bottom: 28px;
}

.bepro-vc__heading {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	padding-bottom: 10px;
	border-bottom: 1px solid #e8edf1;
	color: var(--bepro-vc-text);
	font-size: 17px;
	font-weight: 700;
}

.bepro-vc__step {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--bepro-vc-accent);
	color: #fff;
	font-size: 12px;
	line-height: 1;
}

.bepro-vc__primary-options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
	gap: 8px;
}

.bepro-vc .bepro-vc__primary-option {
	appearance: none;
	min-height: 48px;
	padding: 10px 14px;
	border: 1px solid var(--bepro-vc-border);
	border-radius: 4px;
	background: #fff;
	color: var(--bepro-vc-text);
	cursor: pointer;
	font: inherit;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}

.bepro-vc__primary-option:disabled {
	cursor: not-allowed;
	opacity: 0.45;
}

.bepro-vc .bepro-vc__primary-option.is-selected {
	position: relative;
	background: #fff;
	border-color: var(--bepro-vc-accent);
	box-shadow: inset 0 0 0 1px var(--bepro-vc-accent);
	color: var(--bepro-vc-accent);
	font-weight: 700;
}

.bepro-vc .bepro-vc__primary-option:hover,
.bepro-vc .bepro-vc__primary-option:focus-visible {
	border-color: #838583;
	background: #838583;
	box-shadow: none;
	color: #fff;
	outline: none;
}

.bepro-vc__primary-option.is-selected::after {
	position: absolute;
	top: 0;
	right: 0;
	width: 18px;
	height: 18px;
	background: var(--bepro-vc-accent);
	color: #fff;
	content: "✓";
	font-size: 11px;
	line-height: 18px;
	text-align: center;
}

.bepro-vc__header,
.bepro-vc__card {
	display: flex;
	align-items: center;
	gap: 12px;
}

.bepro-vc__header {
	padding: 0 10px 7px;
	color: var(--bepro-vc-muted);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.bepro-vc__cards {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.bepro-vc__card {
	min-height: 82px;
	padding: 8px 10px;
	border: 1px solid var(--bepro-vc-border);
	border-radius: 4px;
	background: #fff;
}

.bepro-vc__card.is-unavailable {
	opacity: 0.52;
}

.bepro-vc__media,
.bepro-vc__header-image {
	display: flex;
	flex: 0 0 72px;
	align-items: center;
	justify-content: center;
	width: 72px;
}

.bepro-vc--media-none .bepro-vc__media,
.bepro-vc--media-none .bepro-vc__header-image {
	display: none;
}

.bepro-vc__media img {
	display: block;
	width: 72px;
	height: 72px;
	object-fit: contain;
}

.bepro-vc__media img[hidden] {
	display: none;
}

.bepro-vc__name,
.bepro-vc__header-name {
	flex: 1 1 180px;
	min-width: 120px;
}

.bepro-vc__name {
	font-weight: 700;
}

.bepro-vc__sku,
.bepro-vc__header-sku {
	flex: 0 1 115px;
	width: 115px;
	color: var(--bepro-vc-muted);
}

.bepro-vc__stock,
.bepro-vc__header-stock {
	flex: 0 1 110px;
	width: 110px;
}

.bepro-vc__stock.is-in-stock::before {
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 6px;
	border-radius: 50%;
	background: var(--bepro-vc-success);
	content: "";
}

.bepro-vc__quantity,
.bepro-vc__header-quantity {
	flex: 0 0 104px;
	width: 104px;
}

.bepro-vc__quantity {
	display: flex;
	height: 36px;
	border: 1px solid var(--bepro-vc-border);
	border-radius: 7px;
	background: #f7f8f8;
	box-shadow: 0 1px 2px rgba(45, 54, 64, 0.06);
	overflow: hidden;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.bepro-vc .bepro-vc__quantity-button,
.bepro-vc .bepro-vc__quantity-input {
	appearance: none;
	min-width: 0;
	height: 34px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--bepro-vc-text);
	font: inherit;
	line-height: 34px;
	text-align: center;
}

.bepro-vc .bepro-vc__quantity-button {
	flex: 0 0 31px;
	width: 31px;
	cursor: pointer;
	font-size: 17px;
	font-weight: 500;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.bepro-vc .bepro-vc__quantity-button:hover,
.bepro-vc .bepro-vc__quantity-button:focus-visible {
	background: #e8ecee;
	color: var(--bepro-vc-accent);
	outline: none;
}

.bepro-vc .bepro-vc__quantity-input {
	-moz-appearance: textfield;
	flex: 1 1 auto;
	width: 40px;
	border-right: 1px solid var(--bepro-vc-border);
	border-left: 1px solid var(--bepro-vc-border);
	font-weight: 600;
}

.bepro-vc__quantity:focus-within {
	border-color: var(--bepro-vc-accent);
	box-shadow: 0 0 0 2px rgba(0, 168, 212, 0.14);
}

.bepro-vc__quantity-input::-webkit-inner-spin-button,
.bepro-vc__quantity-input::-webkit-outer-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

.bepro-vc__price,
.bepro-vc__header-price {
	flex: 0 1 120px;
	width: 120px;
	text-align: right;
}

.bepro-vc__price {
	font-weight: 700;
	white-space: nowrap;
}

.bepro-vc__price del {
	display: block;
	color: var(--bepro-vc-muted);
	font-size: 0.85em;
	font-weight: 400;
}

.bepro-vc__action,
.bepro-vc__header-action {
	flex: 0 0 125px;
	width: 125px;
}

.bepro-vc__add-to-cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	width: 100%;
	min-height: 38px;
	padding: 8px 12px;
	border: 0;
	border-radius: 3px;
	background: var(--bepro-vc-accent);
	color: #fff;
	cursor: pointer;
	font: inherit;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	transition: filter 0.15s ease, opacity 0.15s ease;
}

.bepro-vc .bepro-vc__add-to-cart:hover,
.bepro-vc .bepro-vc__add-to-cart:focus-visible {
	background: #838583;
	filter: none;
	outline: none;
}

.bepro-vc__add-to-cart:disabled {
	cursor: not-allowed;
	opacity: 0.55;
}

.bepro-vc__add-to-cart.is-loading .bepro-vc__cart-icon {
	animation: bepro-vc-spin 0.8s linear infinite;
}

.bepro-vc__add-to-cart.is-added {
	background: var(--bepro-vc-success);
}

.bepro-vc__info {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 20px;
	padding: 16px 18px;
	border: 1px solid #d4edf5;
	border-radius: 4px;
	background: #edf9fd;
	color: #52606c;
}

.bepro-vc__info a {
	color: var(--bepro-vc-accent);
	font-weight: 700;
}

.bepro-vc__info-icon {
	margin-right: 4px;
	color: var(--bepro-vc-accent);
	font-size: 18px;
}

.bepro-vc__notice {
	margin-top: 10px;
	padding: 10px 12px;
	border-radius: 3px;
	background: #edf9fd;
}

.bepro-vc__notice.is-error,
.bepro-vc--message {
	border-left: 4px solid #d63638;
	background: #fcf0f1;
}

.bepro-vc--message {
	padding: 12px 14px;
}

@keyframes bepro-vc-spin {
	to { transform: rotate(360deg); }
}

@media (max-width: 767px) {
	.bepro-vc__header {
		display: none;
	}

	.bepro-vc__card {
		display: grid;
		grid-template-columns: 72px minmax(0, 1fr);
		gap: 7px 12px;
		align-items: center;
		padding: 12px;
	}

	.bepro-vc--media-none .bepro-vc__card {
		grid-template-columns: minmax(0, 1fr);
	}

	.bepro-vc__media {
		grid-row: 1 / span 7;
		align-self: start;
	}

	.bepro-vc__name,
	.bepro-vc__sku,
	.bepro-vc__stock,
	.bepro-vc__quantity,
	.bepro-vc__price,
	.bepro-vc__action {
		grid-column: 2;
		width: auto;
		min-width: 0;
		text-align: left;
	}

	.bepro-vc--media-none .bepro-vc__name,
	.bepro-vc--media-none .bepro-vc__sku,
	.bepro-vc--media-none .bepro-vc__stock,
	.bepro-vc--media-none .bepro-vc__quantity,
	.bepro-vc--media-none .bepro-vc__price,
	.bepro-vc--media-none .bepro-vc__action {
		grid-column: 1;
	}

	.bepro-vc__sku::before,
	.bepro-vc__stock::before,
	.bepro-vc__price::before {
		margin-right: 6px;
		color: var(--bepro-vc-muted);
		content: attr(data-label) ":";
		font-size: 10px;
		font-weight: 700;
		letter-spacing: 0.03em;
		text-transform: uppercase;
	}

	.bepro-vc__stock.is-in-stock::before {
		width: auto;
		height: auto;
		border-radius: 0;
		background: none;
	}

	.bepro-vc__quantity {
		justify-self: start;
	}

	.bepro-vc__action {
		max-width: 180px;
	}

	.bepro-vc__info {
		align-items: flex-start;
		flex-wrap: wrap;
	}
}
