.rbb-builder {
	--rbb-font-family: inherit;
	--rbb-base-font-size: 15px;
	--rbb-heading-font-size: 24px;
	--rbb-step-title-size: 16px;
	--rbb-button-font-size: 14px;
	--rbb-helper-font-size: 13px;
	--rbb-colour-label-font-size: 11px;
	--rbb-total-font-size: 18px;
	--rbb-accent: #f58220;
	--rbb-accent-hover: #d96d0c;
	--rbb-panel: #fff;
	--rbb-soft: #f6f8f9;
	--rbb-border: #d9dfe3;
	--rbb-ink: #182126;
	--rbb-muted: #66727a;
	--rbb-success: #2d7d4d;
	--rbb-error: #b42318;
	--rbb-radius: 10px;
	--rbb-button-radius: 7px;
	--rbb-shadow: 0 7px 22px rgba(19, 32, 39, .06);
	margin: 26px 0;
	color: var(--rbb-ink);
	font-family: var(--rbb-font-family);
	font-size: var(--rbb-base-font-size);
	line-height: 1.5;
}
.rbb-builder *, .rbb-builder *::before, .rbb-builder *::after { box-sizing: border-box; }
.rbb-builder [hidden] { display: none !important; }
.rbb-builder button, .rbb-builder input, .rbb-builder select { font: inherit; }
.rbb-builder input[type="number"], .rbb-builder select {
	min-height: 42px;
	border: 1px solid var(--rbb-border);
	border-radius: var(--rbb-button-radius);
	background: #fff;
	color: var(--rbb-ink);
}
.rbb-builder input:focus, .rbb-builder select:focus, .rbb-builder button:focus-visible, .rbb-builder a:focus-visible {
	outline: 2px solid color-mix(in srgb, var(--rbb-accent) 45%, transparent);
	outline-offset: 2px;
}
.rbb-builder__loading, .rbb-loading {
	display: flex;
	align-items: center;
	gap: 9px;
	padding: 16px;
	border: 1px solid var(--rbb-border);
	border-radius: var(--rbb-radius);
	background: var(--rbb-soft);
	color: var(--rbb-muted);
}
.rbb-bundle-intro { margin: 0 0 17px; }
.rbb-bundle-intro h2 {
	margin: 0 0 6px;
	color: var(--rbb-ink);
	font-size: var(--rbb-heading-font-size);
	line-height: 1.2;
}
.rbb-bundle-intro p { margin: 0; color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }

/* Decoration Builder-style main accordion. */
.rbb-accordion { display: grid; gap: 12px; }
.rbb-accordion-step {
	overflow: hidden;
	border: 1px solid var(--rbb-border);
	border-radius: var(--rbb-radius);
	background: var(--rbb-panel);
	box-shadow: var(--rbb-shadow);
}
.rbb-accordion-step.is-open { border-color: color-mix(in srgb, var(--rbb-accent) 55%, var(--rbb-border)); }
.rbb-accordion-step.is-complete:not(.is-open) { border-color: color-mix(in srgb, var(--rbb-success) 42%, var(--rbb-border)); }
.rbb-accordion-step.is-disabled { background: color-mix(in srgb, var(--rbb-soft) 75%, #fff); }
.rbb-step-toggle {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr) minmax(120px, auto) 18px;
	gap: 12px;
	align-items: center;
	width: 100%;
	min-height: 74px;
	margin: 0;
	padding: 12px 16px;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--rbb-ink);
	text-align: left;
	text-transform: none;
	cursor: pointer;
}
.rbb-step-toggle:hover:not(:disabled) { background: var(--rbb-soft); color: var(--rbb-ink); }
.rbb-step-toggle:disabled { opacity: .52; cursor: not-allowed; }
.rbb-step-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 999px;
	background: var(--rbb-accent);
	color: #fff;
	font-size: 14px;
	font-weight: 800;
	line-height: 1;
}
.rbb-accordion-step.is-complete .rbb-step-number { background: var(--rbb-success); }
.rbb-step-heading { display: grid; gap: 2px; min-width: 0; }
.rbb-step-heading strong { color: var(--rbb-ink); font-size: var(--rbb-step-title-size); line-height: 1.25; }
.rbb-step-heading small { color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); font-weight: 400; line-height: 1.35; }
.rbb-step-summary {
	max-width: 290px;
	overflow: hidden;
	color: var(--rbb-muted);
	font-size: calc(var(--rbb-helper-font-size) - 1px);
	font-weight: 600;
	line-height: 1.3;
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.rbb-step-chevron {
	display: inline-block;
	width: 9px;
	height: 9px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .18s ease;
}
.rbb-accordion-step.is-open > .rbb-step-toggle .rbb-step-chevron { transform: rotate(225deg) translate(-2px, -2px); }
.rbb-step-body { padding: 18px; border-top: 1px solid var(--rbb-border); }
.rbb-step-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-top: 18px;
	padding-top: 15px;
	border-top: 1px solid var(--rbb-border);
}
.rbb-back, .rbb-continue, .rbb-success-actions .button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	margin: 0 !important;
	padding: 9px 18px !important;
	border-radius: var(--rbb-button-radius) !important;
	font-size: var(--rbb-button-font-size) !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	text-transform: none !important;
	cursor: pointer;
}
.rbb-back {
	border: 1px solid var(--rbb-border);
	background: #fff;
	color: var(--rbb-ink);
}
.rbb-back:hover { border-color: var(--rbb-accent); background: var(--rbb-soft); color: var(--rbb-ink); }
.rbb-continue {
	min-width: 120px;
	border: 1px solid var(--rbb-accent);
	background: var(--rbb-accent);
	color: #fff;
}
.rbb-continue:hover:not(:disabled) { border-color: var(--rbb-accent-hover); background: var(--rbb-accent-hover); color: #fff; }
.rbb-continue:disabled { opacity: .45; cursor: not-allowed; }

/* Setup and purchase mode. */
.rbb-setup-grid { display: grid; gap: 18px; }
.rbb-bundle-quantity { display: grid; grid-template-columns: minmax(0, 1fr) 120px; align-items: center; gap: 14px; }
.rbb-bundle-quantity > span { font-weight: 700; }
.rbb-bundle-quantity input { width: 100% !important; margin: 0 !important; padding: 7px 10px !important; }
.rbb-mode h3 { margin: 0 0 10px; color: var(--rbb-ink); font-size: var(--rbb-step-title-size); }
.rbb-mode > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rbb-mode label, .rbb-mode-fixed {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 10px;
	align-items: start;
	margin: 0;
	padding: 14px;
	border: 1px solid var(--rbb-border);
	border-radius: var(--rbb-radius);
	background: #fff;
	cursor: pointer;
}
.rbb-mode label.is-selected { border-color: var(--rbb-accent); background: color-mix(in srgb, var(--rbb-accent) 6%, #fff); box-shadow: 0 0 0 1px var(--rbb-accent); }
.rbb-mode label input { margin-top: 4px; }
.rbb-mode label span, .rbb-mode-fixed { display: grid; gap: 3px; }
.rbb-mode label small, .rbb-mode-fixed small { color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }
.rbb-mode-fixed { grid-template-columns: 1fr; cursor: default; }

/* Products and alternatives. */
.rbb-alternatives { margin: 0 0 18px; padding: 0; border: 0; }
.rbb-alternatives legend { margin: 0 0 10px; color: var(--rbb-ink); font-weight: 800; }
.rbb-alternatives__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.rbb-alternatives__grid--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rbb-alternatives__grid > * { height: 100%; }
.rbb-product-choice { position: relative; display: block; min-width: 0; height: 100%; margin: 0; border: 1px solid var(--rbb-border); border-radius: var(--rbb-radius); background: #fff; cursor: pointer; }
.rbb-product-choice > input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.rbb-product-choice.is-selected { border-color: var(--rbb-accent); box-shadow: 0 0 0 1px var(--rbb-accent); }
.rbb-product-choice.is-disabled { opacity: .52; cursor: not-allowed; }
.rbb-fixed-product { margin: 0 0 18px; overflow: hidden; border: 1px solid var(--rbb-border); border-radius: var(--rbb-radius); background: #fff; }
.rbb-product-card { display: grid; grid-template-columns: 68px minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 88px; height: 100%; padding: 10px; }
.rbb-product-card img, .rbb-product-card__placeholder { display: block; width: 68px; height: 68px; object-fit: contain; border-radius: 7px; background: var(--rbb-soft); }
.rbb-product-card__body { display: grid; gap: 3px; min-width: 0; }
.rbb-product-card__body strong { overflow-wrap: anywhere; }
.rbb-product-card__body small { color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }
.rbb-product-card__body small.is-error { color: var(--rbb-error); }
.rbb-product-card__price { color: var(--rbb-ink); font-weight: 800; white-space: nowrap; }
.rbb-extra-attributes { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin: 0 0 16px; }
.rbb-extra-attributes label, .rbb-artwork-select, .rbb-method-field { display: grid; gap: 5px; margin: 0; font-weight: 700; }
.rbb-extra-attributes select, .rbb-artwork-select select, .rbb-method-field select { width: 100%; margin: 0; padding: 7px 10px; }
.rbb-simple-allocation { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px; border-radius: var(--rbb-radius); background: color-mix(in srgb, var(--rbb-success) 10%, #fff); color: color-mix(in srgb, var(--rbb-success) 85%, #000); }
.rbb-simple-allocation.is-error { background: color-mix(in srgb, var(--rbb-error) 9%, #fff); color: var(--rbb-error); }

/* Colour-first variation workflow. */
.rbb-workflow-heading { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.rbb-workflow-heading > span { display: grid; place-items: center; flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%; background: var(--rbb-ink); color: #fff; font-size: 12px; font-weight: 800; }
.rbb-workflow-heading h4 { margin: 1px 0 0; color: var(--rbb-ink); font-size: var(--rbb-step-title-size); line-height: 1.3; }
.rbb-workflow-heading p { margin: 3px 0 0; color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); line-height: 1.45; }
.rbb-colour-selector { padding: 16px; border: 1px solid var(--rbb-border); border-radius: var(--rbb-radius); background: var(--rbb-soft); }
.rbb-colour-swatches { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 9px; }
.rbb-colour-choice {
	display: grid;
	grid-template-rows: auto auto;
	justify-items: center;
	gap: 5px;
	width: 100%;
	min-width: 0;
	max-width: none;
	height: 100%;
	margin: 0;
	padding: 8px 7px;
	border: 1px solid var(--rbb-border);
	border-radius: 8px;
	background: #fff;
	box-shadow: none;
	color: var(--rbb-ink);
	font-size: var(--rbb-colour-label-font-size);
	font-weight: 700;
	line-height: 1.25;
	text-align: center;
	text-transform: none;
	cursor: pointer;
}
.rbb-colour-choice:hover:not(:disabled) { border-color: var(--rbb-accent); background: #fff; color: var(--rbb-ink); }
.rbb-colour-choice.is-selected { border-color: var(--rbb-accent); background: color-mix(in srgb, var(--rbb-accent) 7%, #fff); box-shadow: 0 0 0 1px var(--rbb-accent); }
.rbb-colour-choice:disabled { opacity: .42; cursor: not-allowed; }
.rbb-colour-choice > span:last-child { width: 100%; min-width: 0; font-size: var(--rbb-colour-label-font-size); line-height: 1.25; overflow-wrap: anywhere; }
.rbb-swatch { display: inline-grid; place-items: center; flex: 0 0 38px; width: 38px; height: 38px; overflow: hidden; border: 1px solid #cbd3d8; border-radius: 7px; background-color: #fff; background-size: cover; background-position: center; color: var(--rbb-ink); font-size: 10px; font-weight: 800; line-height: 1; }
.rbb-swatch img { display: block; width: 100%; height: 100%; object-fit: contain; }
.rbb-swatch--text { background: #eef1f3; }
.rbb-selected-colours { display: grid; gap: 7px; margin-top: 12px; padding: 10px; border: 1px solid var(--rbb-border); border-radius: 8px; background: #fff; }
.rbb-selected-colours > small { color: var(--rbb-muted); font-size: 11px; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.rbb-selected-colours__chips { display: flex; flex-wrap: wrap; gap: 7px; }
.rbb-selected-colour-chip { display: inline-flex; align-items: center; gap: 6px; max-width: 100%; min-height: 36px; padding: 4px 5px 4px 4px; border: 1px solid var(--rbb-border); border-radius: 999px !important; background: #fff; color: var(--rbb-ink); font-size: 12px; font-weight: 700; }
.rbb-selected-colour-chip .rbb-swatch { flex: 0 0 26px; width: 26px; height: 26px; border-radius: 50%; }
.rbb-selected-colour-chip > span:not(.rbb-swatch) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rbb-selected-colour-chip > button { position: relative; display: inline-block; flex: 0 0 24px; width: 24px !important; min-width: 24px !important; max-width: 24px; height: 24px !important; min-height: 24px !important; max-height: 24px; margin: 0; padding: 0; border: 0; border-radius: 999px !important; appearance: none; -webkit-appearance: none; background: color-mix(in srgb, var(--rbb-error) 9%, #fff); box-shadow: none; color: var(--rbb-error); font-size: 0; line-height: 0; text-transform: none; transform: none; cursor: pointer; }
.rbb-selected-colour-chip > button::before, .rbb-selected-colour-chip > button::after { content: ""; position: absolute; top: 50%; left: 50%; width: 10px; height: 2px; border-radius: 2px; background: currentColor; transform-origin: center; }
.rbb-selected-colour-chip > button::before { transform: translate(-50%, -50%) rotate(45deg); }
.rbb-selected-colour-chip > button::after { transform: translate(-50%, -50%) rotate(-45deg); }
.rbb-selected-colour-chip > button:hover { background: color-mix(in srgb, var(--rbb-error) 16%, #fff); color: var(--rbb-error); }
.rbb-size-section { margin-top: 16px; }
.rbb-size-section--single { margin-top: 0; }
.rbb-empty-state { margin: 0; padding: 16px; border: 1px dashed var(--rbb-border); border-radius: 8px; background: var(--rbb-soft); color: var(--rbb-muted); text-align: center; }
.rbb-colour-accordions { display: grid; gap: 10px; }
.rbb-colour-accordion { overflow: hidden; border: 1px solid var(--rbb-border); border-radius: var(--rbb-radius); background: #fff; }
.rbb-colour-accordion.is-open { border-color: color-mix(in srgb, var(--rbb-accent) 55%, var(--rbb-border)); }
.rbb-colour-accordion__header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; }
.rbb-colour-accordion__toggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 64px; margin: 0; padding: 10px 13px; border: 0; border-radius: 0; background: #fff; box-shadow: none; color: var(--rbb-ink); text-align: left; text-transform: none; cursor: pointer; }
.rbb-colour-accordion__toggle:hover { background: var(--rbb-soft); color: var(--rbb-ink); }
.rbb-colour-accordion__identity { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rbb-colour-accordion__identity .rbb-swatch { flex-basis: 38px; }
.rbb-colour-accordion__identity > span:last-child { display: grid; gap: 2px; min-width: 0; }
.rbb-colour-accordion__identity strong { overflow-wrap: anywhere; }
.rbb-colour-accordion__identity small { color: var(--rbb-muted); }
.rbb-colour-accordion__chevron { width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.rbb-colour-accordion.is-open .rbb-colour-accordion__chevron { transform: rotate(225deg); }
.rbb-colour-remove { margin: 0; padding: 0 13px; border: 0; border-left: 1px solid var(--rbb-border); border-radius: 0; background: #fff; box-shadow: none; color: var(--rbb-error); font-size: 11px; font-weight: 700; text-transform: uppercase; cursor: pointer; }
.rbb-colour-remove:hover { background: color-mix(in srgb, var(--rbb-error) 6%, #fff); color: var(--rbb-error); }
.rbb-colour-accordion__body { padding: 12px; border-top: 1px solid var(--rbb-border); }
.rbb-size-list { display: grid; gap: 0; overflow: hidden; border: 1px solid var(--rbb-border); border-radius: 8px; background: #fff; }
.rbb-size-list__head, .rbb-size-row { display: grid; grid-template-columns: minmax(70px, 1fr) auto; gap: 10px; align-items: center; padding: 9px 12px; }
.rbb-size-list__head { background: var(--rbb-soft); color: var(--rbb-muted); font-size: 11px; font-weight: 800; letter-spacing: .03em; text-transform: uppercase; }
.rbb-size-row { min-height: 54px; border-top: 1px solid var(--rbb-border); }
.rbb-size-row:first-of-type { border-top: 0; }
.rbb-size-row.has-quantity { background: color-mix(in srgb, var(--rbb-accent) 5%, #fff); }
.rbb-size-row__price { color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }
.rbb-quantity-control { display: inline-grid; grid-template-columns: 38px 62px 38px; justify-content: end; align-items: center; }
.rbb-quantity-control > button { display: grid; place-items: center; width: 38px; height: 40px; margin: 0; padding: 0; border: 1px solid var(--rbb-border); border-radius: 0; background: #fff; box-shadow: none; color: var(--rbb-ink); font-size: 18px; font-weight: 700; text-transform: none; cursor: pointer; }
.rbb-quantity-control > button:first-child { border-radius: var(--rbb-button-radius) 0 0 var(--rbb-button-radius); }
.rbb-quantity-control > button:last-child { border-radius: 0 var(--rbb-button-radius) var(--rbb-button-radius) 0; }
.rbb-quantity-control > button:hover:not(:disabled) { border-color: var(--rbb-accent); background: var(--rbb-soft); color: var(--rbb-ink); }
.rbb-quantity-control > button:disabled { opacity: .4; cursor: not-allowed; }
.rbb-qty { width: 62px !important; min-width: 62px; height: 40px; margin: 0 -1px !important; padding: 5px !important; border-radius: 0 !important; text-align: center; }
.rbb-slot-progress { display: flex; justify-content: space-between; gap: 12px; margin-top: 12px; padding: 10px 12px; border-radius: 8px; background: color-mix(in srgb, var(--rbb-accent) 8%, #fff); color: color-mix(in srgb, var(--rbb-accent) 75%, #000); }
.rbb-slot-progress.is-complete { background: color-mix(in srgb, var(--rbb-success) 10%, #fff); color: var(--rbb-success); }
.rbb-inline-notice { margin-top: 10px; padding: 10px 12px; border-radius: 8px; font-size: var(--rbb-helper-font-size); }
.rbb-inline-notice.is-warning { border: 1px solid #f0c36d; background: #fff8e6; color: #7a5100; }
.rbb-unavailable { color: #a7b0b5; }

/* Large visual location cards, matching Decoration Builder. */
.rbb-location-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; }
.rbb-location-card { min-width: 0; overflow: hidden; border: 1px solid var(--rbb-border); border-radius: var(--rbb-radius); background: #fff; box-shadow: var(--rbb-shadow); }
.rbb-location-card.is-selected { border-color: var(--rbb-accent); box-shadow: 0 0 0 2px color-mix(in srgb, var(--rbb-accent) 10%, transparent); }
.rbb-location-card.is-disabled { opacity: .52; }
.rbb-location-card__select { display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "image image" "check content"; gap: 10px; align-items: start; min-width: 0; margin: 0; padding: 0 0 13px; cursor: pointer; }
.rbb-location-card__select > input { grid-area: check; margin: 4px 0 0 13px; }
.rbb-location-card__image { grid-area: image; display: block; width: 100%; height: 180px; overflow: hidden; border-bottom: 1px solid var(--rbb-border); background: var(--rbb-soft); }
.rbb-location-card__image img, .rbb-location-placeholder { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; object-fit: contain; }
.rbb-location-placeholder { color: var(--rbb-muted); font-size: 16px; font-weight: 800; }
.rbb-location-card__content { grid-area: content; display: grid; gap: 3px; min-width: 0; padding-right: 13px; }
.rbb-location-card__content strong { color: var(--rbb-ink); font-size: var(--rbb-step-title-size); line-height: 1.25; overflow-wrap: anywhere; }
.rbb-location-card__content small { color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); font-weight: 400; line-height: 1.35; overflow-wrap: anywhere; }
.rbb-location-card__method { display: grid; gap: 8px; padding: 13px; border-top: 1px solid var(--rbb-border); background: color-mix(in srgb, var(--rbb-accent) 6%, #fff); }
.rbb-location-card__method p { margin: 0; color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }
.rbb-method-pill { display: grid; gap: 2px; }
.rbb-method-pill span { color: var(--rbb-muted); font-size: calc(var(--rbb-helper-font-size) - 1px); }
.rbb-method-pill strong { font-size: calc(var(--rbb-base-font-size) + 1px); }

/* Artwork and review. */
.rbb-artwork { display: grid; gap: 14px; }
.rbb-artwork__heading h4 { margin: 0 0 4px; color: var(--rbb-ink); font-size: var(--rbb-step-title-size); }
.rbb-artwork__heading p { margin: 0; color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }
.rbb-artwork-select { max-width: 640px; }
.rbb-artwork-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.rbb-artwork-actions .button, .rbb-upload-button { min-height: 42px; margin: 0 !important; padding: 10px 16px !important; border-radius: var(--rbb-button-radius) !important; font-size: var(--rbb-button-font-size) !important; font-weight: 700 !important; line-height: 1.2 !important; text-transform: none !important; }
.rbb-upload-button { position: relative; overflow: hidden; cursor: pointer; }
.rbb-upload-button input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.rbb-upload-button.is-busy { opacity: .6; cursor: wait; }
.rbb-artwork-current { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 12px; border-radius: 8px; background: color-mix(in srgb, var(--rbb-success) 10%, #fff); }
.rbb-artwork-current span { color: var(--rbb-muted); text-transform: capitalize; }
.rbb-artwork-current .button-link { color: var(--rbb-accent-hover); font-weight: 700; }
.rbb-profile-step { display: grid; gap: 16px; }
.rbb-profile-instructions { margin: 0; color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); white-space: pre-line; }
.rbb-profile-fields { display: grid; gap: 15px; }
.rbb-profile-field { display: grid; gap: 7px; min-width: 0; margin: 0; padding: 0; border: 0; }
.rbb-profile-field__label { color: var(--rbb-ink); font-weight: 800; }
.rbb-profile-field input[type="text"], .rbb-profile-field textarea {
	width: 100%;
	margin: 0;
	padding: 9px 11px;
	border: 1px solid var(--rbb-border);
	border-radius: var(--rbb-button-radius);
	background: #fff;
	color: var(--rbb-ink);
	font: inherit;
}
.rbb-profile-field textarea { min-height: 105px; resize: vertical; }
.rbb-profile-field input[type="text"]:focus, .rbb-profile-field textarea:focus { outline: 2px solid color-mix(in srgb, var(--rbb-accent) 45%, transparent); outline-offset: 2px; }
.rbb-profile-field__help { margin: -2px 0 1px; color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }
.rbb-profile-choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 9px; }
.rbb-profile-choice { display: flex; align-items: flex-start; gap: 9px; min-width: 0; margin: 0; padding: 11px 12px; border: 1px solid var(--rbb-border); border-radius: var(--rbb-button-radius); background: #fff; cursor: pointer; }
.rbb-profile-choice.is-selected { border-color: var(--rbb-accent); background: color-mix(in srgb, var(--rbb-accent) 6%, #fff); box-shadow: 0 0 0 1px var(--rbb-accent); }
.rbb-profile-choice > input { flex: 0 0 auto; margin-top: 4px; }
.rbb-profile-choice__body { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.rbb-profile-choice__color { display: inline-block; flex: 0 0 25px; width: 25px; height: 25px; border: 1px solid var(--rbb-border); border-radius: 50%; }
.rbb-profile-price { margin-left: 5px; color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); font-weight: 600; }
.rbb-profile-upload { display: grid; gap: 10px; padding-top: 15px; border-top: 1px solid var(--rbb-border); }
.rbb-profile-upload__limits { color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }
.rbb-mockup { display: flex; align-items: flex-start; gap: 10px; margin: 16px 0 0; padding: 13px; border: 1px solid var(--rbb-border); border-radius: var(--rbb-radius); background: #fff; }
.rbb-mockup input { margin-top: 4px; }
.rbb-mockup span { display: grid; gap: 3px; }
.rbb-mockup small { color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }
.rbb-review { max-width: 760px; margin: 0 auto; padding: 20px; border: 1px solid var(--rbb-border); border-radius: var(--rbb-radius); background: #fff; box-shadow: var(--rbb-shadow); }
.rbb-review__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.rbb-review__heading h3 { margin: 0; color: var(--rbb-ink); font-size: var(--rbb-heading-font-size); line-height: 1.2; }
.rbb-review__heading > span { color: var(--rbb-muted); font-weight: 700; white-space: nowrap; }
.rbb-review__components { display: grid; gap: 9px; padding: 14px 0; border-top: 1px solid var(--rbb-border); border-bottom: 1px solid var(--rbb-border); }
.rbb-review-component { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.rbb-review-component > span { display: grid; gap: 2px; min-width: 0; }
.rbb-review-component small { color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }
.rbb-review-component b { white-space: nowrap; }
.rbb-review__totals { display: grid; gap: 9px; padding: 16px 0; }
.rbb-review__totals > div { display: flex; justify-content: space-between; gap: 12px; }
.rbb-review__totals .is-total { margin-top: 4px; padding-top: 12px; border-top: 1px solid var(--rbb-border); font-size: var(--rbb-total-font-size); }
.rbb-review__updating { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); }
.rbb-purchase-actions {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 12px;
	width: 100%;
	margin: 8px 0 0;
}
.rbb-purchase-actions .rbb-add,
.rbb-purchase-actions .rbb-buy-now {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-width: 0 !important;
	min-height: 52px !important;
	margin: 0 !important;
	padding: 10px 18px !important;
	border-radius: var(--rbb-button-radius) !important;
	font-family: var(--rbb-font-family) !important;
	font-size: var(--rbb-button-font-size) !important;
	font-weight: 800 !important;
	line-height: 1.2 !important;
	text-align: center !important;
	text-transform: uppercase !important;
	transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.rbb-purchase-actions .rbb-add {
	border: 1px solid var(--rbb-accent) !important;
	background: transparent !important;
	color: var(--rbb-accent) !important;
	box-shadow: none !important;
}
.rbb-purchase-actions .rbb-add:hover:not(:disabled) {
	border-color: var(--rbb-accent-hover) !important;
	background: color-mix(in srgb, var(--rbb-accent) 8%, transparent) !important;
	color: var(--rbb-accent-hover) !important;
}
.rbb-purchase-actions .rbb-buy-now {
	border: 1px solid var(--rbb-accent) !important;
	background: var(--rbb-accent) !important;
	color: #fff !important;
	box-shadow: 0 8px 18px color-mix(in srgb, var(--rbb-accent) 22%, transparent) !important;
}
.rbb-purchase-actions .rbb-buy-now:hover:not(:disabled) {
	border-color: var(--rbb-accent-hover) !important;
	background: var(--rbb-accent-hover) !important;
	transform: translateY(-1px);
}
.rbb-purchase-actions .rbb-add:disabled,
.rbb-purchase-actions .rbb-buy-now:disabled { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none !important; }
.rbb-review__help { display: block; margin-top: 10px; color: var(--rbb-muted); font-size: var(--rbb-helper-font-size); line-height: 1.45; text-align: center; }
.rbb-builder[data-rbb-added="1"] .rbb-added-success {
	display: grid !important;
	visibility: visible !important;
	opacity: 1 !important;
}
.rbb-added-success {
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	gap: 14px;
	align-items: start;
	padding: 17px;
	border: 1px solid color-mix(in srgb, var(--rbb-success) 30%, var(--rbb-border));
	border-radius: var(--rbb-radius);
	background: color-mix(in srgb, var(--rbb-success) 9%, #fff);
}
.rbb-added-success__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--rbb-success);
	color: #fff;
	font-size: 23px;
	font-weight: 800;
	line-height: 1;
}
.rbb-added-success__content { min-width: 0; }
.rbb-added-success__content > strong { display: block; padding-top: 8px; color: var(--rbb-success); font-size: var(--rbb-step-title-size); line-height: 1.35; }
.rbb-added-success__actions { margin-top: 15px; }
.rbb-added-success__actions .rbb-back { min-width: 145px; }
.rbb-added-success__actions .rbb-continue { min-width: 190px; text-align: center; }
.rbb-shop-more, .rbb-view-cart { text-transform: uppercase !important; }
.rbb-add-feedback { margin: 12px 0 !important; }
.rbb-builder .woocommerce-error, .rbb-builder .woocommerce-message { padding: 12px 14px; border-radius: 7px; list-style: none; }
.rbb-builder .woocommerce-error { border-left-color: var(--rbb-error); }
.rbb-builder .woocommerce-message { border-top-color: var(--rbb-success); }
.rbb-spinner { display: inline-block; flex: 0 0 auto; width: 18px; height: 18px; border: 2px solid #d8dde0; border-top-color: var(--rbb-accent); border-radius: 50%; animation: rbb-spin .7s linear infinite; }
@keyframes rbb-spin { to { transform: rotate(360deg); } }

/* Cart grouping. */
.rbb-cart-bundle-heading { display: block; margin-bottom: 4px; }
.rbb-cart-component { display: block; color: #66727a; }
.rbb-cart-item--member td { border-top: 0 !important; }
.rbb-locked-quantity { font-weight: 700; }

@media (max-width: 760px) {
	.rbb-step-toggle { grid-template-columns: 36px minmax(0, 1fr) 16px; gap: 10px; padding: 11px 13px; }
	.rbb-step-summary { grid-column: 2; grid-row: 2; max-width: none; text-align: left; }
	.rbb-step-chevron { grid-column: 3; grid-row: 1 / span 2; }
	.rbb-step-body { padding: 14px; }
	.rbb-bundle-quantity { grid-template-columns: minmax(0, 1fr) 92px; gap: 10px; }
	.rbb-mode > div { grid-template-columns: 1fr; }
	.rbb-product-card { grid-template-columns: 58px minmax(0, 1fr); }
	.rbb-product-card img, .rbb-product-card__placeholder { width: 58px; height: 58px; }
	.rbb-product-card__price { grid-column: 2; }
	.rbb-location-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.rbb-size-list__head { display: none; }
	.rbb-size-row { grid-template-columns: minmax(70px, 1fr) auto; }
	.rbb-size-row__price { display: none; }
	.rbb-artwork-current { grid-template-columns: 1fr auto; }
	.rbb-artwork-current span { grid-column: 1; }
	.rbb-review__heading { display: grid; }
	.rbb-added-success__actions { align-items: stretch; }
}
@media (max-width: 520px) {
	.rbb-builder { margin: 18px 0; }
	.rbb-step-body { padding: 12px; }
	.rbb-step-heading small { display: none; }
	.rbb-step-summary { font-size: 11px; white-space: normal; }
	.rbb-location-grid { grid-template-columns: 1fr; }
	.rbb-location-card__image { height: 205px; }
	.rbb-product-choice .rbb-product-card { grid-template-columns: 52px minmax(0, 1fr); }
	.rbb-product-card img, .rbb-product-card__placeholder { width: 52px; height: 52px; }
	.rbb-alternatives__grid--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.rbb-alternatives__grid--count-2 .rbb-product-card { grid-template-columns: 42px minmax(0, 1fr); gap: 7px; min-height: 100%; padding: 8px; }
	.rbb-alternatives__grid--count-2 .rbb-product-card img, .rbb-alternatives__grid--count-2 .rbb-product-card__placeholder { width: 42px; height: 42px; }
	.rbb-alternatives__grid--count-2 .rbb-product-card__body strong { font-size: calc(var(--rbb-base-font-size) - 1px); line-height: 1.25; }
	.rbb-alternatives__grid--count-2 .rbb-product-card__body small { font-size: calc(var(--rbb-helper-font-size) - 1px); }
	.rbb-colour-swatches { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
	.rbb-colour-choice { min-width: 0; padding: 7px 4px; }
	.rbb-colour-accordion__header { grid-template-columns: 1fr; }
	.rbb-colour-remove { min-height: 34px; border-top: 1px solid var(--rbb-border); border-left: 0; }
	.rbb-size-row { grid-template-columns: minmax(54px, 1fr) auto; gap: 8px; padding: 8px 9px; }
	.rbb-quantity-control { grid-template-columns: 32px 48px 32px; justify-content: end; }
	.rbb-quantity-control > button { width: 32px; height: 36px; }
	.rbb-qty { width: 48px !important; min-width: 48px; height: 36px; }
	.rbb-slot-progress { display: grid; }
	.rbb-review { padding: 14px; }
	.rbb-purchase-actions { grid-template-columns: 1fr; }
	.rbb-added-success { grid-template-columns: 36px minmax(0, 1fr); padding: 14px; }
	.rbb-added-success__icon { width: 36px; height: 36px; font-size: 20px; }
	.rbb-added-success__content > strong { padding-top: 5px; }
	.rbb-added-success__actions { display: grid; grid-template-columns: 1fr; }
	.rbb-added-success__actions .rbb-back, .rbb-added-success__actions .rbb-continue { width: 100%; min-width: 0; }
}
