.sp-personalization {
	margin: 1rem 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.sp-personalization [hidden] {
	display: none !important;
}

.sp-personalization > h2 {
	margin: 0 0 .2rem;
	font-size: 1.08rem;
}

.sp-personalization > p {
	margin: 0 0 .75rem;
	font-size: .88rem;
	color: var(--gray-600, #5d6470);
}

.sp-personalization__items {
	display: grid;
	gap: .7rem;
}

.sp-personalization__set {
	display: grid;
	gap: .45rem;
	min-width: 0;
	margin: .75rem 0;
	padding: .75rem;
	border: 1px solid var(--gray-200, #e1e4e8);
	border-radius: 12px;
	background: var(--gray-50, #f7f8fa);
}

.sp-personalization__set-heading {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: .5rem;
	font-size: .8rem;
}

.sp-personalization__set-price {
	display: flex;
	justify-content: space-between;
	gap: .5rem;
	font-size: .8rem;
}

.sp-personalization__set progress {
	width: 100%;
	height: .45rem;
	accent-color: var(--purple-600, #6548d3);
}

.sp-personalization__set-designs {
	display: flex;
	gap: .45rem;
	max-width: 100%;
	overflow-x: auto;
	padding: .15rem 0 .25rem;
}

.sp-personalization__set-design-tab {
	position: relative;
	flex: 0 0 auto;
}

.sp-personalization__set-design {
	display: grid;
	flex: 0 0 auto;
	gap: .1rem;
	min-width: 108px;
	max-width: 180px;
	padding: .45rem .6rem;
	border: 1px solid var(--gray-300, #c9ced6);
	border-radius: 9px;
	background: var(--white, #fff);
	color: inherit;
	text-align: left;
	cursor: pointer;
}

.sp-personalization__set-design-tab.has-remove .sp-personalization__set-design {
	min-width: 150px;
	padding-right: 2.3rem;
}

.sp-personalization__set-design-remove {
	position: absolute;
	top: 50%;
	right: .28rem;
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	padding: 0;
	transform: translateY(-50%);
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--gray-700, #3f4650);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
}

.sp-personalization__set-design-remove:hover {
	background: var(--gray-200, #e1e4e8);
}

.sp-personalization__set-design-remove:focus-visible {
	outline: 3px solid var(--purple-600, #6548d3);
	outline-offset: 1px;
}

.sp-personalization__set-design[aria-pressed="true"] {
	border-color: var(--purple-600, #6548d3);
	box-shadow: inset 0 0 0 1px var(--purple-600, #6548d3);
}

.sp-personalization__set-design:focus-visible {
	outline: 3px solid var(--purple-600, #6548d3);
	outline-offset: 2px;
}

.sp-personalization__set-design span {
	font-size: .7rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.sp-personalization-form--set .woocommerce-variation-price,
.sp-personalization-form--set .woocommerce-variation-add-to-cart > .quantity,
.sp-personalization-form--set .woocommerce-variation-add-to-cart > .sp-qty__subtotal {
	display: none !important;
}

.sp-personalization-form--summary-variations > table.variations {
	display: none !important;
}

.sp-personalization__finish-toast {
	position: fixed;
	z-index: 10050;
	bottom: max(24px, env(safe-area-inset-bottom));
	left: 50%;
	box-sizing: border-box;
	width: min(420px, calc(100vw - 32px));
	padding: .85rem 1rem;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 12px 32px rgba(25, 21, 16, .2);
	color: #191510;
	font-size: .9rem;
	font-weight: 600;
	line-height: 1.4;
	text-align: center;
	transform: translateX(-50%);
}

.sp-personalization__finish-toast[hidden] {
	display: none;
}

.sp-personalization__finish-dialog {
	box-sizing: border-box;
	width: min(430px, calc(100vw - 32px));
	max-width: none;
	max-height: calc(100dvh - 32px);
	padding: 1.25rem;
	border: 1px solid var(--border-default, #d7d0c4);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 20px 60px rgba(25, 21, 16, .24);
	color: #191510;
}

.sp-personalization__finish-dialog::backdrop {
	background: rgba(25, 21, 16, .48);
}

.sp-personalization__finish-dialog h2 {
	margin: 0 0 .5rem;
	font-size: 1.15rem;
}

.sp-personalization__finish-dialog p {
	margin: 0;
	line-height: 1.5;
}

.sp-personalization__finish-dialog-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem;
	margin-top: 1.25rem;
}

.sp-personalization__finish-dialog-actions button {
	min-height: 44px;
	padding: .6rem 1rem;
	border: 1px solid var(--border-default, #d7d0c4);
	border-radius: 999px;
	background: #fff;
	color: #191510;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.sp-personalization__finish-dialog-actions button:last-child {
	border-color: #191510;
	background: #191510;
	color: #fff;
}

.sp-personalization__finish-dialog-actions button:focus-visible {
	outline: 3px solid var(--purple-600, #6548d3);
	outline-offset: 2px;
}

.sp-personalization-form--set [data-sp-finish-hint] {
	position: relative;
}

.sp-personalization-form--set button[data-sp-finish-hint] {
	cursor: pointer !important;
}

.sp-personalization-form--set .sp-personalization__field--quantity[data-sp-finish-hint],
.sp-personalization-form--set .sp-personalization__field--quantity[data-sp-finish-hint] input:disabled {
	cursor: help;
}

.sp-personalization-form--set .sp-personalization__field--quantity[data-sp-finish-hint] input:disabled {
	pointer-events: none;
}

.sp-personalization-form--set .sp-personalization__field--quantity[data-sp-finish-hint]:focus-visible {
	outline: 3px solid var(--purple-600, #6548d3);
	outline-offset: 3px;
}

.sp-personalization-form--set [data-sp-finish-hint]:hover::after,
.sp-personalization-form--set [data-sp-finish-hint]:focus-visible::after {
	position: absolute;
	z-index: 10;
	bottom: calc(100% + 8px);
	left: 50%;
	box-sizing: border-box;
	width: max-content;
	max-width: min(260px, calc(100vw - 32px));
	padding: .55rem .7rem;
	border-radius: 8px;
	background: #191510;
	box-shadow: 0 6px 18px rgba(25, 21, 16, .16);
	color: #fff;
	content: attr(data-sp-finish-hint);
	font-size: .75rem;
	font-weight: 500;
	line-height: 1.35;
	text-align: center;
	white-space: normal;
	transform: translateX(-50%);
	pointer-events: none;
}

.sp-personalization__set-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-top: .65rem;
}

.sp-personalization__item {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: .7rem;
	margin: 0;
	padding: .8rem;
	border: 1px solid var(--gray-200, #e1e4e8);
	border-radius: 12px;
	background: var(--gray-25, #fff);
}

.sp-personalization__item legend {
	padding: 0 .35rem;
	font-size: .84rem;
	font-weight: 750;
	color: var(--gray-700, #3f4650);
}

.sp-personalization:not([data-sp-has-multiple="true"]) .sp-personalization__item legend {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.sp-personalization[data-sp-set-size] .sp-personalization__item legend {
	position: static;
	width: auto;
	height: auto;
	margin: 0;
	padding: 0 .35rem;
	overflow: visible;
	clip: auto;
	white-space: normal;
}

.sp-personalization__field {
	display: grid;
	grid-column: 1 / -1;
	align-content: start;
	gap: .28rem;
	min-width: 0;
}

.sp-personalization__field-copy {
	display: grid;
	align-content: start;
	gap: .18rem;
}

.sp-personalization__field--quantity {
	grid-column: 1 / -1;
}

.sp-personalization__field label {
	font-size: .82rem;
	font-weight: 700;
	color: var(--gray-800, #292f38);
}

.sp-personalization__field p {
	margin: 0;
	font-size: .75rem;
	color: var(--gray-600, #5d6470);
}

.sp-personalization__field input,
.sp-personalization__field select {
	box-sizing: border-box;
	width: 100%;
	min-height: 42px;
	padding: .55rem .65rem;
	font: inherit;
}

.sp-personalization__native-select {
	display: none;
}

.sp-personalization__picker {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(76px, 1fr));
	gap: .4rem;
	min-width: 0;
}

.sp-personalization__option {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-items: center;
	gap: .25rem;
	min-width: 0;
	min-height: 62px;
	padding: .38rem;
	border: 1px solid var(--gray-200, #d9dde3);
	border-radius: 9px;
	background: var(--white, #fff);
	color: inherit;
	cursor: pointer;
}

.sp-personalization__option:hover {
	border-color: var(--gray-500, #757b84);
	background: var(--gray-50, #f7f8fa);
}

.sp-personalization__option:focus-visible {
	outline: 3px solid #cec3ff;
	outline: 3px solid color-mix(in srgb, var(--purple-500, #6548d3) 30%, transparent);
	outline-offset: 2px;
}

.sp-personalization__option[aria-pressed="true"] {
	border-color: var(--purple-600, #6548d3);
	background: color-mix(in srgb, var(--purple-500, #6548d3) 5%, white);
	box-shadow: 0 0 0 2px rgb(101 72 211 / 16%);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--purple-500, #6548d3) 16%, transparent);
}

.sp-personalization__option-visual {
	display: grid;
	place-items: center;
	width: 100%;
	height: 32px;
}

.sp-personalization__option-visual img {
	display: block;
	width: 34px;
	height: 34px;
	object-fit: contain;
}

.sp-personalization__option-label {
	min-width: 0;
	font-size: .68rem;
	font-weight: 680;
	line-height: 1.15;
	text-align: center;
	overflow-wrap: anywhere;
}

.sp-personalization__preview {
	grid-column: 1 / -1;
	display: grid;
	gap: .35rem;
	padding: .6rem;
	border-radius: 10px;
	background: var(--gray-50, #f7f8fa);
}

.sp-personalization__preview-title {
	margin: 0;
	font-size: .72rem;
	font-weight: 700;
	color: var(--gray-700, #3f4650);
}

.sp-personalization__preview-canvas {
	width: min(100%, 540px);
	min-height: 62px;
	box-shadow: 0 6px 16px rgb(31 24 56 / 10%), inset 0 0 0 1px rgb(31 24 56 / 9%);
}

.sp-personalization__footer {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	padding-top: .7rem;
	border-top: 1px solid var(--gray-200, #e1e4e8);
}

.sp-personalization__summary {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0;
	background: transparent;
	font-size: .76rem;
	line-height: 1.35;
	color: var(--gray-700, #3f4650);
}

.sp-personalization__actions {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex: 0 0 auto;
	gap: .4rem;
}

.sp-personalization__actions .button,
.sp-personalization__set-actions .button,
.sp-personalization__add.button {
	min-height: 36px;
	padding: .52rem .75rem;
	border: 1px solid var(--gray-300, #c9ced6) !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--gray-800, #292f38) !important;
	font-size: .76rem;
	line-height: 1;
}

.sp-personalization__actions .button:hover,
.sp-personalization__set-actions .button:hover,
.sp-personalization__add.button:hover {
	border-color: var(--gray-600, #5d6470) !important;
	background: var(--gray-50, #f7f8fa) !important;
}

.sp-personalization__add {
	margin-top: .75rem !important;
}

.sp-personalization__set-actions .sp-personalization__add {
	margin-top: 0 !important;
}

.sp-personalization-form--set .single_add_to_cart_button:disabled {
	opacity: .55;
	cursor: not-allowed;
}

.sp-personalization-form > .quantity,
.sp-personalization-form > .sp-qty__subtotal {
	display: none !important;
}

.sp-personalization-form > .single_add_to_cart_button.button.alt {
	width: 100%;
	min-height: 50px;
	margin-top: .7rem;
	padding: .85rem 1.2rem;
	font-size: 1rem;
}

.sp-personalization__cart-note {
	clear: both;
	box-sizing: border-box;
	width: 100%;
	margin: .55rem 0 0;
	font-size: .75rem;
	line-height: 1.4;
	text-align: center;
	color: var(--gray-600, #5d6470);
}

.sp-personalization-cart-preview {
	display: grid;
	place-items: center;
	box-sizing: border-box;
	min-width: 0;
}

[data-sp-preview-template-content] {
	display: none !important;
}

.sp-personalization-cart-preview .sp-personalization-handoff__preview {
	width: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	text-align: center;
}

.sp-personalization-cart-preview .sp-personalization-handoff__preview figcaption {
	display: none;
}

.sp-personalization-cart-preview img {
	filter: drop-shadow(0 1px 2px rgb(23 19 13 / 14%)) drop-shadow(0 5px 9px rgb(23 19 13 / 14%));
}

.sp-personalization-cart-preview--thumbnail {
	width: 100%;
	min-width: 64px;
	cursor: zoom-in;
}

.sp-personalization-cart-preview--dialog {
	width: min(720px, 80vw);
	padding: clamp(.75rem, 2.5vw, 1.5rem);
	border-radius: 14px;
	background: transparent;
}

.sp-personalization-set-preview {
	display: grid;
	gap: .65rem;
	width: 100%;
}

.sp-personalization-set-preview__design {
	display: grid;
	gap: .25rem;
	min-width: 0;
}

.sp-personalization-set-preview__design > span {
	font-size: .75rem;
	font-weight: 700;
}

.sp-personalization-cart-preview--thumbnail .sp-personalization-set-preview__design:not(:first-child),
.sp-personalization-cart-preview--thumbnail .sp-personalization-set-preview__design > span {
	display: none;
}

@media (max-width: 640px) {
	.sp-personalization__finish-toast {
		bottom: calc(80px + env(safe-area-inset-bottom));
	}

	.sp-personalization__items {
		grid-template-columns: minmax(0, 1fr);
	}

	.sp-personalization__item {
		grid-template-columns: repeat(6, minmax(0, 1fr));
		padding: .68rem;
	}

	.sp-personalization__field--quantity {
		grid-column: 1 / -1;
	}

	.sp-personalization__footer {
		align-items: flex-start;
		flex-direction: column;
	}

	.sp-personalization__actions {
		width: 100%;
		justify-content: flex-end;
	}

	.sp-personalization__preview-canvas {
		min-height: 58px;
	}
}
