:root {
	--ppb-ink: #18334a;
	--ppb-muted: #637587;
	--ppb-blue: #45a8d8;
	--ppb-blue-soft: #eaf8ff;
	--ppb-orange: #f59a47;
	--ppb-orange-soft: #fff4e8;
	--ppb-green: #77b94f;
	--ppb-green-soft: #f0f9eb;
	--ppb-border: #dfe9ef;
	--ppb-white: #fff;
	--ppb-shadow: 0 14px 35px rgba(24, 51, 74, .09);
}

/* Xoo WSC: keep cart-item details compact without shrinking totals or checkout buttons. */
body .xoo-wsc-container .xoo-wsc-product .xoo-wsc-pname,
body .xoo-wsc-container .xoo-wsc-product .xoo-wsc-pname a {
	font-size: 14px !important;
	line-height: 1.4 !important;
}

body .xoo-wsc-container .xoo-wsc-product .variation,
body .xoo-wsc-container .xoo-wsc-product .variation dt,
body .xoo-wsc-container .xoo-wsc-product .variation dd,
body .xoo-wsc-container .xoo-wsc-product .variation p {
	font-size: 13px !important;
	line-height: 1.45 !important;
}

body .xoo-wsc-container .xoo-wsc-product .xoo-wsc-sml-qty,
body .xoo-wsc-container .xoo-wsc-product .xoo-wsc-priceBox,
body .xoo-wsc-container .xoo-wsc-product .xoo-wsc-pprice,
body .xoo-wsc-container .xoo-wsc-product .xoo-wsc-smr-ptotal,
body .xoo-wsc-container .xoo-wsc-product .xoo-wsc-smr-ptotal .amount {
	font-size: 14px !important;
	line-height: 1.4 !important;
}

/* Apply Heebo to every text control in the Xoo side cart while preserving its icon font. */
.xoo-wsc-container,
body .xoo-wsc-container {
	font-family: "Heebo", Arial, sans-serif !important;
}

body .xoo-wsc-container *:not([class*="xoo-wsc-icon"]) {
	font-family: "Heebo", Arial, sans-serif !important;
}

/* Xoo WSC: next PlayPlate tier prompts above cart products. */
.xoo-wsc-body > .ppb-xoo-upgrade {
	background: linear-gradient(135deg, #fffaf1 0%, #fff 58%, #f4fbff 100%);
	border: 1px solid rgba(15, 75, 101, .12);
	border-radius: 18px;
	box-shadow: 0 10px 30px rgba(30, 66, 81, .09);
	color: #173543;
	direction: rtl;
	flex: 0 0 auto;
	font-family: Heebo, Arial, sans-serif;
	margin: 12px 14px 10px;
	padding: 14px;
	text-align: right;
}

.ppb-xoo-upgrade__title {
	align-items: center;
	display: flex;
	font-size: 16px;
	gap: 7px;
	line-height: 1.3;
	margin-bottom: 10px;
}

.ppb-xoo-upgrade__title strong {
	font-weight: 700;
}

.ppb-xoo-upgrade__spark {
	font-size: 18px;
	line-height: 1;
}

.ppb-xoo-upgrade__message {
	align-items: center;
	background: rgba(255, 255, 255, .82);
	border: 1px solid rgba(15, 75, 101, .09);
	border-radius: 12px;
	display: flex;
	font-size: 13px;
	font-weight: 400;
	gap: 9px;
	line-height: 1.55;
	padding: 9px 10px;
}

.ppb-xoo-upgrade__message + .ppb-xoo-upgrade__message {
	margin-top: 7px;
}

.ppb-xoo-upgrade__message strong,
.ppb-xoo-upgrade__message .amount {
	color: #0f6681 !important;
	font-weight: 700;
}

.ppb-xoo-upgrade__icon {
	align-items: center;
	background: #eaf7fb;
	border-radius: 50%;
	color: #0f6681;
	display: inline-flex;
	flex: 0 0 30px;
	font-size: 16px;
	font-weight: 700;
	height: 30px;
	justify-content: center;
	line-height: 1;
	width: 30px;
}

.ppb-xoo-upgrade__message--cutlery .ppb-xoo-upgrade__icon {
	background: #fff1d9;
}

@media (max-width: 480px) {
	.xoo-wsc-body > .ppb-xoo-upgrade {
		border-radius: 15px;
		margin: 10px 10px 8px;
		padding: 12px;
	}

	.ppb-xoo-upgrade__title {
		font-size: 15px;
	}

	.ppb-xoo-upgrade__message {
		font-size: 12.5px;
		padding: 8px;
	}
}

.ppb-builder {
	font-family: inherit;
	color: var(--ppb-ink);
	margin: 28px 0;
	text-align: right;
}

.ppb-builder *,
.ppb-builder *::before,
.ppb-builder *::after {
	box-sizing: border-box;
}

.ppb-builder__heading {
	margin-bottom: 22px;
}

.ppb-builder__heading h3 {
	color: var(--ppb-ink);
	font-family: "Heebo", Arial, sans-serif;
	font-size: clamp(24px, 3vw, 34px);
	font-weight: 700;
	line-height: 1.18;
	margin: 5px 0 8px;
}

.ppb-builder__heading p {
	color: var(--ppb-muted);
	font-size: 16px;
	margin: 0;
}

.ppb-eyebrow {
	color: var(--ppb-orange);
	font-family: "Heebo", Arial, sans-serif;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: 0;
}

.ppb-design-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
}

.ppb-design-card {
	background: var(--ppb-white);
	border: 2px solid var(--ppb-border);
	border-radius: 20px;
	box-shadow: 0 5px 18px rgba(24, 51, 74, .04);
	overflow: hidden;
	transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.ppb-design-card:hover {
	border-color: #b8dce9;
	box-shadow: var(--ppb-shadow);
	transform: translateY(-2px);
}

.ppb-design-card.is-selected {
	border-color: var(--ppb-blue);
	box-shadow: 0 10px 28px rgba(69, 168, 216, .18);
}

.ppb-design-card__image {
	aspect-ratio: 1 / .84;
	background: #f8fbfd;
	overflow: hidden;
	position: relative;
}

.ppb-design-card__image img {
	display: block;
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.ppb-design-card__placeholder {
	align-content: center;
	background:
		radial-gradient(circle at 20% 15%, rgba(68, 174, 220, .18), transparent 34%),
		linear-gradient(145deg, #f9fcfd, #edf6fa);
	color: #557082;
	display: grid;
	gap: 6px;
	height: 100%;
	justify-items: center;
	text-align: center;
}

.ppb-design-card__placeholder span {
	font-size: 42px;
	filter: grayscale(.15);
	line-height: 1;
}

.ppb-design-card__placeholder small {
	font-size: 13px;
	font-weight: 800;
}

.ppb-design-card__badge {
	background: var(--ppb-blue);
	border-radius: 999px;
	color: #fff;
	font-family: "Heebo", Arial, sans-serif;
	font-size: 11px;
	font-weight: 400;
	opacity: 0;
	padding: 5px 9px;
	position: absolute;
	right: 9px;
	top: 9px;
	transform: translateY(-4px);
	transition: .2s ease;
}

.ppb-design-card.is-selected .ppb-design-card__badge {
	opacity: 1;
	transform: translateY(0);
}

.ppb-design-card__content {
	align-items: center;
	display: flex;
	gap: 10px;
	justify-content: space-between;
	padding: 15px;
}

.ppb-design-card__content strong {
	font-family: "Heebo", Arial, sans-serif;
	font-size: 18px;
	font-weight: 700;
}

.ppb-stepper {
	align-items: center;
	background: #fff;
	border: 2px solid #cbdce6;
	border-radius: 14px;
	display: inline-flex;
	direction: ltr;
	overflow: hidden;
}

.ppb-stepper__button {
	align-items: center;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--ppb-ink) !important;
	display: flex;
	flex: 0 0 44px;
	font-size: 26px !important;
	font-weight: 900 !important;
	height: 44px;
	justify-content: center;
	margin: 0 !important;
	min-height: 0 !important;
	padding: 0 !important;
	width: 44px;
}

.ppb-stepper__plus {
	background: var(--ppb-blue) !important;
	color: #fff !important;
}

.ppb-stepper__minus {
	background: #edf3f6 !important;
	color: #41586b !important;
}

.ppb-stepper__plus:hover {
	background: #278fbe !important;
	color: #fff !important;
}

.ppb-stepper__minus:hover {
	background: #dce8ee !important;
	color: var(--ppb-ink) !important;
}

.ppb-stepper__button:focus-visible,
.ppb-product-page form.cart .single_add_to_cart_button:focus-visible,
.ppb-choose-designs:focus-visible {
	outline: 3px solid rgba(48, 158, 207, .38) !important;
	outline-offset: 3px;
}

.ppb-stepper__value,
.ppb-extra-cutlery,
.ppb-total-packages {
	appearance: textfield;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	color: var(--ppb-ink) !important;
	font-size: 18px !important;
	font-weight: 900;
	flex: 0 0 42px;
	height: 44px !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: center;
	width: 42px !important;
}

.ppb-stepper__value::-webkit-inner-spin-button,
.ppb-extra-cutlery::-webkit-inner-spin-button,
.ppb-total-packages::-webkit-inner-spin-button {
	appearance: none;
}

.ppb-options {
	display: grid;
	gap: 12px;
	grid-template-columns: 1fr 1fr;
	margin-top: 18px;
}

.ppb-option-card {
	align-items: center;
	background: #fff;
	border: 1px solid var(--ppb-border);
	border-radius: 18px;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	padding: 16px;
}

.ppb-option-card > div {
	display: grid;
	gap: 2px;
}

.ppb-option-card__icon {
	font-size: 24px;
}

.ppb-option-card small,
.ppb-option-card label span,
.ppb-package-help {
	color: var(--ppb-muted);
	font-size: 12px;
}

.ppb-option-card label {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 6px;
	text-align: center;
}

.ppb-option-card label input {
	background: #f3f8fb !important;
	border: 1px solid var(--ppb-border) !important;
	border-radius: 10px !important;
	width: 64px !important;
}

.ppb-package-help {
	grid-column: 1 / -1;
	margin: 5px 0 0;
}

.ppb-option-card--gift {
	align-items: stretch;
	flex-direction: column;
	gap: 12px;
}

.ppb-option-card--gift > .ppb-option-card__header {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 7px;
}

.ppb-option-card--gift > .ppb-option-card__header small {
	margin-inline-start: auto;
}

.ppb-option-card--gift > label {
	align-items: center;
	flex-direction: row;
	justify-content: space-between;
	text-align: right;
	width: 100%;
}

.ppb-option-card--gift .ppb-package-help {
	margin-top: 0;
}

.ppb-package-notes {
	background: #fff;
	border: 1px solid var(--ppb-border);
	border-radius: 18px;
	display: grid;
	gap: 8px;
	grid-column: 1 / -1;
	padding: 16px;
}

.ppb-package-notes[hidden] {
	display: none;
}

.ppb-package-notes span {
	font-weight: 800;
}

.ppb-package-notes textarea {
	background: #f8fbfd;
	border: 1px solid var(--ppb-border);
	border-radius: 12px;
	min-height: 86px;
	padding: 12px;
	resize: vertical;
	width: 100%;
}

.ppb-messages {
	display: grid;
	gap: 8px;
	margin: 16px 0;
}

.ppb-message {
	border-radius: 12px;
	font-size: 14px;
	padding: 11px 13px;
}

.ppb-message[hidden] {
	display: none;
}

.ppb-message--saving {
	background: var(--ppb-green-soft);
	border: 1px solid #cce7bb;
	color: #39751f;
}

.ppb-message--next,
.ppb-message--cutlery {
	background: var(--ppb-orange-soft);
	border: 1px solid #ffd7b1;
	color: #9b551c;
}

.ppb-message--shipping {
	background: var(--ppb-blue-soft);
	border: 1px solid #bee5f7;
	color: #216c91;
}

.ppb-message--limit {
	background: #f6f0ff;
	border: 1px solid #ddc9ff;
	color: #67429a;
}

.ppb-summary {
	align-items: center;
	background: linear-gradient(135deg, #18334a, #245a77);
	border-radius: 20px;
	box-shadow: var(--ppb-shadow);
	color: #fff;
	display: flex;
	gap: 20px;
	justify-content: space-between;
	margin-top: 16px;
	padding: 18px 20px;
}

.ppb-summary__quantity,
.ppb-summary__price {
	display: grid;
	gap: 3px;
}

.ppb-summary span {
	color: rgba(255,255,255,.72);
	font-size: 12px;
}

.ppb-summary strong {
	color: #fff;
	font-size: 21px;
}

.ppb-summary__price {
	text-align: left;
}

.ppb-total-price {
	font-size: 28px !important;
}

.ppb-progress {
	background: rgba(255,255,255,.18);
	border-radius: 999px;
	height: 5px;
	margin-top: 5px;
	overflow: hidden;
	width: min(220px, 42vw);
}

.ppb-progress span {
	background: linear-gradient(90deg, var(--ppb-orange), #ffd15c);
	border-radius: inherit;
	display: block;
	height: 100%;
	transition: width .25s ease;
	width: 0;
}

.ppb-form-message {
	background: #fff0f0;
	border: 1px solid #f2b8b8;
	border-radius: 12px;
	color: #a12e2e;
	font-weight: 700;
	margin: 12px 0;
	padding: 12px;
}

.ppb-form-message.is-success {
	background: var(--ppb-green-soft);
	border-color: #cce7bb;
	color: #39751f;
}

.ppb-purchase-bar {
	align-items: center;
	background: #fff;
	border: 2px solid var(--ppb-border);
	border-radius: 22px;
	box-shadow: 0 18px 42px rgba(24, 51, 74, .13);
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(190px, .8fr) minmax(240px, 1.2fr);
	margin-top: 18px;
	padding: 18px;
}

.ppb-purchase-bar__details {
	display: grid;
	font-family: "Heebo", Arial, sans-serif;
	gap: 3px;
}

.ppb-purchase-bar__details > span {
	color: var(--ppb-muted);
	font-size: 13px;
	font-weight: 700;
}

.ppb-purchase-bar__details strong {
	color: var(--ppb-ink);
	font-size: 20px;
}

.ppb-purchase-bar__details small {
	color: var(--ppb-muted);
	font-size: 12px;
}

.ppb-add-to-cart-slot {
	width: 100%;
}

.ppb-product-page form.cart .single_add_to_cart_button {
	background: linear-gradient(135deg, var(--ppb-orange), #f7b14b) !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: 0 10px 22px rgba(245, 154, 71, .26) !important;
	color: #fff !important;
	font-size: 17px !important;
	font-weight: 800 !important;
	min-height: 58px;
	padding: 12px 28px !important;
	transition: transform .2s ease, box-shadow .2s ease;
	width: 100%;
}

.ppb-product-page form.cart .single_add_to_cart_button:hover {
	box-shadow: 0 13px 27px rgba(245, 154, 71, .34) !important;
	transform: translateY(-1px);
}

.ppb-product-page form.cart .single_add_to_cart_button.disabled {
	cursor: not-allowed;
	filter: grayscale(.35);
	opacity: .55;
}

.ppb-choose-designs {
	background: linear-gradient(135deg, var(--ppb-orange), #f7b14b) !important;
	border: 0 !important;
	border-radius: 999px !important;
	box-shadow: 0 8px 18px rgba(245, 154, 71, .22);
	color: #fff !important;
	font-weight: 800 !important;
	padding: 11px 22px !important;
}

.ppb-from-price {
	color: var(--ppb-ink);
	font-weight: 800;
}

.ppb-shipping-notice-wrap {
	margin: 10px 0 14px;
}

.ppb-shipping-notice {
	background: var(--ppb-blue-soft);
	border: 1px solid #bee5f7;
	border-radius: 12px;
	color: #216c91;
	font-size: 13px;
	padding: 10px 12px;
	text-align: right;
}

.ppb-shipping-notice__bar {
	background: #d7edf7;
	border-radius: 999px;
	height: 5px;
	margin-top: 8px;
	overflow: hidden;
}

.ppb-shipping-notice__bar span {
	background: linear-gradient(90deg, var(--ppb-blue), var(--ppb-green));
	display: block;
	height: 100%;
}

.woocommerce-mini-cart-item .variation,
.woocommerce-cart-form .variation {
	background: #f7fafc;
	border-radius: 10px;
	display: grid;
	font-size: 12px;
	gap: 3px;
	margin-top: 7px;
	padding: 8px 10px;
}

.woocommerce-mini-cart-item .variation dt,
.woocommerce-mini-cart-item .variation dd,
.woocommerce-cart-form .variation dt,
.woocommerce-cart-form .variation dd {
	margin: 0;
	padding: 0;
}

@media (max-width: 820px) {
	.ppb-design-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ppb-options {
		grid-template-columns: 1fr;
	}

	.ppb-package-notes {
		grid-column: 1;
	}

	.ppb-purchase-bar {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 480px) {
	.ppb-design-grid {
		gap: 10px;
	}

	.ppb-design-card {
		border-radius: 15px;
	}

	.ppb-design-card__content {
		align-items: stretch;
		flex-direction: column;
		gap: 8px;
		padding: 10px;
	}

	.ppb-stepper {
		justify-content: space-between;
		width: 100%;
	}

	.ppb-stepper__button {
		flex-basis: 38px;
		font-size: 22px !important;
		height: 38px;
		width: 38px;
	}

	.ppb-stepper__value {
		flex-basis: 34px;
		height: 38px !important;
		width: 34px !important;
	}

	.ppb-option-card {
		align-items: stretch;
		flex-direction: column;
	}

	.ppb-option-card label {
		align-items: center;
		flex-direction: row;
		justify-content: space-between;
		text-align: right;
	}

	.ppb-summary {
		align-items: stretch;
		flex-direction: column;
	}

	.ppb-summary__price {
		border-top: 1px solid rgba(255,255,255,.15);
		padding-top: 12px;
		text-align: right;
	}

	.ppb-progress {
		width: 100%;
	}

	.ppb-purchase-bar {
		border-radius: 18px;
		padding: 14px;
	}
}


/* PlayPlate product builder: make model cards feel interactive. */
body.postid-8850.ppb-product-page .ppb-design-card {
    position: relative;
    border: 2px solid transparent !important;
    background: linear-gradient(#fff, #fff) padding-box,
        linear-gradient(120deg, #f48667, #ffce5d, #8bc53f, #42c8c1, #9460ae, #f48667) border-box !important;
    background-size: 100% 100%, 320% 320% !important;
    box-shadow: 0 10px 24px rgba(24, 51, 74, .13) !important;
    transition: transform .25s ease, box-shadow .25s ease, filter .25s ease !important;
    animation: ppb-model-rainbow-border 7s ease infinite;
}

body.postid-8850.ppb-product-page .ppb-design-card:hover,
body.postid-8850.ppb-product-page .ppb-design-card:focus-within {
    transform: translateY(-8px) scale(1.025) !important;
    box-shadow: 0 17px 32px rgba(24, 51, 74, .22), 0 0 0 4px rgba(255, 206, 93, .22) !important;
    filter: saturate(1.08);
}

body.postid-8850.ppb-product-page .ppb-design-card.is-selected {
    box-shadow: 0 14px 30px rgba(139, 197, 63, .28), 0 0 0 4px rgba(139, 197, 63, .24) !important;
    animation: ppb-model-rainbow-border 7s ease infinite, ppb-model-selected-glow 2.2s ease-in-out infinite;
}

body.postid-8850.ppb-product-page .ppb-design-card .ppb-design-card__badge {
    background: linear-gradient(135deg, #8bc53f, #42c8c1) !important;
    color: #fff !important;
    box-shadow: 0 5px 12px rgba(60, 167, 132, .35) !important;
    font-weight: 800 !important;
}

body.postid-8850.ppb-product-page .pp-model-info-trigger {
    right: 10px !important;
    left: auto !important;
    bottom: 10px !important;
    width: auto !important;
    padding: 8px 12px !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #9460ae, #f48667) !important;
    color: #fff !important;
    box-shadow: 0 5px 14px rgba(115, 73, 142, .32) !important;
    font-family: Heebo, Arial, sans-serif !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    transition: transform .2s ease, box-shadow .2s ease !important;
}

body.postid-8850.ppb-product-page .pp-model-info-trigger:hover,
body.postid-8850.ppb-product-page .pp-model-info-trigger:focus-visible {
    transform: translateY(-2px) scale(1.04) !important;
    box-shadow: 0 8px 17px rgba(115, 73, 142, .42) !important;
}

body.postid-8850.ppb-product-page .ppb-stepper {
    overflow: hidden;
    border: 2px solid #e5eef2 !important;
    border-radius: 11px !important;
    box-shadow: 0 4px 10px rgba(67, 87, 107, .08);
}

body.postid-8850.ppb-product-page .ppb-stepper__button {
    width: 40px !important;
    height: 40px !important;
    color: #fff !important;
    font-size: 26px !important;
    font-weight: 800 !important;
    transition: transform .18s ease, filter .18s ease !important;
}

body.postid-8850.ppb-product-page .ppb-stepper__minus {
    background: linear-gradient(135deg, #f48667, #f6a34d) !important;
}

body.postid-8850.ppb-product-page .ppb-stepper__plus {
    background: linear-gradient(135deg, #8bc53f, #42c8c1) !important;
}

body.postid-8850.ppb-product-page .ppb-stepper__button:hover,
body.postid-8850.ppb-product-page .ppb-stepper__button:focus-visible {
    filter: brightness(1.08) saturate(1.12);
    transform: scale(1.08);
}

body.postid-8850.ppb-product-page .ppb-stepper__value {
    font-weight: 900 !important;
    color: #43576b !important;
    background: #fffdf8 !important;
}

@keyframes ppb-model-rainbow-border {
    0%, 100% { background-position: 0 0, 0% 50%; }
    50% { background-position: 0 0, 100% 50%; }
}

@keyframes ppb-model-selected-glow {
    0%, 100% { box-shadow: 0 14px 30px rgba(139, 197, 63, .28), 0 0 0 4px rgba(139, 197, 63, .24); }
    50% { box-shadow: 0 17px 34px rgba(66, 200, 193, .32), 0 0 0 6px rgba(255, 206, 93, .28); }
}

@media (prefers-reduced-motion: reduce) {
    body.postid-8850.ppb-product-page .ppb-design-card { animation: none !important; }
}


/* Keep the model-information action subtle; no coloured overlay on design images. */
body.postid-8850.ppb-product-page .pp-model-info-trigger {
    right: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    width: auto !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #cc3366 !important;
    box-shadow: none !important;
}

body.postid-8850.ppb-product-page .pp-model-info-trigger:hover,
body.postid-8850.ppb-product-page .pp-model-info-trigger:focus-visible {
    transform: none !important;
    box-shadow: none !important;
}


/* Keep quantity controls centred and fully visible. */
body.postid-8850.ppb-product-page .ppb-stepper__button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    line-height: 1 !important;
    transform: none !important;
}

body.postid-8850.ppb-product-page .ppb-stepper__button:hover,
body.postid-8850.ppb-product-page .ppb-stepper__button:focus-visible {
    transform: none !important;
}


/* A clearly visible moving colour ring around each design. */
@keyframes ppb-model-border-orbit {
    to { transform: rotate(360deg); }
}

body.postid-8850.ppb-product-page .ppb-design-card {
    isolation: isolate;
    overflow: hidden !important;
}

body.postid-8850.ppb-product-page .ppb-design-card::before {
    content: "";
    position: absolute;
    z-index: 5;
    inset: 0;
    padding: 3px;
    border-radius: inherit;
    pointer-events: none;
    background: conic-gradient(
        from 0deg,
        #f48667,
        #ffce5d,
        #8bc53f,
        #42c8c1,
        #9460ae,
        #f48667
    );
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: ppb-model-border-orbit 3.2s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
    body.postid-8850.ppb-product-page .ppb-design-card::before {
        animation: none;
    }
}


/* The moving colour is the card border itself, with no overlay layer. */
@keyframes ppb-model-border-run {
    from { background-position: 0 0, 0% 50%; }
    to { background-position: 0 0, 300% 50%; }
}

body.postid-8850.ppb-product-page .ppb-design-card,
body.postid-8850.ppb-product-page .ppb-design-card.is-selected {
    border: 3px solid transparent !important;
    background:
        linear-gradient(#fff, #fff) padding-box,
        linear-gradient(
            90deg,
            #f48667 0%,
            #ffce5d 18%,
            #8bc53f 36%,
            #42c8c1 54%,
            #9460ae 72%,
            #f48667 100%
        ) border-box !important;
    background-size: 100% 100%, 300% 100% !important;
    animation: ppb-model-border-run 2.8s linear infinite !important;
}

body.postid-8850.ppb-product-page .ppb-design-card::before {
    content: none !important;
    animation: none !important;
}

@media (prefers-reduced-motion: reduce) {
    body.postid-8850.ppb-product-page .ppb-design-card,
    body.postid-8850.ppb-product-page .ppb-design-card.is-selected {
        animation: none !important;
    }
}


/* Keep every quantity control within the stepper grid. */
body.postid-8850.ppb-product-page .ppb-stepper {
    display: grid !important;
    grid-template-columns: 40px 44px 40px !important;
    width: 128px !important;
    height: 44px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

body.postid-8850.ppb-product-page .ppb-stepper__button {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    box-sizing: border-box !important;
}

body.postid-8850.ppb-product-page .ppb-stepper__value {
    width: 44px !important;
    min-width: 0 !important;
    height: 40px !important;
    box-sizing: border-box !important;
}

/* Animate the colour inside the actual card border. */
@property --ppb-border-offset {
    syntax: "<percentage>";
    inherits: false;
    initial-value: 0%;
}

@keyframes ppb-model-border-run {
    from { --ppb-border-offset: 0%; }
    to { --ppb-border-offset: 100%; }
}

body.postid-8850.ppb-product-page .ppb-design-card,
body.postid-8850.ppb-product-page .ppb-design-card.is-selected {
    --ppb-border-offset: 0%;
    background-position: 0 0, var(--ppb-border-offset) 50% !important;
}


/* Match the flex width to the three quantity-control columns. */
body.postid-8850.ppb-product-page .ppb-stepper {
    flex: 0 0 128px !important;
}


/* On phones, use the same balanced card layout as desktop. */
@media (max-width: 480px) {
    body.postid-8850.ppb-product-page .ppb-design-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }

    body.postid-8850.ppb-product-page .ppb-design-card {
        border-radius: 20px !important;
    }

    body.postid-8850.ppb-product-page .ppb-design-card__content {
        align-items: center !important;
        flex-direction: row !important;
        gap: 10px !important;
        justify-content: space-between !important;
        padding: 15px !important;
    }

    body.postid-8850.ppb-product-page .ppb-design-card__content strong {
        font-size: 18px !important;
    }

    body.postid-8850.ppb-product-page .ppb-stepper {
        flex: 0 0 128px !important;
        width: 128px !important;
    }
}


/* Keep two designs per row on phones while keeping the controls compact. */
@media (max-width: 480px) {
    body.postid-8850.ppb-product-page .ppb-design-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    body.postid-8850.ppb-product-page .ppb-design-card__content {
        align-items: center !important;
        flex-direction: column !important;
        gap: 8px !important;
        padding: 10px !important;
    }

    body.postid-8850.ppb-product-page .ppb-design-card__content strong {
        font-size: 16px !important;
        line-height: 1.2 !important;
        text-align: center;
    }

    body.postid-8850.ppb-product-page .ppb-stepper {
        grid-template-columns: 36px 40px 36px !important;
        flex: 0 0 116px !important;
        width: 116px !important;
        height: 40px !important;
    }

    body.postid-8850.ppb-product-page .ppb-stepper__button {
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        font-size: 24px !important;
    }

    body.postid-8850.ppb-product-page .ppb-stepper__value {
        width: 40px !important;
        height: 36px !important;
        font-size: 17px !important;
    }
}


/* Let the mobile quantity control fit any two-column card without clipping. */
@media (max-width: 480px) {
    body.postid-8850.ppb-product-page .ppb-stepper {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr) !important;
        width: min(116px, 100%) !important;
        max-width: 100% !important;
        min-width: 0 !important;
        flex: 0 1 116px !important;
        height: 40px !important;
        padding: 0 !important;
        overflow: hidden !important;
    }

    body.postid-8850.ppb-product-page .ppb-stepper__button {
        width: 100% !important;
        min-width: 0 !important;
        height: 36px !important;
        min-height: 36px !important;
        padding: 0 !important;
        line-height: 1 !important;
    }

    body.postid-8850.ppb-product-page .ppb-stepper__value {
        width: 40px !important;
        min-width: 40px !important;
        height: 36px !important;
        padding: 0 !important;
        line-height: 36px !important;
    }
}


/* Keep the animated card edge delicate when two cards share a phone row. */
@media (max-width: 480px) {
    body.postid-8850.ppb-product-page .ppb-design-card,
    body.postid-8850.ppb-product-page .ppb-design-card.is-selected {
        border-width: 2px !important;
        border-radius: 15px !important;
    }
}


/* In a phone card the flex axis is vertical, so never use a fixed flex-basis. */
@media (max-width: 480px) {
    body.postid-8850.ppb-product-page .ppb-stepper {
        flex: 0 0 auto !important;
        align-self: center !important;
        height: 40px !important;
        min-height: 40px !important;
        max-height: 40px !important;
    }
}


/* In a phone card the flex axis is vertical, so never use a fixed flex-basis. */
@media (max-width: 480px) {
    body.postid-8850.ppb-product-page .ppb-stepper {
        flex: 0 0 auto !important;
        align-self: center !important;
        height: 40px !important;
        min-height: 40px !important;
        max-height: 40px !important;
    }
}
