/* Rao Decoration Builder public styles. All builder rules are deliberately scoped. */
.rdb-builder,
.rdb-builder * {
	box-sizing: border-box;
}

.rdb-builder,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.woocommerce-order-received {
	--rdb-border: #d7dce3;
	--rdb-border-strong: #aeb7c3;
	--rdb-muted: #667085;
	--rdb-soft: #f8fafc;
	--rdb-soft-strong: #eef2f6;
	--rdb-text: #182230;
	--rdb-accent: #1d4ed8;
	--rdb-accent-dark: #173ea7;
	--rdb-accent-soft: #eff6ff;
	--rdb-success: #067647;
	--rdb-success-soft: #ecfdf3;
	--rdb-error: #b42318;
	--rdb-error-soft: #fef3f2;
	--rdb-warning: #9a6700;
	--rdb-warning-soft: #fffaeb;
	--rdb-shadow: 0 1px 2px rgba(16, 24, 40, .06);
	--rdb-radius: 12px;
}

.rdb-builder {
	width: 100%;
	max-width: 940px;
	margin: 1rem 0 1.75rem;
	color: var(--rdb-text);
	font: inherit;
	line-height: 1.45;
}

.rdb-builder button,
.rdb-builder input,
.rdb-builder select,
.rdb-builder textarea {
	font: inherit;
}

.rdb-builder button {
	line-height: 1.2;
}

.rdb-builder h2,
.rdb-builder h3,
.rdb-builder h4,
.rdb-builder p,
.rdb-builder figure {
	margin-top: 0;
}

.rdb-builder__header {
	margin-bottom: .9rem;
}

.rdb-builder__header h2 {
	margin: 0 0 .25rem;
	font-size: clamp(1.35rem, 2.3vw, 1.8rem);
	line-height: 1.2;
}

.rdb-builder__header p {
	margin: 0;
	color: var(--rdb-muted);
}

.rdb-builder__loading,
.rdb-loading-line,
.rdb-price-placeholder,
.rdb-empty-state {
	margin: 0;
	padding: .95rem 1rem;
	border: 1px solid var(--rdb-border);
	border-radius: 9px;
	background: var(--rdb-soft);
	color: var(--rdb-muted);
}

/* Keep the native WooCommerce form available until the schema has loaded successfully. */
body.rdb-builder-active.rdb-js-ready form.variations_form.cart {
	display: none;
}

.rdb-builder select,
.rdb-builder input[type="number"],
.rdb-builder input[type="text"] {
	width: 100%;
	min-height: 42px;
	margin: 0;
	padding: .55rem .7rem;
	border: 1px solid var(--rdb-border-strong);
	border-radius: 7px;
	background: #fff;
	color: var(--rdb-text);
	box-shadow: none;
}

.rdb-builder select:focus,
.rdb-builder input:focus,
.rdb-builder button:focus-visible {
	outline: 2px solid var(--rdb-accent);
	outline-offset: 2px;
}

.rdb-field {
	display: grid;
	gap: .35rem;
	min-width: 0;
	font-weight: 600;
}

.rdb-field > span {
	font-size: .88rem;
}

/* Main step accordion. */
.rdb-accordion {
	display: grid;
	gap: .75rem;
}

.rdb-accordion-step {
	overflow: hidden;
	border: 1px solid var(--rdb-border);
	border-radius: var(--rdb-radius);
	background: #fff;
	box-shadow: var(--rdb-shadow);
}

.rdb-accordion-step.is-open {
	border-color: #94a3b8;
}

.rdb-accordion-step.is-complete:not(.is-open) {
	border-color: #b7dfc8;
}

.rdb-accordion-step.is-disabled {
	background: #fbfcfd;
}

.rdb-step-toggle {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr) minmax(120px, auto) 18px;
	gap: .75rem;
	align-items: center;
	width: 100%;
	min-height: 72px;
	margin: 0;
	padding: .75rem 1rem;
	border: 0;
	background: transparent;
	color: var(--rdb-text);
	text-align: left;
	cursor: pointer;
}

.rdb-step-toggle:hover:not(:disabled) {
	background: var(--rdb-soft);
}

.rdb-step-toggle:disabled {
	cursor: not-allowed;
	opacity: .55;
}

.rdb-step-number {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 999px;
	background: var(--rdb-accent);
	color: #fff;
	font-size: .9rem;
	font-weight: 700;
	line-height: 1;
}

.rdb-accordion-step.is-complete .rdb-step-number {
	background: var(--rdb-success);
}

.rdb-step-heading {
	display: grid;
	gap: .12rem;
	min-width: 0;
}

.rdb-step-heading strong {
	font-size: 1.02rem;
	line-height: 1.25;
}

.rdb-step-heading small {
	color: var(--rdb-muted);
	font-size: .84rem;
	font-weight: 400;
	line-height: 1.35;
}

.rdb-step-summary {
	max-width: 280px;
	overflow: hidden;
	color: var(--rdb-muted);
	font-size: .82rem;
	font-weight: 500;
	line-height: 1.3;
	text-align: right;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rdb-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;
}

.rdb-accordion-step.is-open > .rdb-step-toggle .rdb-step-chevron {
	transform: rotate(225deg) translate(-2px, -2px);
}

.rdb-step-body {
	padding: 1rem;
	border-top: 1px solid var(--rdb-border);
}

.rdb-step-body[hidden] {
	display: none;
}

.rdb-step-footer {
	display: flex;
	justify-content: flex-end;
	margin-top: 1rem;
	padding-top: .9rem;
	border-top: 1px solid var(--rdb-border);
}

.rdb-continue {
	min-width: 120px;
	min-height: 42px;
	margin: 0;
	padding: .6rem 1rem;
	border: 1px solid var(--rdb-accent);
	border-radius: 7px;
	background: var(--rdb-accent);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

.rdb-continue:hover:not(:disabled) {
	border-color: var(--rdb-accent-dark);
	background: var(--rdb-accent-dark);
}

.rdb-continue:disabled {
	cursor: not-allowed;
	opacity: .45;
}

.rdb-extra-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: .85rem;
}

/* Compact customer-facing bulk pricing ladder. */
.rdb-tier-panel {
	margin-bottom: 1rem;
	overflow: hidden;
	border: 1px solid #b9c9e8;
	border-left: 4px solid var(--rdb-accent);
	border-radius: 10px;
	background: #fff;
	box-shadow: var(--rdb-shadow);
}

.rdb-tier-panel__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .85rem;
	padding: .8rem .9rem;
	border-bottom: 1px solid var(--rdb-border);
	background: linear-gradient(90deg, var(--rdb-accent-soft), #fff);
}

.rdb-tier-panel__header > div {
	display: grid;
	gap: .08rem;
}

.rdb-tier-kicker {
	color: var(--rdb-accent-dark);
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.rdb-tier-panel__header strong {
	font-size: .98rem;
	line-height: 1.25;
}

.rdb-tier-panel__header small {
	max-width: 270px;
	color: var(--rdb-muted);
	font-size: .78rem;
	text-align: right;
}

.rdb-tier-table-wrap {
	overflow-x: auto;
}

.rdb-tier-table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: transparent;
	font-size: .86rem;
}

.rdb-tier-table th,
.rdb-tier-table td {
	padding: .58rem .8rem;
	border: 0;
	border-bottom: 1px solid var(--rdb-border);
	text-align: left;
}

.rdb-tier-table th {
	color: var(--rdb-muted);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .035em;
	text-transform: uppercase;
}

.rdb-tier-table tbody tr:last-child td {
	border-bottom: 0;
}

.rdb-tier-table tr.is-current {
	background: var(--rdb-accent-soft);
	box-shadow: inset 3px 0 0 var(--rdb-accent);
}

.rdb-current-tier {
	display: inline-flex;
	margin-left: .35rem;
	padding: .15rem .42rem;
	border-radius: 999px;
	background: var(--rdb-accent);
	color: #fff;
	font-size: .68rem;
	font-weight: 800;
	line-height: 1.25;
}

.rdb-tier-message {
	margin: 0;
	padding: .62rem .85rem;
	border-top: 1px solid var(--rdb-border);
	background: var(--rdb-soft);
	color: var(--rdb-muted);
	font-size: .82rem;
}

/* Colour swatches and selected-colour presentation foundation. */
.rdb-swatches {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
}

.rdb-swatch {
	display: inline-flex;
	align-items: center;
	gap: .45rem;
	min-height: 44px;
	margin: 0;
	padding: .35rem .65rem .35rem .4rem;
	border: 1px solid var(--rdb-border);
	border-radius: 8px;
	background: #fff;
	color: var(--rdb-text);
	cursor: pointer;
	box-shadow: none;
}

.rdb-swatch:hover:not(:disabled) {
	border-color: var(--rdb-accent);
}

.rdb-swatch.is-selected {
	border-color: var(--rdb-accent);
	background: var(--rdb-accent-soft);
	box-shadow: 0 0 0 2px rgba(29, 78, 216, .1);
}

.rdb-swatch.is-name-hidden {
	padding: .35rem;
}

.rdb-swatch__label {
	line-height: 1.2;
}

.rdb-swatch:disabled {
	cursor: not-allowed;
	opacity: .4;
}

.rdb-swatch__visual {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	overflow: hidden;
	border: 1px solid rgba(0, 0, 0, .14);
	border-radius: 6px;
	background: #fff;
	flex: 0 0 30px;
}

.rdb-swatch__visual img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rdb-swatch__visual--text {
	background: var(--rdb-soft-strong);
	font-size: .69rem;
	font-weight: 700;
}

.rdb-selected-colours {
	display: flex;
	flex-wrap: wrap;
	gap: .45rem;
	margin-top: .85rem;
	padding-bottom: .55rem;
	border-bottom: 1px solid var(--rdb-border);
}

.rdb-color-tab {
	display: inline-flex;
	align-items: center;
	gap: .42rem;
	min-height: 42px;
	margin: 0;
	padding: .32rem .42rem;
	border: 1px solid var(--rdb-border);
	border-radius: 8px 8px 3px 3px;
	background: var(--rdb-soft);
	color: var(--rdb-text);
	cursor: pointer;
}

.rdb-color-tab:hover,
.rdb-color-tab.is-active {
	border-color: var(--rdb-accent);
	background: #fff;
}

.rdb-color-tab.is-active {
	box-shadow: 0 2px 0 var(--rdb-accent);
}

.rdb-color-tab.is-name-hidden {
	padding-inline: .35rem;
}

.rdb-color-tab .rdb-swatch__visual {
	width: 28px;
	height: 28px;
	flex-basis: 28px;
}

.rdb-color-tab__name {
	max-width: 130px;
	overflow: hidden;
	font-size: .85rem;
	font-weight: 700;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rdb-color-tab__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 .35rem;
	border-radius: 999px;
	background: var(--rdb-soft-strong);
	color: var(--rdb-muted);
	font-size: .72rem;
	font-weight: 800;
}

.rdb-color-tab.is-active .rdb-color-tab__count {
	background: var(--rdb-accent);
	color: #fff;
}

.rdb-color-panel {
	overflow: hidden;
	margin-top: .65rem;
	border: 1px solid var(--rdb-border-strong);
	border-radius: 9px;
	background: #fff;
}

.rdb-color-panel__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding: .68rem .8rem;
	border-bottom: 1px solid var(--rdb-border);
	background: var(--rdb-soft);
}

.rdb-color-panel__identity {
	display: flex;
	align-items: center;
	gap: .55rem;
	min-width: 0;
}

.rdb-color-panel__identity .rdb-swatch__visual {
	width: 36px;
	height: 36px;
	flex-basis: 36px;
}

.rdb-color-panel__identity > span:last-child {
	display: grid;
	gap: .04rem;
}

.rdb-color-panel__identity small {
	color: var(--rdb-muted);
	font-size: .76rem;
}

.rdb-color-remove {
	margin: 0;
	padding: .48rem .68rem;
	border: 1px solid #f1b4af;
	border-radius: 6px;
	background: #fff;
	color: var(--rdb-error);
	font-size: .76rem;
	font-weight: 700;
	cursor: pointer;
}

.rdb-color-remove:hover {
	background: var(--rdb-error-soft);
}

.rdb-size-table {
	width: 100%;
}

.rdb-size-table__head,
.rdb-size-table__row {
	display: grid;
	grid-template-columns: minmax(62px, .7fr) minmax(96px, .9fr) minmax(142px, auto);
	align-items: center;
	gap: .65rem;
	padding: .65rem .85rem;
}

.rdb-size-table__head {
	color: var(--rdb-muted);
	font-size: .71rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.rdb-size-table__row {
	border-top: 1px solid var(--rdb-border);
}

.rdb-size-table__row.has-quantity {
	background: #f8fbff;
}

.rdb-size-table__row:first-of-type {
	border-top: 0;
}

.rdb-variation-price {
	min-width: 0;
	font-size: .88rem;
}

.rdb-tiered-price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: .25rem .42rem;
}

.rdb-tiered-price del {
	color: var(--rdb-muted);
	font-size: .82rem;
}

.rdb-tiered-price ins {
	color: var(--rdb-success);
	font-weight: 800;
	text-decoration: none;
}

.rdb-tiered-price small {
	width: 100%;
	color: var(--rdb-success);
	font-size: .68rem;
	font-weight: 700;
}

.rdb-variation-price .price,
.rdb-variation-price ins,
.rdb-variation-price del {
	font-size: inherit;
}

.rdb-qty {
	display: grid;
	grid-template-columns: 38px minmax(54px, 74px) 38px;
	justify-content: end;
}

.rdb-qty button,
.rdb-qty input {
	min-height: 38px;
	margin: 0;
	border: 1px solid var(--rdb-border-strong);
	border-radius: 0;
	text-align: center;
}

.rdb-qty button {
	padding: 0;
	background: var(--rdb-soft);
	color: var(--rdb-text);
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
}

.rdb-qty button:hover {
	background: var(--rdb-soft-strong);
}

.rdb-qty button:first-child {
	border-radius: 6px 0 0 6px;
}

.rdb-qty button:last-child {
	border-radius: 0 6px 6px 0;
}

.rdb-qty input {
	border-inline-width: 0;
	-moz-appearance: textfield;
}

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

.rdb-count-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: .8rem;
	padding: .72rem .85rem;
	border-radius: 8px;
	background: var(--rdb-soft-strong);
}

.rdb-count-bar span {
	font-size: 1.15rem;
	font-weight: 700;
}

/* Personalised / blank choice. */
.rdb-choice-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: .75rem;
}

.rdb-choice {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: .55rem;
	align-items: start;
	min-width: 0;
	padding: .9rem;
	border: 1px solid var(--rdb-border);
	border-radius: 9px;
	background: #fff;
	cursor: pointer;
}

.rdb-choice:hover {
	border-color: var(--rdb-accent);
}

.rdb-choice.is-selected {
	border-color: var(--rdb-accent);
	background: var(--rdb-accent-soft);
	box-shadow: 0 0 0 2px rgba(29, 78, 216, .08);
}

.rdb-choice input {
	margin-top: .25rem;
}

.rdb-choice > span {
	display: grid;
	gap: .16rem;
	min-width: 0;
}

.rdb-choice strong {
	font-size: .96rem;
}

.rdb-choice small {
	color: var(--rdb-muted);
	font-size: .82rem;
	line-height: 1.35;
}

.rdb-blank-confirm {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: .65rem;
	align-items: start;
	margin-top: .85rem;
	padding: .85rem;
	border: 1px solid #f5c452;
	border-radius: 9px;
	background: var(--rdb-warning-soft);
	cursor: pointer;
}

.rdb-blank-confirm.is-confirmed {
	border-color: #75c999;
	background: var(--rdb-success-soft);
}

.rdb-blank-confirm input {
	margin-top: .25rem;
}

.rdb-blank-confirm > span {
	display: grid;
	gap: .12rem;
}

.rdb-blank-confirm small {
	color: var(--rdb-muted);
	font-size: .82rem;
}

/* Optional profile front/back reference mockups. */
.rdb-profile-visuals {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
	gap: .8rem;
	margin-bottom: 1rem;
}

.rdb-profile-visuals figure {
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--rdb-border);
	border-radius: 9px;
	background: var(--rdb-soft);
}

.rdb-profile-visuals img {
	display: block;
	width: 100%;
	height: 230px;
	object-fit: contain;
	background: #fff;
}

.rdb-profile-visuals figcaption {
	padding: .5rem .7rem;
	border-top: 1px solid var(--rdb-border);
	color: var(--rdb-muted);
	font-size: .77rem;
	font-weight: 600;
	text-align: center;
}

/* Location cards: image first, content second. */
.rdb-location-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: .85rem;
}

.rdb-location-card {
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--rdb-border);
	border-radius: 10px;
	background: #fff;
	box-shadow: var(--rdb-shadow);
}

.rdb-location-card.is-selected {
	border-color: var(--rdb-accent);
	box-shadow: 0 0 0 2px rgba(29, 78, 216, .09);
}

.rdb-location-card__select {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-areas:
		"image image"
		"check content";
	gap: .65rem;
	align-items: start;
	min-width: 0;
	margin: 0;
	padding: 0 0 .8rem;
	cursor: pointer;
}

.rdb-location-card__select > input {
	grid-area: check;
	margin: .28rem 0 0 .8rem;
}

.rdb-location-card__image {
	grid-area: image;
	display: block;
	width: 100%;
	height: 180px;
	overflow: hidden;
	border-bottom: 1px solid var(--rdb-border);
	background: var(--rdb-soft);
}

.rdb-location-card__image img,
.rdb-location-placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.rdb-location-placeholder {
	color: var(--rdb-muted);
	font-size: 1rem;
	font-weight: 700;
}

.rdb-location-card__content {
	grid-area: content;
	display: grid;
	gap: .2rem;
	min-width: 0;
	padding-right: .8rem;
}

.rdb-location-card__content strong {
	font-size: 1rem;
	line-height: 1.25;
	overflow-wrap: anywhere;
}

.rdb-location-card__content small {
	color: var(--rdb-muted);
	font-size: .81rem;
	font-weight: 400;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.rdb-location-card__method {
	display: grid;
	gap: .55rem;
	padding: .8rem;
	border-top: 1px solid var(--rdb-border);
	background: var(--rdb-accent-soft);
}

.rdb-location-card__method p {
	margin: 0;
	color: var(--rdb-muted);
	font-size: .8rem;
}

.rdb-method-pill {
	display: grid;
	gap: .12rem;
}

.rdb-method-pill span {
	color: var(--rdb-muted);
	font-size: .76rem;
}

.rdb-method-pill strong {
	font-size: .93rem;
}

/* Artwork. */
.rdb-artwork-mode {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: .7rem;
	margin-bottom: .8rem;
}

.rdb-artwork-mode__choice {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: .55rem;
	align-items: start;
	padding: .8rem;
	border: 1px solid var(--rdb-border);
	border-radius: 9px;
	background: #fff;
	cursor: pointer;
}

.rdb-artwork-mode__choice:has(input:checked) {
	border-color: var(--rdb-accent);
	background: var(--rdb-accent-soft);
}

.rdb-artwork-mode__choice input {
	margin-top: .25rem;
}

.rdb-artwork-mode__choice > span {
	display: grid;
	gap: .15rem;
}

.rdb-artwork-mode__choice small {
	color: var(--rdb-muted);
	font-size: .8rem;
}

.rdb-artwork-box {
	display: grid;
	gap: .75rem;
	padding: .9rem;
	border: 1px solid var(--rdb-border);
	border-radius: 9px;
	background: var(--rdb-soft);
}

.rdb-artwork-box h4 {
	margin: 0;
	font-size: 1rem;
}

.rdb-artwork-location-list {
	display: grid;
	gap: .75rem;
}

.rdb-upload {
	display: grid;
	gap: .35rem;
	padding: .8rem;
	border: 1px dashed #98a2b3;
	border-radius: 8px;
	background: #fff;
	font-weight: 600;
	cursor: pointer;
}

.rdb-upload input[type="file"] {
	width: 100%;
	font-weight: 400;
}

.rdb-upload small {
	color: var(--rdb-muted);
	font-size: .78rem;
	font-weight: 400;
}

.rdb-selected-artwork {
	margin: 0;
	color: var(--rdb-success);
	font-size: .86rem;
}

/* Pricing and final action. */
.rdb-price-summary {
	margin-top: 1rem;
	overflow: hidden;
	border: 1px solid var(--rdb-border);
	border-radius: var(--rdb-radius);
	background: #fff;
	box-shadow: var(--rdb-shadow);
}

.rdb-price-summary__heading {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr);
	gap: .7rem;
	align-items: center;
	padding: .85rem 1rem;
	border-bottom: 1px solid var(--rdb-border);
	background: var(--rdb-soft);
}

.rdb-price-summary__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 999px;
	background: var(--rdb-accent);
	color: #fff;
	font-size: .95rem;
	font-weight: 700;
}

.rdb-price-summary__heading h3 {
	margin: 0 0 .1rem;
	font-size: 1.02rem;
}

.rdb-price-summary__heading p {
	margin: 0;
	color: var(--rdb-muted);
	font-size: .8rem;
}

.rdb-price-panel {
	min-height: 72px;
	padding: .9rem 1rem;
}

.rdb-price-breakdown {
	display: grid;
}

.rdb-price-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	padding: .45rem 0;
	border-bottom: 1px solid var(--rdb-border);
}

.rdb-price-row span {
	min-width: 0;
}

.rdb-price-row strong {
	flex: 0 0 auto;
	text-align: right;
}

.rdb-price-row--saving {
	color: var(--rdb-success);
}

.rdb-price-row--total {
	margin-top: .35rem;
	padding-top: .72rem;
	border-top: 2px solid var(--rdb-text);
	border-bottom: 0;
	font-size: 1.07rem;
}

.rdb-no-personalisation {
	margin: .65rem 0 .25rem;
	padding: .65rem .75rem;
	border-radius: 7px;
	background: var(--rdb-soft);
	color: var(--rdb-muted);
	font-size: .82rem;
}

.rdb-price-panel details {
	margin-top: .65rem;
	border-top: 1px solid var(--rdb-border);
}

.rdb-price-panel summary {
	padding: .65rem 0 .1rem;
	font-weight: 600;
	cursor: pointer;
}

.rdb-calculation-list {
	margin: .45rem 0 0;
	padding: 0;
	list-style: none;
}

.rdb-calculation-list li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: .15rem .8rem;
	padding: .55rem 0;
	border-bottom: 1px solid var(--rdb-border);
}

.rdb-calculation-list li:last-child {
	border-bottom: 0;
}

.rdb-calculation-list li > span {
	min-width: 0;
	overflow-wrap: anywhere;
}

.rdb-calculation-list li > strong {
	grid-column: 2;
	grid-row: 1;
	text-align: right;
}

.rdb-calculation-list li > small {
	grid-column: 1 / -1;
	color: var(--rdb-muted);
	font-size: .76rem;
}

.rdb-edit-banner,
.rdb-inline-notice,
.rdb-feedback {
	padding: .75rem .85rem;
	border-radius: 8px;
}

.rdb-edit-banner {
	display: flex;
	justify-content: space-between;
	gap: .75rem;
	margin-bottom: .75rem;
	border: 1px solid #b2ccff;
	background: var(--rdb-accent-soft);
}

.rdb-inline-notice {
	margin: 0 0 .85rem;
	border: 1px solid #b2ccff;
	background: var(--rdb-accent-soft);
	color: #1849a9;
	font-size: .85rem;
}

.rdb-feedback {
	flex: 1 1 300px;
	margin: 0;
}

.rdb-feedback.is-success {
	border: 1px solid #abefc6;
	background: var(--rdb-success-soft);
	color: var(--rdb-success);
}

.rdb-feedback.is-error {
	border: 1px solid #fecdca;
	background: var(--rdb-error-soft);
	color: var(--rdb-error);
}

.rdb-action-area {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: .75rem;
	margin-top: .9rem;
}

.rdb-submit {
	flex: 0 0 auto;
	min-height: 48px;
	margin: 0;
	padding: .7rem 1.15rem;
	border: 1px solid var(--rdb-accent);
	border-radius: 8px;
	background: var(--rdb-accent);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
}

.rdb-submit:hover:not(:disabled) {
	border-color: var(--rdb-accent-dark);
	background: var(--rdb-accent-dark);
}

.rdb-submit:disabled {
	cursor: not-allowed;
	opacity: .48;
}

/* Classic WooCommerce cart, checkout, order and account presentation. */
.rdb-cart-item--config-master td,
.rdb-block-item--config-master > td {
	border-top: 2px solid var(--rdb-accent) !important;
	background: rgba(29, 78, 216, .035);
}

.rdb-cart-item--config-master td:first-child,
.rdb-cart-item--config-member td:first-child,
.rdb-block-item--config-master > td:first-child,
.rdb-block-item--config-member > td:first-child {
	border-left: 1px solid rgba(29, 78, 216, .28);
}

.rdb-cart-item--config-master td:last-child,
.rdb-cart-item--config-member td:last-child,
.rdb-block-item--config-master > td:last-child,
.rdb-block-item--config-member > td:last-child {
	border-right: 1px solid rgba(29, 78, 216, .28);
}

.rdb-cart-item--config-member td,
.rdb-block-item--config-member > td {
	background: rgba(29, 78, 216, .018);
}

.rdb-cart-item--config-last td,
.rdb-block-item--config-last > td {
	border-bottom: 2px solid rgba(29, 78, 216, .38) !important;
}

.rdb-cart-config-heading {
	display: block;
	margin: 0 0 .55rem;
}

.rdb-cart-mode-badge,
.rdb-cart-member-label {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	max-width: 100%;
	padding: .25rem .55rem;
	border-radius: 999px;
	font-size: .75rem;
	font-weight: 700;
	line-height: 1.25;
}

.rdb-cart-mode-badge.is-personalised {
	background: var(--rdb-accent-soft);
	color: var(--rdb-accent-dark);
}

.rdb-cart-mode-badge.is-blank {
	background: #f2f4f7;
	color: #344054;
}

.rdb-cart-member-label {
	display: flex;
	width: max-content;
	margin: 0 0 .45rem;
	background: #f2f4f7;
	color: var(--rdb-muted);
}

.rdb-cart-item--decoration td,
.rdb-cart-item--setup td {
	background: rgba(0, 0, 0, .025);
}

.rdb-cart-item--decoration .product-name,
.rdb-cart-item--setup .product-name {
	padding-inline-start: 1rem;
}

.rdb-cart-component-image {
	width: 48px;
	height: 48px;
	object-fit: contain;
}

.rdb-cart-edit,
.rdb-remove-configuration {
	display: inline-block;
	margin-inline-start: .45rem;
	font-size: .82em;
}

.rdb-component-quantity {
	display: inline-block;
	min-width: 2rem;
	text-align: center;
}

.rdb-cart-summary-row th,
.rdb-cart-summary-row td {
	font-weight: 600;
}

.rdb-account-artworks {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1rem;
	margin: 1rem 0;
}

.rdb-account-artwork {
	padding: 1rem;
	border: 1px solid #d9dde3;
	border-radius: 8px;
}

.rdb-account-artwork h3 {
	margin-top: 0;
	margin-bottom: .4rem;
}

.rdb-claim-order-form {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: .65rem;
	align-items: end;
	margin-top: 1rem;
	padding: 1rem;
	border: 1px solid #d9dde3;
	border-radius: 8px;
}

.rdb-order-summary,
.rdb-order-config {
	margin: 1rem 0;
	padding: 1rem;
	border: 1px solid #d9dde3;
	border-radius: 8px;
}

.rdb-order-locations {
	margin-bottom: 0;
}

@media (max-width: 780px) {
	.rdb-step-toggle {
		grid-template-columns: 34px minmax(0, 1fr) 16px;
		padding: .7rem .8rem;
	}

	.rdb-step-summary {
		grid-column: 2;
		max-width: none;
		text-align: left;
		white-space: normal;
	}

	.rdb-step-chevron {
		grid-column: 3;
		grid-row: 1 / span 2;
	}

	.rdb-step-body {
		padding: .85rem;
	}

	.rdb-tier-panel__header {
		align-items: flex-start;
		flex-direction: column;
	}

	.rdb-tier-panel__header small {
		max-width: none;
		text-align: left;
	}

	.rdb-location-grid {
		grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
	}
}

@media (max-width: 560px) {
	.rdb-builder {
		margin-top: .75rem;
	}

	.rdb-step-toggle {
		min-height: 66px;
		gap: .55rem;
	}

	.rdb-step-number {
		width: 31px;
		height: 31px;
	}

	.rdb-step-heading small {
		display: none;
	}

	.rdb-tier-table th,
	.rdb-tier-table td {
		padding: .5rem .55rem;
	}

	.rdb-color-panel__header {
		align-items: flex-start;
	}

	.rdb-color-remove {
		padding: .42rem .5rem;
	}

	.rdb-size-table__head {
		display: none;
	}

	.rdb-size-table__row {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas:
			"size qty"
			"price qty";
		gap: .18rem .65rem;
		padding: .7rem;
	}

	.rdb-size-table__row > strong {
		grid-area: size;
	}

	.rdb-variation-price {
		grid-area: price;
	}

	.rdb-qty {
		grid-area: qty;
		grid-template-columns: 34px 50px 34px;
	}

	.rdb-location-grid,
	.rdb-profile-visuals,
	.rdb-artwork-mode,
	.rdb-choice-grid {
		grid-template-columns: 1fr;
	}

	.rdb-location-card__image {
		height: 190px;
	}

	.rdb-profile-visuals img {
		height: 210px;
	}

	.rdb-action-area {
		align-items: stretch;
		flex-direction: column;
	}

	.rdb-submit {
		width: 100%;
	}

	.rdb-price-row {
		gap: .6rem;
		font-size: .92rem;
	}
}

/* Artwork source, secure previews and setup/production status. */
.rdb-artwork-source-choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: .75rem;
	margin: 0 0 .9rem;
}

.rdb-source-choice {
	display: flex;
	min-width: 0;
	padding: .85rem;
	border: 1px solid var(--rdb-border);
	border-radius: 10px;
	background: #fff;
	cursor: pointer;
	transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.rdb-source-choice:hover,
.rdb-source-choice.is-selected {
	border-color: var(--rdb-accent);
	background: var(--rdb-accent-soft);
	box-shadow: 0 0 0 1px var(--rdb-accent);
}

.rdb-source-choice input {
	flex: 0 0 auto;
	margin: .25rem .65rem 0 0;
}

.rdb-source-choice span {
	display: grid;
	min-width: 0;
	gap: .2rem;
}

.rdb-source-choice strong {
	font-size: .98rem;
}

.rdb-source-choice small {
	color: var(--rdb-muted);
	font-size: .82rem;
}

.rdb-existing-artwork-field,
.rdb-upload-wrap {
	margin: 0 0 .8rem;
}

.rdb-upload-wrap {
	padding: .85rem;
	border: 1px dashed var(--rdb-border-strong);
	border-radius: 10px;
	background: var(--rdb-soft);
}

.rdb-upload-prompt {
	margin: 0 0 .55rem !important;
	color: var(--rdb-muted);
	font-size: .9rem;
}

.rdb-upload-status {
	display: grid;
	gap: .45rem;
	margin-top: .65rem;
	padding: .65rem .75rem;
	border: 1px solid var(--rdb-border);
	border-radius: 8px;
	background: #fff;
	font-size: .86rem;
	font-weight: 600;
}

.rdb-upload-status__line {
	display: flex;
	align-items: flex-start;
	gap: .55rem;
}

.rdb-upload-status__line > span:last-child {
	display: grid;
	min-width: 0;
	gap: .12rem;
}

.rdb-upload-status code {
	overflow: hidden;
	color: inherit;
	font-size: .78rem;
	font-weight: 400;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rdb-upload-status__icon {
	display: inline-grid;
	place-items: center;
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	border: 1px solid currentColor;
	border-radius: 50%;
	font-size: .72rem;
	font-weight: 800;
}

.rdb-upload-progress {
	height: 7px;
	overflow: hidden;
	border-radius: 99px;
	background: rgba(24, 73, 169, .14);
}

.rdb-upload-progress span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: currentColor;
	transition: width .18s ease;
}

.rdb-upload-status > small {
	justify-self: end;
	margin-top: -.2rem;
	font-size: .74rem;
}

.rdb-upload-status.is-loading {
	border-color: #b2ccff;
	background: var(--rdb-accent-soft);
	color: #1849a9;
}

.rdb-upload-status.is-success {
	border-color: #abefc6;
	background: var(--rdb-success-soft);
	color: var(--rdb-success);
}

.rdb-upload-status.is-error {
	border-color: #fecdca;
	background: var(--rdb-error-soft);
	color: var(--rdb-error);
}

.rdb-upload-spinner {
	width: 16px;
	height: 16px;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	animation: rdb-spin .7s linear infinite;
}

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

.rdb-artwork-preview {
	display: grid;
	grid-template-columns: 116px minmax(0, 1fr);
	gap: .85rem;
	align-items: start;
	margin: .8rem 0 0;
	padding: .8rem;
	border: 1px solid var(--rdb-border);
	border-radius: 10px;
	background: #fff;
}

.rdb-artwork-preview__visual {
	display: grid;
	place-items: center;
	width: 116px;
	height: 96px;
	overflow: hidden;
	border: 1px solid var(--rdb-border);
	border-radius: 8px;
	background: var(--rdb-soft);
	text-decoration: none;
}

.rdb-artwork-preview__visual img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.rdb-artwork-preview__file strong {
	padding: .3rem .55rem;
	border-radius: 6px;
	background: var(--rdb-soft-strong);
	color: var(--rdb-text);
	font-size: .82rem;
	letter-spacing: .06em;
}

.rdb-artwork-preview__content {
	display: grid;
	min-width: 0;
	gap: .25rem;
}

.rdb-artwork-preview__content > strong,
.rdb-artwork-preview__content code {
	overflow-wrap: anywhere;
}

.rdb-artwork-preview__content code {
	font-size: .78rem;
}

.rdb-artwork-preview__content > small {
	color: var(--rdb-muted);
}

.rdb-artwork-preparations {
	display: grid;
	gap: .45rem;
	margin-top: .55rem;
}

.rdb-preparation-row {
	display: grid;
	grid-template-columns: minmax(100px, auto) minmax(0, 1fr);
	gap: .18rem .5rem;
	align-items: center;
	padding: .5rem .6rem;
	border-radius: 8px;
	background: var(--rdb-soft);
}

.rdb-preparation-row small {
	grid-column: 1 / -1;
	color: var(--rdb-muted);
}

.rdb-status-chip {
	justify-self: start;
	padding: .16rem .45rem;
	border-radius: 999px;
	background: var(--rdb-soft-strong);
	color: var(--rdb-muted);
	font-size: .75rem;
	font-weight: 700;
}

.rdb-status-chip.is-ready {
	background: var(--rdb-success-soft);
	color: var(--rdb-success);
}

.rdb-status-chip.is-required {
	background: var(--rdb-warning-soft);
	color: var(--rdb-warning);
}

/* Customer-account artwork library. */
.rdb-account-artworks {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 1rem;
	margin: 1rem 0 1.5rem;
}

.rdb-account-artwork {
	padding: 1rem;
	border: 1px solid #d7dce3;
	border-radius: 10px;
	background: #fff;
}

.rdb-account-artwork__preview {
	display: grid;
	place-items: center;
	height: 160px;
	overflow: hidden;
	margin: -1rem -1rem .9rem;
	border-bottom: 1px solid #d7dce3;
	background: #f8fafc;
}

.rdb-account-artwork__preview img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.rdb-account-artwork h3 {
	margin-bottom: .35rem;
}

.rdb-file-badge {
	display: inline-grid;
	place-items: center;
	min-width: 66px;
	min-height: 58px;
	padding: .45rem;
	border-radius: 8px;
	background: #eef2f6;
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .05em;
}

.rdb-production-file-list small {
	color: #667085;
}

@media (max-width: 640px) {
	.rdb-artwork-source-choices {
		grid-template-columns: 1fr;
	}

	.rdb-artwork-preview {
		grid-template-columns: 84px minmax(0, 1fr);
	}

	.rdb-artwork-preview__visual {
		width: 84px;
		height: 76px;
	}

	.rdb-size-table__row {
		grid-template-areas:
			"size qty"
			"price qty";
	}
}

.rdb-account-artwork__preview--file {
	display: grid;
	place-items: center;
	text-decoration: none;
}

.rdb-account-artwork__preview--file .rdb-file-badge {
	width: 100%;
	height: 100%;
}

/* Generic protected preview markup shared by My Artwork and order views. */
.rdb-file-preview {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
}

.rdb-file-preview img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.rdb-file-preview.rdb-file-badge {
	flex-direction: column;
	gap: .2rem;
}

.rdb-file-preview.rdb-file-badge small {
	font-size: .72rem;
	font-weight: 500;
	letter-spacing: 0;
}

/* Protected previews on the customer My Artwork endpoint. */
.rdb-account-artwork .rdb-file-preview {
	display: grid;
	place-items: center;
	width: 100%;
	height: 112px;
	box-sizing: border-box;
	border: 1px solid var(--rdb-border);
	border-radius: 10px;
	background: var(--rdb-soft);
	overflow: hidden;
	text-decoration: none;
}

.rdb-account-artwork .rdb-file-preview img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.rdb-account-artwork .rdb-file-preview.rdb-file-badge {
	grid-auto-flow: row;
	align-content: center;
	gap: .2rem;
	color: inherit;
}

.rdb-account-artwork .rdb-file-preview.rdb-file-badge small {
	font-size: .72rem;
	font-weight: 400;
	letter-spacing: 0;
}

/* 0.5 cart clarity: keep each real variation operational while presenting one
 * concise shared personalisation summary on the configuration master row. */
.rdb-cart-item .variation {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	gap: .18rem .45rem;
	margin-top: .45rem;
	font-size: .86rem;
	line-height: 1.4;
}

.rdb-cart-item .variation dt,
.rdb-cart-item .variation dd {
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.rdb-cart-item .variation dt {
	color: var(--rdb-muted);
	font-weight: 600;
}

.rdb-cart-item .variation dd {
	min-width: 0;
}

.rdb-cart-personalisation,
.rdb-cart-artworks {
	display: inline-grid;
	gap: .15rem;
}

.rdb-cart-personalisation-line {
	display: block;
}

.rdb-cart-personalisation-line small {
	color: var(--rdb-muted);
	white-space: nowrap;
}

.rdb-cart-artwork-link {
	font-weight: 600;
}

.rdb-cart-saving,
.rdb-cart-summary-saving {
	color: var(--rdb-success);
	font-weight: 700;
}

.rdb-cart-saving small {
	font-weight: 600;
}

.rdb-cart-item--config-member .variation {
	margin-top: .25rem;
}

.rdb-cart-item--config-member .rdb-cart-config-heading,
.rdb-cart-item--config-member .rdb-cart-member-label {
	display: none;
}

.rdb-cart-summary-row th,
.rdb-cart-summary-row td {
	font-size: .9rem;
}

/* Builder subtotal context shown above the authoritative WooCommerce order total. */
.rdb-cart-summary-heading th {
	padding-top: .9rem;
	border-top: 1px solid var(--rdb-border);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-align: left;
	text-transform: uppercase;
}

.rdb-cart-summary-heading small {
	display: block;
	margin-top: .18rem;
	color: var(--rdb-muted);
	font-size: .72rem;
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
}

.rdb-cart-summary-row--subtotal th,
.rdb-cart-summary-row--subtotal td {
	color: var(--rdb-muted);
	font-weight: 500;
}

.rdb-cart-summary-row--saving th,
.rdb-cart-summary-row--saving td {
	color: var(--rdb-success);
}

.rdb-cart-summary-row--net th,
.rdb-cart-summary-row--net td {
	font-weight: 700;
}

/* 0.6 colour workflow: one clear accordion per selected colour. */
.rdb-builder-toolbar {
	display: flex;
	justify-content: flex-end;
	margin: -.25rem 0 .65rem;
}

.rdb-link-button {
	margin: 0;
	padding: .25rem .1rem;
	border: 0;
	background: transparent;
	color: var(--rdb-accent);
	font-size: .82rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 2px;
	cursor: pointer;
}

.rdb-link-button:hover,
.rdb-link-button:focus {
	color: var(--rdb-accent-dark);
}

.rdb-color-accordions {
	display: grid;
	gap: .65rem;
	margin-top: .85rem;
}

.rdb-color-accordion {
	overflow: hidden;
	border: 1px solid var(--rdb-border-strong);
	border-radius: 9px;
	background: #fff;
	box-shadow: var(--rdb-shadow);
}

.rdb-color-accordion.is-open {
	border-color: var(--rdb-accent);
	box-shadow: 0 0 0 2px rgba(29, 78, 216, .08);
}

.rdb-color-accordion__header {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: stretch;
	background: var(--rdb-soft);
}

.rdb-color-accordion__toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: .68rem .8rem;
	border: 0;
	background: transparent;
	color: var(--rdb-text);
	text-align: left;
	cursor: pointer;
}

.rdb-color-accordion__identity {
	display: flex;
	align-items: center;
	gap: .65rem;
	min-width: 0;
}

.rdb-color-accordion__identity .rdb-swatch__visual {
	width: 38px;
	height: 38px;
	flex-basis: 38px;
}

.rdb-color-accordion__identity > span:last-child {
	display: grid;
	gap: .08rem;
	min-width: 0;
}

.rdb-color-accordion__identity strong {
	overflow: hidden;
	font-size: .95rem;
	line-height: 1.25;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rdb-color-accordion__identity small {
	color: var(--rdb-muted);
	font-size: .76rem;
}

.rdb-color-accordion__chevron {
	width: .65rem;
	height: .65rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .18s ease;
	flex: 0 0 auto;
}

.rdb-color-accordion.is-open .rdb-color-accordion__chevron {
	transform: rotate(225deg) translate(-1px, -1px);
}

.rdb-color-accordion__header .rdb-color-remove {
	border-width: 0 0 0 1px;
	border-color: var(--rdb-border);
	border-radius: 0;
	padding-inline: .85rem;
	white-space: nowrap;
}

.rdb-color-accordion__body {
	border-top: 1px solid var(--rdb-border);
}

.rdb-colour-actions {
	display: flex;
	justify-content: flex-end;
	margin-top: .35rem;
}

.rdb-remove-artwork {
	margin: .55rem 0 0;
	padding: .35rem .55rem;
	border: 1px solid #f1b4af;
	border-radius: 6px;
	background: #fff;
	color: var(--rdb-error);
	font-size: .76rem;
	font-weight: 700;
	cursor: pointer;
}

.rdb-remove-artwork:hover:not(:disabled) {
	background: var(--rdb-error-soft);
}

@media (max-width: 560px) {
	.rdb-color-accordion__header {
		grid-template-columns: minmax(0, 1fr);
	}

	.rdb-color-accordion__header .rdb-color-remove {
		border-width: 1px 0 0;
		text-align: left;
	}

	.rdb-color-accordion__identity strong {
		white-space: normal;
	}
}

/* -------------------------------------------------------------------------
 * 0.7.0-beta.7: sequential product wizard and production-ready summaries.
 * ---------------------------------------------------------------------- */
.rdb-builder-toolbar {
	display: flex;
	justify-content: flex-end;
	margin: 0 0 .65rem;
}

.rdb-link-button {
	margin: 0;
	padding: .25rem .1rem;
	border: 0;
	background: transparent;
	color: var(--rdb-accent);
	font-size: .84rem;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
}

.rdb-link-button:hover {
	color: var(--rdb-accent-dark);
}

.rdb-wizard-progress {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 0;
	margin: 0 0 .85rem;
	padding: 0;
	list-style: none;
}

.rdb-wizard-progress li {
	position: relative;
	display: grid;
	justify-items: center;
	gap: .3rem;
	min-width: 0;
	color: var(--rdb-muted);
	text-align: center;
}

.rdb-wizard-progress li::before {
	position: absolute;
	top: 16px;
	left: 0;
	z-index: 0;
	width: 100%;
	height: 2px;
	background: var(--rdb-border);
	content: "";
}

.rdb-wizard-progress li:first-child::before {
	left: 50%;
	width: 50%;
}

.rdb-wizard-progress li:last-child::before {
	width: 50%;
}

.rdb-wizard-progress li > span {
	position: relative;
	z-index: 1;
	display: inline-grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border: 2px solid var(--rdb-border-strong);
	border-radius: 50%;
	background: #fff;
	color: var(--rdb-muted);
	font-size: .82rem;
	font-weight: 800;
}

.rdb-wizard-progress li > small {
	max-width: 100%;
	overflow: hidden;
	font-size: .72rem;
	font-weight: 700;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rdb-wizard-progress li.is-current > span {
	border-color: var(--rdb-accent);
	background: var(--rdb-accent);
	color: #fff;
	box-shadow: 0 0 0 4px rgba(29, 78, 216, .12);
}

.rdb-wizard-progress li.is-current > small {
	color: var(--rdb-accent-dark);
}

.rdb-wizard-progress li.is-complete::before {
	background: var(--rdb-success);
}

.rdb-wizard-progress li.is-complete > span {
	border-color: var(--rdb-success);
	background: var(--rdb-success);
	color: #fff;
}

.rdb-wizard {
	display: grid;
	gap: .65rem;
}

.rdb-wizard-step {
	box-shadow: none;
}

.rdb-wizard-step.is-current {
	border-color: var(--rdb-accent);
	box-shadow: 0 0 0 1px rgba(29, 78, 216, .12), var(--rdb-shadow);
}

.rdb-wizard-step:not(.is-current) .rdb-step-toggle {
	min-height: 58px;
}

.rdb-wizard-step:not(.is-current) .rdb-step-heading small {
	display: none;
}

.rdb-wizard-step.is-disabled .rdb-step-toggle {
	opacity: .5;
}

.rdb-wizard-step .rdb-step-body {
	padding: 1.1rem;
}

.rdb-step-footer {
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
}

.rdb-back {
	min-height: 42px;
	margin: 0;
	padding: .55rem .85rem;
	border: 1px solid var(--rdb-border-strong);
	border-radius: 7px;
	background: #fff;
	color: var(--rdb-text);
	font-weight: 700;
	cursor: pointer;
}

.rdb-back:hover {
	border-color: var(--rdb-accent);
	color: var(--rdb-accent-dark);
}

.rdb-wizard-section-heading,
.rdb-size-step-toolbar {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: .85rem;
}

.rdb-wizard-section-heading h3,
.rdb-size-step-toolbar h3 {
	margin: 0 0 .12rem;
	font-size: 1.05rem;
}

.rdb-wizard-section-heading p,
.rdb-size-step-toolbar p {
	margin: 0;
	color: var(--rdb-muted);
	font-size: .84rem;
}

.rdb-size-chart-link {
	flex: 0 0 auto;
	padding: .42rem .65rem;
	border: 1px solid var(--rdb-border-strong);
	border-radius: 7px;
	background: #fff;
	color: var(--rdb-accent-dark);
	font-size: .82rem;
	font-weight: 700;
	text-decoration: none;
}

.rdb-size-chart-link:hover {
	border-color: var(--rdb-accent);
	background: var(--rdb-accent-soft);
}

.rdb-tier-progress {
	display: grid;
	gap: .45rem;
	margin-top: .85rem;
	padding: .8rem .9rem;
	border: 1px solid #b9c9e8;
	border-radius: 9px;
	background: var(--rdb-accent-soft);
}

.rdb-tier-progress__heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .75rem;
}

.rdb-tier-progress__heading strong {
	font-size: .88rem;
}

.rdb-tier-progress__heading span,
.rdb-tier-progress small {
	color: var(--rdb-muted);
	font-size: .76rem;
}

.rdb-tier-progress__bar {
	display: block;
	height: 9px;
	overflow: hidden;
	border-radius: 999px;
	background: rgba(29, 78, 216, .16);
}

.rdb-tier-progress__bar > span {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: var(--rdb-accent);
	transition: width .2s ease;
}

.rdb-tier-progress.is-complete {
	border-color: #abefc6;
	background: var(--rdb-success-soft);
	color: var(--rdb-success);
}

.rdb-tier-progress.is-complete .rdb-tier-progress__bar {
	background: rgba(6, 118, 71, .15);
}

.rdb-tier-progress.is-complete .rdb-tier-progress__bar > span {
	background: var(--rdb-success);
}

.rdb-personalisation-pricing {
	margin-top: .85rem;
	border: 1px solid var(--rdb-border);
	border-radius: 9px;
	background: #fff;
}

.rdb-personalisation-pricing > summary {
	padding: .72rem .85rem;
	color: var(--rdb-accent-dark);
	font-weight: 800;
	cursor: pointer;
}

.rdb-personalisation-pricing__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
	gap: .75rem;
	padding: .85rem;
	border-top: 1px solid var(--rdb-border);
}

.rdb-personalisation-price-group {
	overflow: hidden;
	border: 1px solid var(--rdb-border);
	border-radius: 8px;
}

.rdb-personalisation-price-group h4 {
	margin: 0;
	padding: .58rem .7rem;
	background: var(--rdb-soft);
	font-size: .88rem;
}

.rdb-personalisation-price-group table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: .78rem;
}

.rdb-personalisation-price-group th,
.rdb-personalisation-price-group td {
	padding: .45rem .65rem;
	border: 0;
	border-top: 1px solid var(--rdb-border);
	text-align: left;
}

.rdb-personalisation-pricing > p {
	margin: 0;
	padding: 0 .85rem .8rem;
	color: var(--rdb-muted);
	font-size: .76rem;
}

.rdb-final-price-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--rdb-border);
	border-radius: 9px;
}

.rdb-final-price-table {
	width: 100%;
	min-width: 560px;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: #fff;
	font-size: .86rem;
}

.rdb-final-price-table th,
.rdb-final-price-table td {
	padding: .62rem .72rem;
	border: 0;
	border-bottom: 1px solid var(--rdb-border);
	text-align: right;
}

.rdb-final-price-table th:first-child,
.rdb-final-price-table td:first-child {
	text-align: left;
}

.rdb-final-price-table thead th {
	background: var(--rdb-soft);
	color: var(--rdb-muted);
	font-size: .72rem;
	letter-spacing: .035em;
	text-transform: uppercase;
}

.rdb-final-price-table tbody td:nth-child(3) {
	color: var(--rdb-success);
}

.rdb-final-price-table tbody td:last-child,
.rdb-final-price-table tfoot td {
	color: var(--rdb-text);
}

.rdb-final-price-table tfoot th,
.rdb-final-price-table tfoot td {
	border-bottom: 0;
	background: var(--rdb-soft);
	font-size: .98rem;
}

.rdb-added-success {
	display: grid;
	grid-template-columns: 38px minmax(0, 1fr);
	gap: .75rem;
	align-items: start;
	margin-top: .9rem;
	padding: .9rem;
	border: 1px solid #abefc6;
	border-radius: 10px;
	background: var(--rdb-success-soft);
	color: var(--rdb-success);
}

.rdb-added-success__icon {
	display: inline-grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--rdb-success);
	color: #fff;
	font-weight: 900;
}

.rdb-added-success p {
	margin: .15rem 0 .65rem;
	color: #245b43;
	font-size: .82rem;
}

.rdb-added-success__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
}

.rdb-added-success__actions .button {
	margin: 0;
}

.rdb-public-tiers {
	width: 100%;
	max-width: 940px;
	margin: .75rem 0 1rem;
	overflow: hidden;
	border: 1px solid var(--rdb-border, #d7dce3);
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 1px 2px rgba(16, 24, 40, .06);
}

.rdb-public-tiers__heading {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: .75rem;
	padding: .72rem .85rem;
	border-bottom: 1px solid var(--rdb-border, #d7dce3);
	background: #f8fafc;
}

.rdb-public-tiers__heading span {
	font-weight: 800;
}

.rdb-public-tiers__heading small {
	color: #667085;
	font-size: .76rem;
}

.rdb-public-tiers table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	font-size: .84rem;
}

.rdb-public-tiers th,
.rdb-public-tiers td {
	padding: .54rem .85rem;
	border: 0;
	border-bottom: 1px solid #e4e7ec;
	text-align: left;
}

.rdb-public-tiers tbody tr:last-child td {
	border-bottom: 0;
}

.rdb-public-tiers th {
	color: #667085;
	font-size: .69rem;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.rdb-public-tiers td:last-child {
	color: #067647;
	font-weight: 700;
}

/* Collapsed, optional pricing detail in classic cart and checkout. */
.rdb-builder-cart-summary details,
.rdb-cart-summary details,
.rdb-checkout-summary details {
	border-top: 1px solid var(--rdb-border);
}

.rdb-builder-cart-summary summary,
.rdb-cart-summary summary,
.rdb-checkout-summary summary {
	padding: .65rem 0;
	color: var(--rdb-accent-dark);
	font-weight: 700;
	cursor: pointer;
}

@media (max-width: 700px) {
	.rdb-wizard-progress {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		row-gap: .75rem;
	}

	.rdb-wizard-progress li:nth-child(3n + 1)::before,
	.rdb-wizard-progress li:nth-child(3n)::before {
		left: 0;
		width: 100%;
	}

	.rdb-wizard-section-heading,
	.rdb-size-step-toolbar,
	.rdb-tier-progress__heading,
	.rdb-public-tiers__heading {
		align-items: stretch;
		flex-direction: column;
	}

	.rdb-size-chart-link {
		align-self: flex-start;
	}
}

@media (max-width: 560px) {
	.rdb-wizard-progress {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.rdb-step-toggle {
		grid-template-columns: 34px minmax(0, 1fr) 14px;
	}

	.rdb-step-summary {
		display: none;
	}

	.rdb-final-price-table {
		min-width: 500px;
	}
}

/* -------------------------------------------------------------------------
 * 0.8.0-beta.8: selected-colour chips, full-width progress and source packages.
 * ---------------------------------------------------------------------- */
.rdb-wizard-progress {
	width: 100%;
	grid-template-columns: repeat(var(--rdb-wizard-step-count, 6), minmax(0, 1fr));
}

.rdb-selected-colours {
	display: grid;
	gap: .4rem;
	margin-top: .8rem;
	padding: .65rem .7rem;
	border: 1px solid var(--rdb-border);
	border-radius: 8px;
	background: var(--rdb-soft);
}

.rdb-selected-colours > small {
	color: var(--rdb-muted);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
}

.rdb-selected-colours__chips {
	display: flex;
	flex-wrap: wrap;
	gap: .42rem;
}

.rdb-selected-colour-chip {
	display: inline-flex;
	align-items: center;
	gap: .38rem;
	min-height: 34px;
	padding: .2rem .28rem .2rem .24rem;
	border: 1px solid var(--rdb-border-strong);
	border-radius: 999px;
	background: #fff;
	font-size: .8rem;
	font-weight: 700;
}

.rdb-selected-colour-chip .rdb-swatch__visual {
	width: 24px;
	height: 24px;
	flex-basis: 24px;
	border-radius: 50%;
}

.rdb-selected-colour-chip button {
	display: inline-grid;
	place-items: center;
	width: 24px;
	height: 24px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--rdb-soft-strong);
	color: var(--rdb-error);
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
}

.rdb-step-footer--colours {
	justify-content: space-between;
}

.rdb-upload-package-count {
	display: grid;
	gap: .15rem;
	margin-bottom: .65rem;
}

.rdb-upload-package-count small {
	color: var(--rdb-muted);
	font-size: .76rem;
	font-weight: 400;
}

.rdb-artwork-preview.is-package {
	grid-template-columns: 1fr;
}

.rdb-artwork-package-files {
	display: grid;
	gap: .5rem;
	margin-top: .65rem;
}

.rdb-artwork-package-file {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	gap: .65rem;
	align-items: start;
	padding: .55rem;
	border: 1px solid var(--rdb-border);
	border-radius: 8px;
	background: var(--rdb-soft);
}

.rdb-artwork-package-file .rdb-artwork-preview__visual {
	width: 64px;
	height: 56px;
}

.rdb-artwork-package-file > div:last-child {
	display: grid;
	gap: .08rem;
	min-width: 0;
}

.rdb-artwork-package-file code {
	overflow: hidden;
	font-size: .74rem;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.rdb-artwork-package-file small {
	color: var(--rdb-muted);
	font-size: .72rem;
}

.rdb-artwork-package-file__links {
	display: flex;
	flex-wrap: wrap;
	gap: .55rem;
	align-items: center;
	margin-top: .3rem;
	font-size: .76rem;
}

.rdb-link-button.is-danger {
	color: var(--rdb-error);
}

@media (max-width: 700px) {
	.rdb-wizard-progress {
		grid-template-columns: repeat(var(--rdb-wizard-step-count, 6), minmax(64px, 1fr));
		overflow-x: auto;
		padding-bottom: .25rem;
	}

	.rdb-wizard-progress li:nth-child(3n + 1)::before,
	.rdb-wizard-progress li:nth-child(3n)::before {
		left: 0;
		width: 100%;
	}
}

@media (max-width: 480px) {
	.rdb-artwork-package-file {
		grid-template-columns: 1fr;
	}
}

/* -------------------------------------------------------------------------
 * 0.9.0-beta.9: wizard navigation, mobile summary and theme consistency.
 * ---------------------------------------------------------------------- */
.rdb-builder,
.rdb-builder button,
.rdb-builder input,
.rdb-builder select,
.rdb-builder textarea,
.rdb-builder table,
.rdb-builder a,
.rdb-cart-summary-details,
.rdb-cart-summary-details button,
.rdb-cart-summary-details input,
.rdb-cart-summary-details select {
	font-family: inherit;
}

.rdb-added-success__content {
	min-width: 0;
}

.rdb-added-success__actions {
	align-items: center;
	justify-content: space-between;
	width: 100%;
	margin-top: .75rem;
	padding-top: .75rem;
	border-top: 1px solid rgba(6, 118, 71, .22);
}

.rdb-added-success__actions .rdb-back,
.rdb-added-success__actions .rdb-continue {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	margin: 0;
	text-decoration: none;
}

.rdb-cart-summary-details__body {
	display: grid;
	gap: .4rem;
	padding: .75rem 0;
}

.rdb-cart-summary-details__body > div {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
}

/* WooCommerce Blocks prints slash separators inside each item-data value.
 * Builder metadata is intentionally one clean line per field. */
.rdb-block-item--garment .wc-block-components-product-details span[aria-hidden="true"],
.rdb-block-item--garment .wc-block-components-product-details__value + span[aria-hidden="true"] {
	display: none !important;
}

.rdb-block-item--garment .wc-block-components-product-details > span,
.rdb-block-item--garment .wc-block-components-product-details > span > span:not([aria-hidden="true"]) {
	display: block;
}

@media (max-width: 560px) {
	.rdb-wizard-step .rdb-step-body {
		padding: .85rem;
	}

	.rdb-final-price-table-wrap {
		overflow: visible;
	}

	.rdb-final-price-table {
		width: 100%;
		min-width: 0;
		table-layout: fixed;
		font-size: .72rem;
	}

	.rdb-final-price-table th,
	.rdb-final-price-table td {
		padding: .48rem .28rem;
		overflow-wrap: anywhere;
	}

	.rdb-final-price-table th:first-child,
	.rdb-final-price-table td:first-child {
		width: 30%;
	}

	.rdb-action-area {
		align-items: stretch;
		flex-direction: column;
	}

	.rdb-action-area .rdb-submit {
		width: 100%;
	}

	.rdb-added-success {
		grid-template-columns: 1fr;
	}

	.rdb-added-success__actions {
		flex-direction: row;
	}
}

/* -------------------------------------------------------------------------
 * 0.10.0-beta.10: warning states, theme palette and metadata alignment.
 * ---------------------------------------------------------------------- */
.rdb-builder,
body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.woocommerce-order-received {
	--rdb-panel: #fff;
}

.rdb-accordion-step,
.rdb-wizard-step,
.rdb-size-panel,
.rdb-location-card,
.rdb-artwork-box,
.rdb-price-summary,
.rdb-final-price-table-wrap,
.rdb-account-artwork {
	background: var(--rdb-panel, #fff);
}

.rdb-inline-notice.is-warning {
	margin: 1rem 0;
	padding: .85rem 1rem;
	border: 1px solid #f5cf76;
	border-color: color-mix(in srgb, var(--rdb-warning) 38%, #fff);
	border-left: 4px solid var(--rdb-warning);
	background: var(--rdb-warning-soft);
	color: var(--rdb-warning);
}

/* Classic WooCommerce metadata: label and value share one row. */
.rdb-cart-item .variation {
	grid-template-columns: minmax(90px, max-content) minmax(0, 1fr) !important;
	align-items: baseline;
}

.rdb-cart-item .variation dt {
	grid-column: 1;
}

.rdb-cart-item .variation dd {
	grid-column: 2;
}

.rdb-cart-item .variation dd p,
.rdb-cart-item .variation dd > :first-child {
	display: inline;
	margin: 0;
}

/* Cart/Checkout Blocks: one metadata field per row, but its label and value stay inline. */
.rdb-block-item--garment .wc-block-components-product-details > span {
	display: block;
}

.rdb-block-item--garment .wc-block-components-product-details > span > .wc-block-components-product-details__name,
.rdb-block-item--garment .wc-block-components-product-details > span > .wc-block-components-product-details__value,
.rdb-block-item--garment .wc-block-components-product-details > span > span:not([aria-hidden="true"]) {
	display: inline !important;
}

.rdb-account-production-files {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: .55rem;
}
