.s24-product-facts {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	gap: 0.5rem 1.25rem;
	margin: 0 0 1.5rem;
	padding: 1.1rem 1.2rem;
	border: 1px solid rgba(34, 34, 34, 0.12);
	border-radius: 6px;
	background: rgba(250, 248, 244, 0.72);
}

.s24-product-facts dt {
	font-weight: 600;
	color: #2b2927;
}

.s24-product-facts dd {
	margin: 0;
	color: #514d49;
}

.s24-production-notice {
	margin: 0 0 1.35rem;
	padding: 0.9rem 1rem;
	border: 1px solid rgba(47, 112, 73, 0.2);
	border-radius: 6px;
	background: rgba(239, 247, 241, 0.72);
	color: #3f4b43;
}

.s24-production-notice p {
	margin: 0;
	font-size: 0.92rem;
	line-height: 1.55;
}

.s24-production-notice__status {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin-bottom: 0.2rem !important;
	font-weight: 700;
	color: #245b38;
}

.s24-production-notice__status span {
	width: 0.58rem;
	height: 0.58rem;
	flex: 0 0 auto;
	border-radius: 50%;
	background: #3f8a59;
	box-shadow: 0 0 0 3px rgba(63, 138, 89, 0.12);
}

.woocommerce div.product form.cart .variations tr.s24-material-picker-row {
	display: block;
	margin: 0 0 1rem;
}

.woocommerce div.product form.cart .variations tr.s24-material-picker-row th.label,
.woocommerce div.product form.cart .variations tr.s24-material-picker-row td.value {
	display: block;
	width: 100%;
	padding: 0;
	border: 0;
	text-align: left;
}

.woocommerce div.product form.cart .variations tr.s24-material-picker-row th.label {
	margin-bottom: 0.55rem;
}

.woocommerce div.product form.cart .variations tr.s24-material-picker-row th.label label {
	display: block;
	margin: 0;
	color: #2b2927;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.65;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.s24-material-picker__native {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.woocommerce div.product form.cart:has(.s24-ring-size) {
	--s24-ring-field-gap: 2rem;
}

.woocommerce div.product form.cart:has(.s24-ring-size) .variations {
	margin-bottom: var(--s24-ring-field-gap);
}

.woocommerce div.product form.cart:has(.s24-ring-size) .variations tr.s24-material-picker-row {
	margin-bottom: 0;
}

.woocommerce div.product form.cart:has(.s24-ring-size) .single_variation {
	margin-bottom: var(--s24-ring-field-gap);
}

.woocommerce div.product form.cart:has(.s24-ring-size) .woocommerce-variation-add-to-cart {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.woocommerce div.product form.cart:has(.s24-ring-size) .quantity {
	margin: 0;
}

.woocommerce div.product form.cart:has(.s24-ring-size) .quantity .qty {
	min-height: 52px;
	border-radius: 5px;
}

.woocommerce div.product form.cart:has(.s24-ring-size) .single_add_to_cart_button {
	min-height: 52px;
	padding: 0.65rem 1.4rem;
	border: 1px solid #0d1016;
	border-radius: 5px;
	background: #0d1016;
	color: #fff;
	font: inherit;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.woocommerce div.product form.cart:has(.s24-ring-size) .single_add_to_cart_button:hover {
	background: #25282f;
}

.woocommerce div.product form.cart:has(.s24-ring-size) .single_add_to_cart_button:focus-visible {
	outline: 2px solid #9b7b43;
	outline-offset: 3px;
}

.woocommerce div.product form.cart .s24-ring-size {
	margin: 0 0 var(--s24-ring-field-gap, 2rem);
}

.s24-ring-size > label,
.s24-ring-total__label {
	display: block;
	margin-bottom: 0.55rem;
	color: #2b2927;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.65;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.s24-ring-total,
.s24-ring-total > .price {
	display: block;
	margin: 0;
}

.woocommerce div.product form.cart .s24-ring-size select:not(.s24-material-picker__native) {
	width: 100%;
	max-width: 430px;
	min-height: 52px;
	padding: 0.65rem 0.9rem;
	border: 1px solid rgba(34, 34, 34, 0.16);
	border-radius: 5px;
	background: #fff;
	font: inherit;
}

.woocommerce div.product form.cart .s24-size-picker .s24-material-picker__toggle,
.woocommerce div.product form.cart .s24-size-picker .s24-material-picker__option {
	grid-template-columns: minmax(0, 1fr) 1rem;
}

.s24-size-picker .s24-material-picker__options {
	max-height: min(18rem, 50vh);
	overflow-y: auto;
	overscroll-behavior: contain;
}

.s24-material-picker {
	position: relative;
	width: 100%;
	max-width: 430px;
	color: #2b2927;
}

.s24-material-picker__toggle,
.s24-material-picker__option {
	font: inherit;
	color: inherit;
}

.woocommerce div.product form.cart .s24-material-picker__toggle {
	display: grid;
	grid-template-columns: 1.25rem minmax(0, 1fr) 1rem;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	min-height: 52px;
	padding: 0.65rem 0.9rem;
	border: 1px solid rgba(34, 34, 34, 0.16);
	border-radius: 5px;
	background: #fff;
	box-shadow: none;
	text-align: left;
	cursor: pointer;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.woocommerce div.product form.cart .s24-material-picker__toggle:hover,
.woocommerce div.product form.cart .s24-material-picker__toggle:focus-visible,
.s24-material-picker.is-open .s24-material-picker__toggle {
	border-color: #9b7b43;
	box-shadow: 0 0 0 2px rgba(155, 123, 67, 0.12);
	outline: none;
}

.s24-material-picker__selected,
.s24-material-picker__option-label {
	min-width: 0;
	font-size: 0.95rem;
	line-height: 1.35;
}

.s24-material-picker__swatch {
	display: inline-block;
	width: 1.15rem;
	height: 1.15rem;
	border: 1px solid rgba(34, 34, 34, 0.08);
	border-radius: 50%;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.32);
}

.s24-material-picker__swatch--yellow {
	background: linear-gradient(135deg, #f1dda0 0%, #c7a34f 55%, #f4e4ad 100%);
}

.s24-material-picker__swatch--rose {
	background: linear-gradient(135deg, #f1c5b2 0%, #c98f78 55%, #f0c6b5 100%);
}

.s24-material-picker__swatch--white {
	background: linear-gradient(135deg, #fafaf8 0%, #d8d9d6 55%, #f7f7f4 100%);
}

.s24-material-picker__swatch--platinum {
	background: linear-gradient(135deg, #f2f3f3 0%, #bfc3c4 55%, #e8e9e9 100%);
}

.s24-material-picker__swatch--silver {
	background: linear-gradient(135deg, #f7f8f9 0%, #d3d7da 48%, #aeb4b8 100%);
}

.s24-material-picker__swatch--neutral {
	background: #ece9e3;
}

.s24-material-picker__chevron {
	justify-self: end;
	width: 0.55rem;
	height: 0.55rem;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg) translateY(-2px);
	transition: transform 160ms ease;
}

.s24-material-picker.is-open .s24-material-picker__chevron {
	transform: rotate(225deg) translate(-1px, -1px);
}

.s24-material-picker__options {
	position: absolute;
	z-index: 30;
	top: calc(100% + 0.4rem);
	left: 0;
	right: 0;
	overflow: hidden;
	border: 1px solid rgba(34, 34, 34, 0.12);
	border-radius: 5px;
	background: #fff;
	box-shadow: 0 14px 32px rgba(34, 34, 34, 0.14);
}

.s24-material-picker__options[hidden] {
	display: none;
}

.woocommerce div.product form.cart .s24-material-picker__option {
	display: grid;
	grid-template-columns: 1.25rem minmax(0, 1fr) 1.2rem;
	align-items: center;
	gap: 0.75rem;
	width: 100%;
	min-height: 48px;
	padding: 0.65rem 0.9rem;
	border: 0;
	border-bottom: 1px solid rgba(34, 34, 34, 0.07);
	border-radius: 0;
	background: #fff;
	box-shadow: none;
	text-align: left;
	cursor: pointer;
}

.woocommerce div.product form.cart .s24-material-picker__option:last-child {
	border-bottom: 0;
}

.woocommerce div.product form.cart .s24-material-picker__option:hover,
.woocommerce div.product form.cart .s24-material-picker__option:focus-visible {
	background: #faf8f4;
	outline: none;
}

.woocommerce div.product form.cart .s24-material-picker__option[aria-selected="true"] {
	font-weight: 600;
	background: #fbfaf7;
}

.s24-material-picker__check {
	justify-self: end;
	visibility: hidden;
	font-weight: 700;
	color: #2b2927;
}

.s24-material-picker__option[aria-selected="true"] .s24-material-picker__check {
	visibility: visible;
}

.s24-material-picker__option:disabled {
	opacity: 0.42;
	cursor: not-allowed;
}

.woocommerce div.product form.cart .s24-material-picker-row .reset_variations {
	display: none !important;
}

.s24-configurator {
	margin: 1.35rem 0 1.5rem;
	padding: 1.2rem;
	border: 1px solid rgba(34, 34, 34, 0.13);
	border-radius: 8px;
	background: #fcfbf8;
	color: #2b2927;
}

.s24-configurator__heading {
	margin-bottom: 1.2rem;
}

.s24-configurator__eyebrow {
	margin: 0 0 0.2rem !important;
	color: #8a6b39;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.s24-configurator__heading h2 {
	margin: 0 0 0.35rem;
	font-size: clamp(1.2rem, 2vw, 1.55rem);
	line-height: 1.25;
}

.s24-configurator__heading > p:last-child,
.s24-configurator__help,
.s24-configurator__status {
	color: #625d57;
	font-size: 0.9rem;
	line-height: 1.5;
}

.s24-configurator__heading > p:last-child,
.s24-configurator__help {
	margin: 0;
}

.s24-configurator__field > label,
.s24-configurator__stones legend {
	display: block;
	margin-bottom: 0.5rem;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.woocommerce div.product form.cart .s24-configurator__field select {
	width: 100%;
	max-width: 430px;
	min-height: 48px;
	margin: 0 0 0.35rem;
	padding: 0.55rem 2.4rem 0.55rem 0.8rem;
	border: 1px solid rgba(34, 34, 34, 0.16);
	border-radius: 5px;
	background-color: #fff;
}

.s24-configurator__stones {
	min-width: 0;
	margin: 1.2rem 0 0;
	padding: 0;
	border: 0;
}

.s24-configurator__stone-list {
	display: grid;
	gap: 0.6rem;
}

.s24-stone-card {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.8rem;
	margin: 0;
	padding: 0.85rem 0.9rem;
	border: 1px solid rgba(34, 34, 34, 0.12);
	border-radius: 6px;
	background: #fff;
	cursor: pointer;
	transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.s24-stone-card:hover,
.s24-stone-card:has(input:focus-visible),
.s24-stone-card:has(input:checked) {
	border-color: #9b7b43;
	box-shadow: 0 0 0 2px rgba(155, 123, 67, 0.1);
}

.s24-stone-card:has(input:checked) {
	background: #fbf8f1;
}

.s24-stone-card input {
	width: 1.05rem;
	height: 1.05rem;
	margin: 0;
	accent-color: #806231;
}

.s24-stone-card__body,
.s24-stone-card__heading,
.s24-stone-card__specs,
.s24-stone-card__certificate,
.s24-stone-card__price {
	display: block;
}

.s24-stone-card__heading {
	margin-bottom: 0.22rem;
	font-size: 0.95rem;
	font-weight: 700;
}

.s24-stone-card__specs {
	display: flex;
	flex-wrap: wrap;
	gap: 0.2rem 0.75rem;
	font-size: 0.83rem;
	line-height: 1.4;
}

.s24-stone-card__certificate {
	margin-top: 0.25rem;
	color: #625d57;
	font-size: 0.78rem;
}

.s24-stone-card__price {
	font-size: 0.92rem;
	font-weight: 700;
	white-space: nowrap;
}

.s24-configurator__result {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: 0.9rem;
	margin-top: 1rem;
	padding: 0.9rem;
	border-left: 3px solid #806231;
	background: #f5f0e6;
}

.s24-configurator__result[hidden] {
	display: none;
}

.s24-configurator__result img {
	width: 72px;
	height: 72px;
	border-radius: 4px;
	object-fit: contain;
	background: #fff;
}

.s24-configurator__result span,
.s24-configurator__result strong,
.s24-configurator__result p {
	display: block;
	margin: 0;
}

.s24-configurator__result span {
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.s24-configurator__result strong {
	margin: 0.1rem 0 0.2rem;
	font-size: 1.35rem;
}

.s24-configurator__result p {
	color: #625d57;
	font-size: 0.8rem;
	line-height: 1.4;
}

.s24-configurator__status {
	margin: 0.8rem 0 0;
}

.s24-configurator__status.is-loading::before {
	display: inline-block;
	width: 0.7rem;
	height: 0.7rem;
	margin-right: 0.45rem;
	border: 2px solid rgba(128, 98, 49, 0.25);
	border-top-color: #806231;
	border-radius: 50%;
	content: "";
	vertical-align: -0.08rem;
	animation: s24-configurator-spin 700ms linear infinite;
}

.s24-configurator__status.is-error {
	color: #9d2929;
}

.s24-configurator__status.is-success {
	color: #245b38;
	font-weight: 600;
}

.woocommerce div.product form.cart .single_add_to_cart_button.s24-configuration-pending {
	opacity: 0.48;
	cursor: not-allowed;
}

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

@media (max-width: 520px) {
	.s24-product-facts {
		grid-template-columns: 1fr;
		gap: 0.15rem;
	}

	.s24-product-facts dd + dt {
		margin-top: 0.55rem;
	}

	.s24-material-picker {
		max-width: none;
	}

	.s24-stone-card {
		grid-template-columns: auto minmax(0, 1fr);
	}

	.s24-stone-card__price {
		grid-column: 2;
	}
}
