.norelle-weight-selector {
	--nw-ink: var(--norelle-cards-ink, #211a16);
	--nw-muted: var(--norelle-cards-muted, #6a5d53);
	--nw-red: var(--norelle-cards-red, #bb3325);
	--nw-red-dark: var(--norelle-cards-red-dark, #94261d);
	--nw-green: var(--norelle-cards-green, #215c3a);
	--nw-cream: var(--norelle-cards-cream, #f6efe3);
	--nw-border: var(--norelle-cards-border, #dfd0be);
	display: grid;
	gap: 16px;
	margin: 18px 0;
	color: var(--nw-ink);
}

.norelle-weight-selector__availability {
	margin: 0;
	color: var(--nw-green);
	font-weight: 700;
}

.norelle-weight-selector__availability span {
	display: inline-block;
	width: 9px;
	height: 9px;
	margin-right: 8px;
	background: currentColor;
	border-radius: 50%;
}

.norelle-weight-selector__kg-price {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin: -6px 0 0;
	color: var(--nw-muted);
}

.norelle-weight-selector__kg-price strong {
	color: var(--nw-ink);
	font-size: 1.05rem;
	font-variant-numeric: tabular-nums;
}

.norelle-weight-selector__quick {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	border: 0;
}

.norelle-weight-selector__quick legend,
.norelle-weight-selector__field > span,
.norelle-weight-selector__manual > label {
	display: block;
	width: 100%;
	margin: 0 0 7px;
	color: var(--nw-muted);
	font-size: 0.94rem;
	font-weight: 700;
}

.norelle-weight-selector__quick button,
.norelle-weight-selector__input-row button {
	min-width: 46px;
	min-height: 46px;
	padding: 9px 15px;
	color: var(--nw-ink);
	background: #fff;
	border: 1px solid var(--nw-border);
	border-radius: 999px;
	font: inherit;
	font-weight: 800;
	cursor: pointer;
}

.norelle-weight-selector__quick button:hover,
.norelle-weight-selector__input-row button:hover {
	border-color: var(--nw-ink);
}

.norelle-weight-selector__manual,
.norelle-weight-selector__field {
	display: block;
	margin: 0;
}

.norelle-weight-selector__input-row {
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr) 48px;
	gap: 8px;
}

.norelle-weight-selector__input-row input,
.norelle-weight-selector__field select,
.norelle-weight-selector__field textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 48px;
	padding: 11px 13px;
	color: var(--nw-ink);
	background: #fff;
	border: 1px solid var(--nw-border);
	border-radius: 12px;
	font: inherit;
}

.norelle-weight-selector__field textarea {
	min-height: 74px;
	resize: vertical;
}

.norelle-weight-selector__error {
	min-height: 22px;
	margin: 6px 0 0;
	color: var(--nw-red-dark);
	font-size: 0.9rem;
	font-weight: 650;
}

.norelle-weight-selector__error:empty {
	display: none;
}

.norelle-weight-selector__total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 16px;
	background: var(--nw-cream);
	border-radius: 13px;
}

.norelle-weight-selector__total span {
	font-weight: 700;
}

.norelle-weight-selector__total strong {
	font-size: 1.35rem;
	font-variant-numeric: tabular-nums;
}

.norelle-weight-selector__precision {
	margin: -7px 0 0;
	color: var(--nw-muted);
	font-size: 0.85rem;
	line-height: 1.45;
}

form.cart [data-norelle-weight-selector] ~ .quantity {
	display: none !important;
}

.norelle-weight-dialog {
	box-sizing: border-box;
	width: min(1040px, calc(100vw - 32px));
	max-width: 1040px;
	max-height: min(900px, calc(100vh - 32px));
	margin: auto;
	padding: 0;
	overflow: auto;
	color: #211a16;
	background: #fff;
	border: 0;
	border-radius: 22px;
	box-shadow: 0 30px 90px rgba(24, 17, 13, 0.3);
}

.norelle-weight-dialog:not([open]):not(.is-open) {
	display: none;
}

.norelle-weight-dialog::backdrop {
	background: rgba(24, 17, 13, 0.68);
	backdrop-filter: blur(3px);
}

.norelle-weight-dialog.is-open {
	position: fixed;
	inset: 16px;
	z-index: 99999;
	display: block;
}

.norelle-weight-dialog__panel {
	position: relative;
	display: grid;
	grid-template-columns: minmax(280px, 0.92fr) minmax(340px, 1.08fr);
	min-height: 620px;
}

.norelle-weight-dialog__close {
	position: absolute;
	top: 14px;
	right: 14px;
	z-index: 2;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	padding: 0;
	color: #211a16;
	background: rgba(255, 255, 255, 0.94);
	border: 1px solid #dfd0be;
	border-radius: 50%;
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
}

.norelle-weight-dialog__media {
	display: grid;
	place-items: center;
	min-height: 100%;
	padding: clamp(18px, 4vw, 48px);
	background: #f6efe3;
}

.norelle-weight-dialog__media img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 640px;
	object-fit: contain;
}

.norelle-weight-dialog__content {
	padding: clamp(28px, 4vw, 54px);
}

.norelle-weight-dialog__eyebrow {
	margin: 0 0 8px;
	color: #9a5b22;
	font-size: 0.8rem;
	font-weight: 800;
	letter-spacing: 0.11em;
	text-transform: uppercase;
}

.norelle-weight-dialog__content h2 {
	margin: 0 48px 9px 0;
	font-family: "Roboto Slab", Georgia, serif;
	font-size: clamp(1.65rem, 3vw, 2.45rem);
	line-height: 1.12;
}

.norelle-weight-dialog__kg-price {
	margin: 0 0 10px;
	font-size: 1.5rem;
	font-weight: 850;
}

.norelle-weight-dialog__kg-price span {
	color: #6a5d53;
	font-size: 0.75em;
	font-weight: 600;
}

.norelle-weight-dialog__form .single_add_to_cart_button {
	width: 100%;
	min-height: 52px;
	margin: 0;
	background: #bb3325;
	border-color: #bb3325;
	border-radius: 13px;
	font-weight: 800;
}

.norelle-weight-dialog__form .single_add_to_cart_button.is-loading,
.norelle-weight-dialog__form .single_add_to_cart_button[aria-disabled="true"] {
	opacity: 0.7;
	cursor: wait;
}

.norelle-weight-dialog__details {
	display: inline-block;
	margin-top: 14px;
	color: #6a5d53;
	font-weight: 700;
	text-underline-offset: 3px;
}

.norelle-weight-selector button:focus-visible,
.norelle-weight-selector input:focus-visible,
.norelle-weight-selector select:focus-visible,
.norelle-weight-selector textarea:focus-visible,
.norelle-weight-dialog button:focus-visible,
.norelle-weight-dialog a:focus-visible {
	outline: 0;
	box-shadow: 0 0 0 3px #fff, 0 0 0 6px #000;
}

@media (max-width: 760px) {
	.norelle-weight-dialog {
		width: min(100% - 16px, 620px);
		max-height: calc(100vh - 16px);
		border-radius: 17px;
	}

	.norelle-weight-dialog__panel {
		grid-template-columns: 1fr;
		min-height: 0;
	}

	.norelle-weight-dialog__media {
		min-height: 240px;
		max-height: 38vh;
		padding: 18px;
	}

	.norelle-weight-dialog__media img {
		max-height: 34vh;
	}

	.norelle-weight-dialog__content {
		padding: 24px 18px 28px;
	}

	.norelle-weight-selector__quick button {
		flex: 1 1 calc(50% - 4px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.norelle-weight-selector *,
	.norelle-weight-dialog * {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
