.bfb-wizard{
	--bfb-red:#ED1C24;
	--bfb-red-dark:#C4141B;
	--bfb-gold:#FCB316;
	--bfb-ink:#1A1A1A;
	--bfb-grey:#5B5B5B;
	--bfb-line:#E8E8E8;
	max-width:760px;
	margin:0 auto;
	font-family:'Poppins',Arial,sans-serif;
	color:var(--bfb-ink);
	box-sizing:border-box;
}
.bfb-wizard *, .bfb-wizard *::before, .bfb-wizard *::after{box-sizing:border-box;}

.bfb-wizard .bfb-progress{margin-bottom:28px;}
.bfb-wizard .bfb-progress-bar{background:var(--bfb-line);border-radius:50px;height:10px;overflow:hidden;}
.bfb-wizard .bfb-progress-fill{background:var(--bfb-red);height:100%;transition:width .3s ease;}
.bfb-wizard .bfb-progress-label{text-align:right;font-size:12.5px;font-weight:600;color:var(--bfb-grey);margin-top:6px;}

.bfb-wizard .bfb-step-title{font-size:26px;font-weight:800;margin:0 0 6px;}
.bfb-wizard .bfb-step-sub{font-size:14.5px;color:var(--bfb-grey);margin:0 0 22px;}

.bfb-wizard .bfb-card-grid{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:14px;
	margin-bottom:26px;
}
.bfb-wizard .bfb-card{
	position:relative;
	border:2px solid var(--bfb-line);
	border-radius:14px;
	padding:16px 18px;
	cursor:pointer;
	display:flex;
	flex-direction:column;
	gap:4px;
	transition:border-color .15s ease, background .15s ease;
	background:#fff;
}
.bfb-wizard .bfb-card > input[type="radio"]{position:absolute;opacity:0;pointer-events:none;}

.bfb-wizard .bfb-custom-qty-wrap{
	margin-top:12px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	flex-wrap:wrap;
}
.bfb-wizard .bfb-custom-qty-label{font-size:13px;font-weight:600;color:var(--bfb-ink);}
.bfb-wizard .bfb-custom-qty-wrap .bfb-qty-stepper{position:static;opacity:1;pointer-events:auto;}
.bfb-wizard .bfb-custom-qty-input{
	position:static;
	opacity:1;
	pointer-events:auto;
}
.bfb-wizard .bfb-card-label{font-weight:700;font-size:14.5px;}
.bfb-wizard .bfb-card-price{font-size:13px;color:var(--bfb-grey);font-weight:600;}
.bfb-wizard .bfb-card.is-selected,
.bfb-wizard .bfb-card:has(input:checked){
	border-color:var(--bfb-red);
	background:#FFF3F3;
}
.bfb-wizard .bfb-card.is-selected .bfb-card-price,
.bfb-wizard .bfb-card:has(input:checked) .bfb-card-price{color:var(--bfb-red);}

.bfb-wizard .bfb-textarea, .bfb-wizard .bfb-input{
	width:100%;
	border:2px solid var(--bfb-line);
	border-radius:12px;
	padding:14px 16px;
	font-family:inherit;
	font-size:14.5px;
	margin-bottom:10px;
	resize:vertical;
	background:#fff;
	appearance:none;
	-webkit-appearance:none;
}
.bfb-wizard .bfb-textarea:focus, .bfb-wizard .bfb-input:focus{outline:none;border-color:var(--bfb-red);}
.bfb-wizard .bfb-note{font-size:12.5px;color:var(--bfb-grey);margin:0 0 26px;}

.bfb-wizard .bfb-included-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;}
.bfb-wizard .bfb-included-badge{
	display:inline-block;
	background:var(--bfb-ink);
	color:var(--bfb-gold);
	font-size:12.5px;
	font-weight:700;
	padding:8px 14px;
	border-radius:50px;
	width:auto;
}

.bfb-wizard .bfb-accessory-list{display:flex;flex-direction:column;gap:10px;margin-bottom:26px;}
.bfb-wizard .bfb-accessory-row{
	display:flex;
	align-items:center;
	justify-content:space-between;
	border:2px solid var(--bfb-line);
	border-radius:12px;
	padding:12px 16px;
	background:#fff;
	gap:12px;
}
.bfb-wizard .bfb-accessory-info{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;}
.bfb-wizard .bfb-accessory-name{display:block;font-weight:700;font-size:14px;}
.bfb-wizard .bfb-accessory-price{display:block;font-size:12.5px;color:var(--bfb-grey);}

/* Quantity stepper - explicit sizing/reset so theme-wide button styles cannot stretch these into pills */
.bfb-wizard .bfb-qty-stepper{
	display:flex;
	align-items:center;
	gap:10px;
	flex:0 0 auto;
	width:auto;
}
.bfb-wizard .bfb-qty-stepper button.bfb-qty-minus,
.bfb-wizard .bfb-qty-stepper button.bfb-qty-plus{
	all:unset;
	box-sizing:border-box;
	display:flex;
	align-items:center;
	justify-content:center;
	flex:0 0 30px;
	width:30px;
	height:30px;
	min-width:30px;
	max-width:30px;
	border-radius:50%;
	border:2px solid var(--bfb-ink);
	background:#fff;
	color:var(--bfb-ink);
	font-size:16px;
	font-weight:700;
	line-height:1;
	cursor:pointer;
	text-align:center;
}
.bfb-wizard .bfb-qty-stepper button.bfb-qty-minus:hover,
.bfb-wizard .bfb-qty-stepper button.bfb-qty-plus:hover{
	background:var(--bfb-gold);
	border-color:var(--bfb-gold);
}
.bfb-wizard .bfb-qty-stepper input{
	all:unset;
	box-sizing:border-box;
	width:34px;
	flex:0 0 34px;
	text-align:center;
	font-weight:700;
	font-size:14.5px;
	color:var(--bfb-ink);
}

.bfb-wizard .bfb-summary{
	background:#F9F9F9;
	border-radius:14px;
	padding:18px 20px;
	font-size:14px;
	line-height:1.9;
	margin-bottom:18px;
}
.bfb-wizard .bfb-summary strong{display:inline-block;min-width:130px;}

.bfb-wizard .bfb-total-row{
	display:flex;
	justify-content:space-between;
	align-items:center;
	font-size:18px;
	font-weight:800;
	padding:16px 0;
	border-top:2px dashed var(--bfb-line);
	margin-bottom:20px;
}

.bfb-wizard .bfb-quote-only-message{
	background:#FFF7E0;
	border:1px solid #E8C860;
	border-radius:12px;
	padding:18px;
	margin-bottom:20px;
}

.bfb-wizard .bfb-step-actions{display:flex;gap:14px;justify-content:flex-end;margin-top:8px;}

.bfb-wizard .bfb-btn{
	all:unset;
	box-sizing:border-box;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	font-family:inherit;
	font-weight:700;
	font-size:14.5px;
	padding:14px 28px;
	border-radius:50px;
	cursor:pointer;
	transition:transform .15s ease;
	text-align:center;
}
.bfb-wizard .bfb-btn:hover{transform:translateY(-1px);}
.bfb-wizard .bfb-btn-primary{background:var(--bfb-red);color:#fff;}
.bfb-wizard .bfb-btn-primary:hover{background:var(--bfb-red-dark);}
.bfb-wizard .bfb-btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;}
.bfb-wizard .bfb-btn-ghost{background:transparent;border:2px solid var(--bfb-ink);color:var(--bfb-ink);}

.bfb-wizard .bfb-error{
	background:#FFF0F0;
	border:1px solid var(--bfb-red);
	color:var(--bfb-red-dark);
	padding:12px 16px;
	border-radius:10px;
	margin-top:16px;
	font-size:13.5px;
}

.bfb-wizard .bfb-thankyou{text-align:center;padding:60px 20px;}
.bfb-wizard .bfb-thankyou h2{font-size:28px;margin-bottom:12px;}

@media (max-width:600px){
	.bfb-wizard .bfb-card-grid{grid-template-columns:1fr;}
	.bfb-wizard .bfb-step-title{font-size:22px;}
	.bfb-wizard .bfb-step-actions{flex-direction:column-reverse;}
	.bfb-wizard .bfb-step-actions .bfb-btn{width:100%;text-align:center;}
}
