/* ==========================================================================
   Ormusshop — shop.css
   Shop surface: product archive, cart, checkout, account, notices and the
   order-received page.

   WooCommerce's general stylesheet is disabled, so classic markup is styled
   from scratch here. The block cart and block checkout keep WooCommerce
   Blocks CSS; they are re-skinned under #main with :where() so one ID
   outranks the Blocks class chains while our own rules stay flat and
   predictable.
   ========================================================================== */

:root {
	--shop-sticky-top: calc(var(--header-h) + 1.5rem);
	--shop-field-bd: color-mix(in oklab, var(--humus-900) 22%, transparent);
	--shop-ring: 0 0 0 3px color-mix(in oklab, var(--moss-500) 28%, transparent);

	/* Icon masks on the theme's 24px / 1.6 stroke grid */
	--i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	--i-check-circle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='m8.2 12.3 2.6 2.6 5-5.4'/%3E%3C/svg%3E");
	--i-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Cpath d='M12 11v5.5M12 7.8v.1'/%3E%3C/svg%3E");
	--i-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3.2c3.6 4.3 6 7.7 6 10.8a6 6 0 0 1-12 0c0-3.1 2.4-6.5 6-10.8Z'/%3E%3Cpath d='M12 9.5v4.2M12 16.4v.1'/%3E%3C/svg%3E");
	--i-tag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 12.2V4.8a1.3 1.3 0 0 1 1.3-1.3h7.4l8.3 8.3a1.3 1.3 0 0 1 0 1.8l-7.4 7.4a1.3 1.3 0 0 1-1.8 0l-7.8-7.8Z'/%3E%3Ccircle cx='8.3' cy='8.3' r='1.4'/%3E%3C/svg%3E");
	--i-user: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8.5' r='3.5'/%3E%3Cpath d='M5 20c.8-3.6 3.6-5.5 7-5.5s6.2 1.9 7 5.5'/%3E%3C/svg%3E");
	--i-sprout: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20v-8'/%3E%3Cpath d='M12 12c0-3.5-2.5-6-6.5-6 0 3.5 2.5 6 6.5 6Z'/%3E%3Cpath d='M12 14c0-3.3 2.4-5.5 6.5-5.5 0 3.3-2.4 5.5-6.5 5.5Z'/%3E%3C/svg%3E");
	--i-package: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 8 4.2v9.6L12 21l-8-4.2V7.2L12 3Z'/%3E%3Cpath d='M4 7.2 12 11.5l8-4.3M12 11.5V21'/%3E%3C/svg%3E");
	--i-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4.5v10M7.5 10l4.5 4.5 4.5-4.5M5 19.5h14'/%3E%3C/svg%3E");
	--i-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-5.6-6.5-11a6.5 6.5 0 0 1 13 0c0 5.4-6.5 11-6.5 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E");
	--i-card: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='6' width='17' height='12' rx='2'/%3E%3Cpath d='M3.5 10h17M7 14.5h3'/%3E%3C/svg%3E");
	--i-logout: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 4.5h4a1.5 1.5 0 0 1 1.5 1.5v12a1.5 1.5 0 0 1-1.5 1.5h-4M10 16.5 5.5 12 10 7.5M5.5 12H15'/%3E%3C/svg%3E");
	--i-sort: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M7 12h10M10 17h4'/%3E%3C/svg%3E");
	--i-drop: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4c4 4.7 6.8 8.5 6.8 12a6.8 6.8 0 0 1-13.6 0c0-3.5 2.8-7.3 6.8-12Z'/%3E%3C/svg%3E");
	--i-eye: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.8 12S6.2 5.5 12 5.5 21.2 12 21.2 12 17.8 18.5 12 18.5 2.8 12 2.8 12Z'/%3E%3Ccircle cx='12' cy='12' r='2.8'/%3E%3C/svg%3E");
	--i-eye-off: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4l16 16M10.2 6a9.6 9.6 0 0 1 1.8-.5c5.8 0 9.2 6.5 9.2 6.5a16 16 0 0 1-2.6 3.3M6.4 7.6A15.6 15.6 0 0 0 2.8 12S6.2 18.5 12 18.5a8.6 8.6 0 0 0 4.2-1.1M9.9 10a2.8 2.8 0 0 0 4 4'/%3E%3C/svg%3E");
	--i-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6.5 9.5 5.5 5.5 5.5-5.5'/%3E%3C/svg%3E");

	/* The moss-cushion edge: one height everywhere (40px on phones, 64px at
	   1440px), the tile scaled with it so the cushions keep their shape. */
	--moss-edge-h: clamp(40px, 1.75rem + 2.5vw, 64px);
}

/* ==========================================================================
   1. Frame: moss band for cart, checkout, account, order received
   ========================================================================== */

.shop-page { display: block; background: var(--lichen-100); }

.shop-page__band,
.shop-band {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	color: var(--on-moss);
	background:
		radial-gradient(70% 140% at 88% -10%, rgb(240 207 122 / .13), transparent 62%),
		radial-gradient(50% 90% at 0% 110%, rgb(79 122 42 / .22), transparent 70%),
		var(--moss-900);
	/* The band ends in moss cushions (assets/img/brand/moss-edge.svg): its
	   last --moss-edge-h is masked by the cushion tile, so the band's own
	   colour (blooms included) hangs into the lichen ground below with no
	   seam. The same edge, at the same height, closes every content band. */
	-webkit-mask:
		linear-gradient(#000, #000) left top / 100% calc(100% - var(--moss-edge-h) + 1px) no-repeat,
		url("../img/brand/moss-edge.svg") left bottom / calc(var(--moss-edge-h) * 22.5) var(--moss-edge-h) repeat-x;
	mask:
		linear-gradient(#000, #000) left top / 100% calc(100% - var(--moss-edge-h) + 1px) no-repeat,
		url("../img/brand/moss-edge.svg") left bottom / calc(var(--moss-edge-h) * 22.5) var(--moss-edge-h) repeat-x;
}

.shop-page__band { padding-block: clamp(2.25rem, 1.4rem + 3vw, 4rem) calc(clamp(3.25rem, 2.4rem + 3.6vw, 5.25rem) + var(--moss-edge-h) * .5); }

.shop-page__band-inner {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.25rem 2.5rem;
}

.shop-page__heading { min-width: 0; }

.shop-page__title {
	margin: 0;
	color: var(--lichen-50);
	font-size: clamp(2.35rem, 1.5rem + 3.2vw, 4rem);
	font-weight: 380;
	line-height: 1.02;
	letter-spacing: -0.032em;
	overflow-wrap: anywhere;
}

.shop-page__lead {
	margin: .85rem 0 0;
	max-width: 38em;
	color: var(--on-moss-soft);
	font-size: var(--fs-lead);
	line-height: 1.45;
}

.shop-page__body { padding-block: clamp(1.75rem, 1rem + 3vw, 3.5rem) var(--section-y); }

/* Order steps: drops on a thread */
.steps__list {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.steps__item { display: flex; align-items: center; gap: .5rem; }
.steps__item + .steps__item::before {
	content: "";
	width: clamp(.9rem, .2rem + 2.4vw, 2.75rem);
	height: 1px;
	background: var(--line-on-moss);
}
.steps__item.is-done + .steps__item::before { background: color-mix(in oklab, var(--moss-300) 60%, transparent); }
.steps__link {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	min-height: 44px;
	color: var(--on-moss-soft);
	font-size: var(--fs-small);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
}
a.steps__link:hover { color: var(--lichen-50); }
.steps__drop {
	display: grid;
	place-items: center;
	flex: none;
	width: 1.7rem;
	height: 1.7rem;
	border: 1px solid var(--line-on-moss);
	border-radius: 0 50% 50% 50%;
	transform: rotate(45deg);
	font-size: .78rem;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	transition: background-color var(--d-2) var(--ease-out), box-shadow var(--d-2) var(--ease-out);
}
.steps__drop > * { transform: rotate(-45deg); }
.steps__drop .icon { width: .95rem; height: .95rem; stroke-width: 2.2; }
.steps__item.is-current .steps__link { color: var(--lichen-50); }
.steps__item.is-current .steps__drop {
	border-color: transparent;
	background: radial-gradient(circle at 35% 30%, var(--gold-200), var(--gold-500) 58%, var(--gold-600));
	color: var(--moss-950);
	box-shadow: 0 0 0 5px rgb(217 174 69 / .16), inset 0 1px 2px rgb(255 255 255 / .55);
}
.steps__item.is-done .steps__drop { border-color: transparent; background: var(--moss-700); color: var(--moss-200); }

/* ==========================================================================
   2. Archive: moss band with photo edge
   ========================================================================== */

.shop-band__photo {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 0;
	width: min(54%, 860px);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, rgb(0 0 0 / .55) 24%, #000 52%);
	mask-image: linear-gradient(90deg, transparent 0, rgb(0 0 0 / .55) 24%, #000 52%);
}
.shop-band__photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 58%;
}
.shop-band__photo::after {
	content: "";
	position: absolute;
	inset: 0;
	/* Settles into plain moss-900 before the cushion edge, so the cushions
	   are band colour here too, never photo. */
	background: linear-gradient(0deg, var(--moss-900) calc(var(--moss-edge-h) * .85), rgb(18 41 26 / .55) calc(var(--moss-edge-h) + 3.5rem), transparent max(62%, calc(var(--moss-edge-h) + 7rem)));
	pointer-events: none;
}

.shop-band__inner {
	position: relative;
	z-index: 2;
	padding-block: clamp(1.75rem, 1rem + 2.6vw, 3rem) calc(clamp(4rem, 2.8rem + 5vw, 7.5rem) + var(--moss-edge-h) * .5);
	pointer-events: none;
}
.shop-band__inner > * { max-width: 46rem; pointer-events: auto; }

.woocommerce-products-header { margin: 0; }
.woocommerce-products-header__title {
	margin: 0;
	color: var(--lichen-50);
	font-size: clamp(2.9rem, 1.7rem + 4.6vw, 5.5rem);
	font-weight: 360;
	line-height: .98;
	letter-spacing: -0.04em;
}

.shop-band__lead,
.shop-band .term-description,
.shop-band .page-description {
	margin: 1.25rem 0 0;
	max-width: 34em;
	color: var(--on-moss-soft);
	font-size: var(--fs-lead);
	line-height: 1.5;
}
.shop-band .term-description p,
.shop-band .page-description p { margin: 0 0 .75em; }
.shop-band .term-description a,
.shop-band .page-description a { color: var(--gold-300); }

.shop-band__facts {
	display: flex;
	flex-wrap: wrap;
	gap: .6rem 1.5rem;
	margin: 1.75rem 0 0;
	padding: 0;
	list-style: none;
	color: var(--on-moss);
	font-size: var(--fs-small);
	font-weight: 550;
}
.shop-band__facts li { display: inline-flex; align-items: center; gap: .5rem; }
.shop-band__facts .icon { width: 1.2rem; height: 1.2rem; color: var(--moss-300); }

/* Breadcrumb (WooCommerce prints .crumbs; .woocommerce-breadcrumb from plugins) */
.crumbs,
.woocommerce-breadcrumb {
	margin: 0 0 clamp(1.25rem, 2.5vw, 2rem);
	color: var(--ink-soft);
	font-size: var(--fs-small);
	font-weight: 550;
}
.crumbs__inner { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem .6rem; }
.crumbs a,
.woocommerce-breadcrumb a { color: inherit; text-decoration: none; }
.crumbs a:hover,
.woocommerce-breadcrumb a:hover { text-decoration: underline; }
.crumbs__sep { opacity: .5; }
.shop-band .crumbs { color: var(--on-moss-soft); }
.shop-band .crumbs__inner { color: var(--lichen-50); }
.shop-band .crumbs a { color: var(--on-moss-soft); }
.shop-band .crumbs a:hover { color: var(--lichen-50); }
.shop-band :focus-visible,
.shop-page__band :focus-visible { outline-color: var(--focus-on-moss); }

/* ==========================================================================
   3. Archive body: toolbar, grid, cards
   ========================================================================== */

.shop-body { background: var(--lichen-100); padding-block: clamp(1.25rem, .8rem + 2vw, 2.25rem) var(--section-y); }

.shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .75rem 1.5rem;
	margin-bottom: clamp(1.75rem, 1.2rem + 2vw, 3rem);
	padding-bottom: 1.1rem;
	border-bottom: 1px solid var(--line);
}
.shop-toolbar__count {
	margin: 0;
	color: var(--ink-soft);
	font-size: var(--fs-small);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.woocommerce-ordering {
	position: relative;
	display: flex;
	align-items: center;
	margin: 0;
}
.woocommerce-ordering::before {
	content: "";
	position: absolute;
	left: 1rem;
	z-index: 1;
	width: 1.1rem;
	height: 1.1rem;
	background: var(--moss-700);
	-webkit-mask: var(--i-sort) center / contain no-repeat;
	mask: var(--i-sort) center / contain no-repeat;
	pointer-events: none;
}
.woocommerce-ordering select.orderby {
	width: auto;
	min-height: 2.75rem;
	padding: .5rem 2.6rem .5rem 2.6rem;
	border-radius: var(--r-pill);
	background-color: var(--lichen-50);
	background-position: right .9rem center;
	font-size: var(--fs-small);
	font-weight: 600;
	cursor: pointer;
}

/* Category pills: "Alle" + one per category, counts in tabular figures */
.shop-cats { min-width: 0; }
.shop-cats__list {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.shop-cats__pill {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	min-height: 2.75rem;
	padding: .45rem .55rem .45rem 1.1rem;
	border: 1px solid var(--line);
	border-radius: var(--r-pill);
	background: var(--lichen-50);
	color: var(--ink);
	font-size: var(--fs-small);
	font-weight: 650;
	line-height: 1.15;
	text-decoration: none;
	transition: background-color var(--d-1) var(--ease-out), border-color var(--d-1) var(--ease-out), color var(--d-1) var(--ease-out);
}
.shop-cats__count {
	display: inline-grid;
	place-items: center;
	min-width: 1.75rem;
	height: 1.75rem;
	padding: 0 .45rem;
	border-radius: var(--r-pill);
	background: var(--lichen-200);
	color: var(--ink-soft);
	font-size: var(--fs-micro);
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	transition: background-color var(--d-1) var(--ease-out), color var(--d-1) var(--ease-out);
}
.shop-cats__pill:hover { border-color: color-mix(in oklab, var(--humus-900) 40%, transparent); background: var(--lichen-200); }
.shop-cats__pill:hover .shop-cats__count { background: var(--lichen-300); color: var(--ink); }
.shop-cats__pill.is-current {
	border-color: transparent;
	background: var(--moss-900);
	color: var(--lichen-50);
}
.shop-cats__pill.is-current .shop-cats__count { background: var(--gold-500); color: var(--moss-950); }
.shop-cats__pill:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }

/* Grid */
.shop-surface ul.products {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
	gap: clamp(2.75rem, 1.8rem + 2.6vw, 4.5rem) clamp(1.25rem, .6rem + 2.2vw, 2.75rem);
	margin: 0;
	padding: 0;
	list-style: none;
}
.shop-surface ul.products::before,
.shop-surface ul.products::after { content: none; }
/* Wide screens: 3 or 4 columns, whichever fills the last row best
   (ormus_shop_grid_columns): six products read as 3 + 3. */
@media (min-width: 1100px) {
	.shop-surface ul.products.shop-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(2rem, 1rem + 2.4vw, 3.5rem); }
	.shop-surface ul.products.shop-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.shop-grid--3 .shop-card__title { font-size: clamp(1.5rem, 1.2rem + .5vw, 1.8rem); }
	.shop-grid--3 .shop-card__plinth { aspect-ratio: 1; }
}

/* Legal line under the grid */
.shop-notice {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	max-width: 46rem;
	margin: clamp(3rem, 2rem + 3vw, 4.5rem) 0 0;
	padding-top: 1.1rem;
	border-top: 1px solid var(--line);
	color: var(--ink-soft);
	font-size: var(--fs-small);
	line-height: 1.5;
}
.shop-notice .icon { flex: none; width: 1.15rem; height: 1.15rem; margin-top: .1rem; color: var(--moss-700); }

/* Card: no box, just a plinth in light and the words under it */
.shop-card {
	position: relative;
	display: flex;
	flex-direction: column;
	min-width: 0;
	margin: 0;
}
.shop-card__media { position: relative; }
.shop-card__plinth {
	position: relative;
	display: grid;
	place-items: center;
	aspect-ratio: 10 / 11;
	overflow: hidden;
	isolation: isolate;
	border-radius: var(--r-lg);
	background:
		radial-gradient(85% 55% at 50% 104%, rgb(37 80 44 / .2), transparent 70%),
		radial-gradient(115% 85% at 26% -6%, var(--lichen-50), transparent 62%),
		var(--lichen-200);
	transition: transform var(--d-3) var(--ease-out), box-shadow var(--d-3) var(--ease-out);
}
.shop-card__plinth img {
	width: 100%;
	height: auto;
	mix-blend-mode: multiply;
	transform: translate3d(0, 3%, 0) scale(1.14);
	transition: transform var(--d-4) var(--ease-out);
}
/* Tau-Glanz: a band of morning light crosses the plinth */
.shop-card__plinth::after {
	content: "";
	position: absolute;
	top: -30%;
	bottom: -30%;
	left: -48%;
	z-index: 2;
	width: 40%;
	background: linear-gradient(100deg, transparent 8%, rgb(255 250 228 / .38) 42%, rgb(255 255 255 / .62) 50%, rgb(255 250 228 / .38) 58%, transparent 92%);
	opacity: 0;
	transform: translate3d(0, 0, 0) skewX(-16deg);
	transition: opacity var(--d-2) var(--ease-out);
	pointer-events: none;
}
.shop-card:hover .shop-card__plinth,
.shop-card:focus-within .shop-card__plinth { transform: translate3d(0, -4px, 0); box-shadow: var(--shadow-2); }
.shop-card:hover .shop-card__plinth img,
.shop-card:focus-within .shop-card__plinth img { transform: translate3d(0, 0, 0) scale(1.19); }
.shop-card:hover .shop-card__plinth::after,
.shop-card:focus-within .shop-card__plinth::after {
	opacity: 1;
	transform: translate3d(420%, 0, 0) skewX(-16deg);
	transition: transform 1150ms var(--ease-out), opacity 120ms linear;
}

/* Sale: a small gold drop */
.shop-card__badge {
	position: absolute;
	top: .9rem;
	left: .9rem;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 3.3rem;
	height: 3.3rem;
	border-radius: 0 50% 50% 50%;
	transform: rotate(45deg);
	background: radial-gradient(circle at 34% 30%, var(--gold-200), var(--gold-500) 56%, var(--gold-600));
	color: var(--moss-950);
	box-shadow: inset 0 1px 2px rgb(255 255 255 / .6), inset 0 -6px 10px rgb(124 91 18 / .28), 0 10px 20px -10px rgb(124 91 18 / .7);
	pointer-events: none;
}
.shop-card__badge > span[aria-hidden] {
	transform: rotate(-45deg) translateY(2px);
	font-size: .78rem;
	font-weight: 760;
	letter-spacing: -.01em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
.shop-card__badge--word > span[aria-hidden] { font-size: .58rem; letter-spacing: .06em; text-transform: uppercase; }

.shop-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: .35rem;
	padding-top: 1.25rem;
}
.shop-card__title {
	margin: 0;
	font-size: clamp(1.3rem, 1.15rem + .45vw, 1.6rem);
	font-weight: 420;
	line-height: 1.14;
	letter-spacing: -0.022em;
	text-wrap: balance;
}
.shop-card__link { color: inherit; text-decoration: none; }
.shop-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: var(--r-lg);
}
.shop-card__link:focus-visible { outline: none; }
.shop-card__link:focus-visible::after { outline: 2px solid var(--focus); outline-offset: 6px; }
.shop-card:hover .shop-card__link { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.shop-card__variant {
	display: block;
	margin-top: .2em;
	color: var(--ink-soft);
	font-size: .76em;
	font-style: italic;
	letter-spacing: -0.01em;
}
.shop-card__rating {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	margin: .1rem 0 0;
	color: var(--ink-soft);
	font-size: var(--fs-micro);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
}
.shop-card__rating .drops { font-size: 1rem; }

/* Drops meter: the rating glyph of this world, same markup and colours as
   the product page (ormus_shop_drops_meter / ormus_product_drops_meter). */
.drops {
	position: relative;
	display: inline-flex;
	flex: none;
	line-height: 0;
	vertical-align: middle;
}
.drops__base,
.drops__fill { display: inline-flex; white-space: nowrap; }
.drops__base { color: color-mix(in oklab, var(--humus-900) 15%, transparent); }
.drops__fill {
	position: absolute;
	inset: 0 auto 0 0;
	overflow: hidden;
	color: var(--gold-600);
}
.drops .drop { flex: none; width: 1em; height: 1em; fill: currentColor; }
.drops--sm { font-size: 1.05rem; }
.shop-card__price { display: flex; flex-direction: column; gap: .25rem; margin-top: .45rem; }
.shop-card__price .price {
	color: var(--ink);
	font-size: 1.3rem;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.2;
}
.shop-card__price .price del { font-size: .78em; font-weight: 450; opacity: .6; }
.shop-card__price .price ins { text-decoration: none; }
.price__from { margin-right: .1em; color: var(--ink-soft); font-size: .72em; font-weight: 550; }
.shop-card__supply {
	display: flex;
	flex-wrap: wrap;
	gap: .05rem .85rem;
	color: var(--moss-700);
	font-size: var(--fs-small);
	font-weight: 600;
}
.shop-card__supply > span { white-space: nowrap; }
.shop-card__per { color: var(--gold-700); font-weight: 700; font-variant-numeric: tabular-nums; }
.shop-card__dot { display: none; }
.shop-card .price-note { position: relative; z-index: 2; justify-self: start; width: fit-content; }
.shop-card__actions {
	position: relative;
	z-index: 2;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem .9rem;
	margin-top: auto;
	padding-top: 1.1rem;
}

/* Loop buttons: AJAX add with an "added" state, "Menge wählen" link */
.btn__label { display: inline-flex; align-items: center; gap: .5em; }
.btn__label .icon { width: 1.1em; height: 1.1em; }
.btn__label--added { display: none; }
.add_to_cart_button.added .btn__label--idle { display: none; }
.add_to_cart_button.added .btn__label--added { display: inline-flex; animation: ormus-pop var(--d-3) var(--ease-out); }
.shop-card .button.btn { background: var(--btn-bg); color: var(--btn-fg); }
.shop-card .button.btn:hover { --btn-bg: var(--moss-700); }
.add_to_cart_button.added { --btn-bg: var(--moss-700); }
.add_to_cart_button.loading { color: transparent !important; pointer-events: none; }
.add_to_cart_button.loading::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.1rem;
	height: 1.1rem;
	margin: -.55rem 0 0 -.55rem;
	border: 2px solid var(--lichen-50);
	border-right-color: transparent;
	border-radius: 50%;
	animation: ormus-spin .7s linear infinite;
}
.shop-card .button.btn > .icon { transition: transform var(--d-2) var(--ease-out); }
.shop-card .button.btn:hover > .icon { transform: translateX(3px); }
.added_to_cart {
	color: var(--moss-700);
	font-size: var(--fs-small);
	font-weight: 650;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: .25em;
}
.added_to_cart:hover { color: var(--ink); }

/* Phones: cards turn into compact rows so supplies compare at a glance */
@media (max-width: 559px) {
	.shop-surface ul.products { gap: 1.75rem; }
	.shop-card {
		display: grid;
		grid-template-columns: minmax(0, 40%) minmax(0, 1fr);
		column-gap: 1rem;
		align-items: start;
	}
	.shop-card__plinth { aspect-ratio: 4 / 5; border-radius: var(--r-md); }
	.shop-card__link::after { border-radius: var(--r-md); }
	.shop-card__body { padding-top: .15rem; gap: .25rem; }
	.shop-card__title { font-size: 1.18rem; }
	.shop-card__price .price { font-size: 1.15rem; }
	.shop-card__supply { font-size: var(--fs-micro); }
	.shop-card__actions { padding-top: .75rem; }
	.shop-card__actions .btn { padding-inline: .95rem; }
	.shop-card__badge { top: .5rem; left: .5rem; width: 2.6rem; height: 2.6rem; }
	.shop-card__badge > span[aria-hidden] { font-size: .66rem; }
}

/* Pagination: drops in a row */
.woocommerce-pagination { display: flex; justify-content: center; margin-top: clamp(3rem, 2rem + 3vw, 4.5rem); }
.woocommerce-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}
.woocommerce-pagination .page-numbers li > .page-numbers {
	display: grid;
	place-items: center;
	min-width: 2.85rem;
	height: 2.85rem;
	padding: 0 .8rem;
	border: 1px solid var(--line);
	border-radius: var(--r-pill);
	background: var(--lichen-50);
	color: var(--ink);
	font-weight: 650;
	font-variant-numeric: tabular-nums;
	text-decoration: none;
	transition: background-color var(--d-1) var(--ease-out), border-color var(--d-1) var(--ease-out), transform var(--d-2) var(--ease-out);
}
.woocommerce-pagination a.page-numbers:hover { border-color: var(--moss-700); background: var(--lichen-200); transform: translateY(-2px); }
.woocommerce-pagination span.page-numbers.current { border-color: transparent; background: var(--moss-900); color: var(--lichen-50); }
.woocommerce-pagination span.page-numbers.dots { border-color: transparent; background: none; }
.woocommerce-pagination .page-numbers .icon { width: 1.15rem; height: 1.15rem; }

/* Empty archive / search */
.shop-empty,
.cart-empty-state {
	display: grid;
	justify-items: center;
	gap: 1rem;
	max-width: 40rem;
	margin-inline: auto;
	padding-block: clamp(1.5rem, 1rem + 3vw, 3.5rem);
	text-align: center;
}
.shop-empty__lens,
.cart-empty-state__lens {
	width: clamp(8.5rem, 6rem + 9vw, 12.5rem);
	aspect-ratio: 1;
	margin-bottom: .75rem;
	overflow: hidden;
	animation: ormus-float 7s var(--ease-in-out) infinite;
}
.shop-empty__lens img,
.cart-empty-state__lens img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 50%;
	transform: scale(1.18);
}
.shop-empty__title,
.cart-empty-state__title {
	margin: 0;
	font-size: clamp(1.9rem, 1.4rem + 2vw, 2.9rem);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: -0.028em;
}
.shop-empty__text,
.cart-empty-state__text { margin: 0; max-width: 32em; color: var(--ink-soft); font-size: var(--fs-lead); line-height: 1.5; }
.shop-empty__actions,
.cart-empty-state__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .75rem;
	margin-top: 1rem;
}
/* Search again, right where the empty result says so */
.shop-search {
	position: relative;
	display: flex;
	align-items: center;
	width: min(100%, 30rem);
	margin-top: .75rem;
	padding: .3rem .3rem .3rem 0;
	border: 1px solid var(--shop-field-bd);
	border-radius: var(--r-pill);
	background: var(--lichen-50);
	transition: border-color var(--d-1) var(--ease-out), box-shadow var(--d-1) var(--ease-out);
}
.shop-search:focus-within { border-color: var(--moss-700); box-shadow: var(--shop-ring); }
.shop-search__icon { display: grid; place-items: center; flex: none; width: 2.9rem; color: var(--moss-700); }
.shop-search__icon .icon { width: 1.2rem; height: 1.2rem; }
.shop-search input.shop-search__field {
	flex: 1;
	min-width: 0;
	min-height: 2.75rem;
	padding: 0 .5rem 0 0;
	border: 0;
	background: none;
	box-shadow: none;
}
.shop-search input.shop-search__field:focus { background: none; box-shadow: none; }
.shop-search__submit { flex: none; }
.cart-empty-state__from { font-weight: 500; opacity: .78; }
.cart-empty-state__from .amount { font-variant-numeric: tabular-nums; }
.cart-empty-state ~ .return-to-shop,
.wc-empty-cart-message + .return-to-shop { display: none; }

/* ==========================================================================
   4. Free-shipping meter
   ========================================================================== */

.ship-meter {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: center;
	gap: .7rem .9rem;
	margin: 0 0 clamp(1.25rem, 2.5vw, 2rem);
	padding: 1rem 1.25rem 1.15rem;
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	background: var(--lichen-50);
}
.ship-meter__icon {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	background: var(--moss-900);
	color: var(--gold-300);
}
.ship-meter__icon .icon { width: 1.25rem; height: 1.25rem; }
.ship-meter__text { margin: 0; font-size: var(--fs-small); font-weight: 550; line-height: 1.4; }
.ship-meter__text strong { color: var(--moss-700); font-weight: 750; font-variant-numeric: tabular-nums; }
.ship-meter__track {
	position: relative;
	grid-column: 1 / -1;
	height: 8px;
	border-radius: var(--r-pill);
	background: var(--lichen-200);
}
.ship-meter__fill {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	width: 100%;
	overflow: hidden;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--gold-600), var(--gold-400));
	/* reveal by clipping, not by width: no layout work while it grows */
	clip-path: inset(0 calc(100% - var(--p, 0) * 100%) 0 0 round 999px);
	transition: clip-path var(--d-4) var(--ease-out);
}
.ship-meter__fill::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(100deg, transparent 20%, rgb(255 251 230 / .7) 50%, transparent 80%);
	transform: translateX(-100%);
	animation: ormus-sheen 3.2s var(--ease-in-out) 1s infinite;
}
.ship-meter__drop {
	position: absolute;
	top: 50%;
	left: clamp(8px, calc(var(--p, 0) * 100%), calc(100% - 8px));
	width: 16px;
	height: 16px;
	margin: -8px 0 0 -8px;
	border-radius: 0 50% 50% 50%;
	transform: rotate(45deg);
	background: radial-gradient(circle at 35% 30%, var(--gold-200), var(--gold-500) 55%, var(--gold-600));
	box-shadow: inset 0 1px 1px rgb(255 255 255 / .7), 0 3px 8px -2px rgb(124 91 18 / .6);
	transition: left var(--d-4) var(--ease-out);
}
.ship-meter.is-done .ship-meter__icon { background: var(--gold-500); color: var(--moss-950); }
.ship-meter.is-done .ship-meter__text { color: var(--moss-700); font-weight: 650; }
.ship-meter.is-celebrating .ship-meter__drop { animation: ormus-drop-land 900ms var(--ease-out); }

/* ==========================================================================
   5. Notices: classic, block, store
   ========================================================================== */

.woocommerce-notices-wrapper:empty { display: none; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem 1rem;
	margin: 0 0 1.25rem;
	padding: .95rem 1.25rem .95rem 3.35rem;
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	background: var(--lichen-50);
	color: var(--ink);
	font-size: var(--fs-small);
	line-height: 1.5;
	list-style: none;
}
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
	content: "";
	position: absolute;
	top: .95rem;
	left: 1.1rem;
	width: 1.4rem;
	height: 1.4rem;
	background: var(--moss-600);
	-webkit-mask: var(--i-check-circle) center / contain no-repeat;
	mask: var(--i-check-circle) center / contain no-repeat;
}
.woocommerce-message { border-color: color-mix(in oklab, var(--moss-500) 32%, transparent); }
.woocommerce-info::before { -webkit-mask-image: var(--i-info); mask-image: var(--i-info); }
.woocommerce-error {
	display: block;
	border-color: color-mix(in oklab, var(--error-600) 32%, transparent);
	background: var(--error-100);
	color: #5a1d10;
}
.woocommerce-error::before { background: var(--error-600); -webkit-mask-image: var(--i-alert); mask-image: var(--i-alert); }
.woocommerce-error li { margin: 0; }
.woocommerce-error li + li { margin-top: .4rem; }
.woocommerce-message a:not(.button),
.woocommerce-info a:not(.button) { color: var(--moss-700); font-weight: 650; text-underline-offset: .2em; }
.woocommerce-error a:not(.button) { color: inherit; font-weight: 650; }
.woocommerce-message .button,
.woocommerce-info .button,
.woocommerce-error .button {
	--btn-bg: var(--moss-900);
	order: 2;
	min-height: 2.5rem;
	margin-left: auto;
	padding: .5rem 1.05rem;
	font-size: .9375rem;
}
.woocommerce-message .button:hover,
.woocommerce-info .button:hover { --btn-bg: var(--moss-700); }
.woocommerce-error .button { float: right; margin: -.15rem 0 0 1rem; }

/* WooCommerce Blocks notices */
#main :where(.wc-block-components-notice-banner) {
	margin: 0 0 1.25rem;
	border: 1px solid color-mix(in oklab, var(--moss-500) 32%, transparent);
	border-radius: var(--r-md);
	background: var(--lichen-50);
	color: var(--ink);
	font-size: var(--fs-small);
	line-height: 1.5;
}
#main :where(.wc-block-components-notice-banner) > svg { width: 1.4rem; height: 1.4rem; padding: 3px; border-radius: 50%; background-color: var(--moss-600); fill: var(--lichen-50); }
#main :where(.wc-block-components-notice-banner.is-error) { border-color: color-mix(in oklab, var(--error-600) 32%, transparent); background: var(--error-100); color: #5a1d10; }
#main :where(.wc-block-components-notice-banner.is-error) > svg { background-color: var(--error-600); }
#main :where(.wc-block-components-notice-banner.is-warning) { border-color: color-mix(in oklab, var(--gold-600) 45%, transparent); background: color-mix(in oklab, var(--gold-200) 40%, var(--lichen-50)); }
#main :where(.wc-block-components-notice-banner.is-warning) > svg { background-color: var(--gold-600); }
#main :where(.wc-block-components-notice-banner.is-info) > svg { background-color: var(--moss-700); }
#main :where(.wc-block-components-notice-banner .wc-forward) { color: var(--moss-700) !important; font-weight: 650; opacity: 1; }
#main :where(.wc-block-components-notice-banner a) { color: inherit; font-weight: 650; }

/* Store notice (WooCommerce → Customizer → Store notice) */
.woocommerce-store-notice,
p.demo_store {
	position: fixed;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 95;
	margin: 0;
	padding: .9rem var(--gutter);
	background: var(--moss-950);
	color: var(--on-moss);
	font-size: var(--fs-small);
	text-align: center;
	box-shadow: 0 -12px 30px -18px rgb(11 26 16 / .7);
}
.woocommerce-store-notice__dismiss-link { margin-left: 1rem; color: var(--gold-300); font-weight: 650; }

/* ==========================================================================
   6. Generic WooCommerce pieces (classic markup)
   ========================================================================== */

div.woocommerce { position: relative; }

/* Form rows */
div.woocommerce .form-row,
.woocommerce-form-row {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	margin: 0 0 1.1rem;
	padding: 0;
}
div.woocommerce .form-row label:not(.checkbox):not(.woocommerce-form__label-for-checkbox) {
	color: var(--ink);
	font-size: var(--fs-small);
	font-weight: 600;
	line-height: 1.35;
}
div.woocommerce .form-row label.screen-reader-text { position: absolute !important; }
div.woocommerce .required { color: var(--error-600); font-weight: 700; text-decoration: none; border: 0; }
div.woocommerce .optional { color: var(--ink-soft); font-size: .92em; font-weight: 450; }
.woocommerce-input-wrapper { display: block; }
div.woocommerce .form-row .description,
div.woocommerce em { color: var(--ink-soft); font-size: var(--fs-micro); font-style: normal; }
div.woocommerce .form-row.woocommerce-invalid label:not(.checkbox):not(.woocommerce-form__label-for-checkbox) { color: var(--error-600); }
div.woocommerce .form-row.woocommerce-invalid :is(input.input-text, select, .select2-selection) {
	border-color: var(--error-600);
	box-shadow: 0 0 0 3px color-mix(in oklab, var(--error-600) 14%, transparent);
}
div.woocommerce .form-row.woocommerce-validated input.input-text { border-color: color-mix(in oklab, var(--moss-500) 55%, transparent); }
.checkout-inline-error-message,
div.woocommerce .form-row .woocommerce-error-message {
	display: flex;
	align-items: flex-start;
	gap: .35rem;
	margin: .15rem 0 0;
	color: var(--error-600);
	font-size: var(--fs-micro);
	font-weight: 650;
}
.checkout-inline-error-message::before {
	content: "";
	flex: none;
	width: 1rem;
	height: 1rem;
	margin-top: .1rem;
	background: currentColor;
	-webkit-mask: var(--i-alert) center / contain no-repeat;
	mask: var(--i-alert) center / contain no-repeat;
}
div.woocommerce textarea { min-height: 7rem; }
div.woocommerce fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
div.woocommerce legend { padding: 0; }
div.woocommerce .clear { display: none; }

/* Checkboxes and radios in classic forms */
div.woocommerce input[type="checkbox"],
.wc_payment_methods input[type="radio"],
div.woocommerce input[type="radio"] {
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	min-height: 0;
	margin: 0;
	padding: 0;
	border: 1.5px solid color-mix(in oklab, var(--humus-900) 42%, transparent);
	background: var(--lichen-50) center / .9rem no-repeat;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	transition: background-color var(--d-1) var(--ease-out), border-color var(--d-1) var(--ease-out), box-shadow var(--d-1) var(--ease-out);
}
div.woocommerce input[type="checkbox"] { border-radius: 6px; }
div.woocommerce input[type="checkbox"]:checked {
	border-color: var(--moss-700);
	background-color: var(--moss-700);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f2f5e8' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 12.5 4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
div.woocommerce input[type="radio"],
.wc_payment_methods input[type="radio"] { display: inline-grid; place-content: center; border-radius: 50%; }
div.woocommerce input[type="radio"]::before,
.wc_payment_methods input[type="radio"]::before {
	content: "";
	width: .62rem;
	height: .62rem;
	border-radius: 50%;
	background: radial-gradient(circle at 35% 30%, var(--gold-300), var(--gold-600));
	transform: scale(0);
	transition: transform var(--d-2) var(--ease-out);
}
div.woocommerce input[type="radio"]:checked,
.wc_payment_methods input[type="radio"]:checked { border-color: var(--moss-700); background-color: var(--moss-900); }
div.woocommerce input[type="radio"]:checked::before,
.wc_payment_methods input[type="radio"]:checked::before { transform: scale(1); }
div.woocommerce input[type="checkbox"]:hover,
div.woocommerce input[type="radio"]:hover { border-color: var(--moss-700); }
div.woocommerce input[type="checkbox"]:focus-visible,
div.woocommerce input[type="radio"]:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
div.woocommerce input[type="checkbox"]:focus,
div.woocommerce input[type="radio"]:focus { box-shadow: none; }

.woocommerce-form__label-for-checkbox,
div.woocommerce label.checkbox {
	display: inline-flex;
	align-items: flex-start;
	gap: .7rem;
	color: var(--ink);
	font-size: var(--fs-small);
	font-weight: 550;
	line-height: 1.45;
	cursor: pointer;
}
.woocommerce-form__label-for-checkbox input { margin-top: .05rem !important; }

/* Select2 / selectWoo (country and state) */
div.woocommerce .select2-container { width: 100% !important; }
.select2-container--default .select2-selection--single {
	display: flex;
	align-items: center;
	height: 3.25rem;
	border: 1px solid var(--shop-field-bd);
	border-radius: var(--r-sm);
	background: var(--lichen-50);
	transition: border-color var(--d-1) var(--ease-out), box-shadow var(--d-1) var(--ease-out);
}
.select2-container--default .select2-selection--single:hover { border-color: color-mix(in oklab, var(--humus-900) 40%, transparent); }
.select2-container--default .select2-selection--single .select2-selection__rendered {
	padding: 0 2.75rem 0 1rem;
	color: var(--ink);
	font-size: 1rem;
	line-height: 1.3;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--humus-600); }
.select2-container--default .select2-selection--single .select2-selection__arrow { top: 0; right: .7rem; width: 1.4rem; height: 100%; }
.select2-container--default .select2-selection--single .select2-selection__arrow b {
	top: 50%;
	left: 50%;
	width: 1.1rem;
	height: 1.1rem;
	margin: -.55rem 0 0 -.55rem;
	border: 0;
	background: var(--ink);
	-webkit-mask: var(--i-chevron) center / contain no-repeat;
	mask: var(--i-chevron) center / contain no-repeat;
	transition: transform var(--d-2) var(--ease-out);
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b { transform: rotate(180deg); }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--moss-700);
	box-shadow: var(--shop-ring);
	outline: none;
}
.select2-dropdown {
	overflow: hidden;
	border: 1px solid var(--line);
	border-radius: var(--r-sm);
	background: var(--lichen-50);
	box-shadow: var(--shadow-2);
	color: var(--ink);
}
.select2-container--open .select2-dropdown--below { margin-top: 4px; border-top: 1px solid var(--line); border-radius: var(--r-sm); }
.select2-container--open .select2-dropdown--above { margin-top: -4px; border-bottom: 1px solid var(--line); border-radius: var(--r-sm); }
.select2-search--dropdown { padding: .6rem; }
.select2-container--default .select2-search--dropdown .select2-search__field {
	min-height: 2.6rem;
	padding: .5rem .8rem;
	border: 1px solid var(--shop-field-bd);
	border-radius: var(--r-xs);
	background: var(--lichen-50);
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
	outline: none;
	border-color: var(--moss-700);
	background-color: var(--lichen-50);
	box-shadow: var(--shop-ring);
}
.select2-results__option { padding: .6rem 1rem; font-size: var(--fs-small); }
.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] { background: var(--lichen-200); }
.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted[data-selected] { background: var(--moss-700); color: var(--lichen-50); }

/* Buttons inside WooCommerce markup */
div.woocommerce .button.alt,
.woocommerce-page .button.alt,
#place_order,
.wc-proceed-to-checkout .checkout-button {
	--btn-bg: var(--gold-500);
	--btn-fg: var(--moss-950);
	box-shadow: 0 1px 0 rgb(255 255 255 / .35) inset, 0 10px 30px -12px rgb(217 174 69 / .65);
}
div.woocommerce .button.alt:hover,
#place_order:hover,
.wc-proceed-to-checkout .checkout-button:hover {
	--btn-bg: var(--gold-400);
	box-shadow: 0 1px 0 rgb(255 255 255 / .45) inset, 0 16px 40px -14px rgb(229 188 85 / .8);
}
div.woocommerce .button.alt::after,
#place_order::after,
.wc-proceed-to-checkout .checkout-button::after,
#main :where(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button)::after {
	content: "";
	position: absolute;
	inset: -40% auto -40% -30%;
	z-index: -1;
	width: 34%;
	background: linear-gradient(100deg, transparent, rgb(255 251 230 / .75) 45%, rgb(255 255 255 / .9) 50%, rgb(255 251 230 / .75) 55%, transparent);
	transform: translateX(-140%) skewX(-18deg);
	pointer-events: none;
}
div.woocommerce .button.alt:is(:hover, :focus-visible)::after,
#place_order:is(:hover, :focus-visible)::after,
.wc-proceed-to-checkout .checkout-button:is(:hover, :focus-visible)::after,
#main :where(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button):is(:hover, :focus-visible)::after {
	transform: translateX(520%) skewX(-18deg);
	transition: transform 900ms var(--ease-out);
}
div.woocommerce button.button:not(.alt):not(.btn),
div.woocommerce a.button:not(.alt):not(.btn):not(.checkout-button) { min-height: 2.75rem; padding: .6rem 1.25rem; font-size: .9375rem; }
.woocommerce-Button,
.woocommerce-button { white-space: normal; }

/* Loading overlay (jQuery blockUI) */
.blockUI.blockOverlay {
	background: var(--lichen-100) !important;
	opacity: .6 !important;
	cursor: progress !important;
	border-radius: inherit;
}
.blockUI.blockOverlay::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.75rem;
	height: 1.75rem;
	margin: -.875rem 0 0 -.875rem;
	border: 2px solid var(--moss-700);
	border-right-color: transparent;
	border-radius: 50%;
	animation: ormus-spin .7s linear infinite;
}

/* Tables */
div.woocommerce table.shop_table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	border-spacing: 0;
	font-size: var(--fs-small);
}
div.woocommerce table.shop_table th,
div.woocommerce table.shop_table td {
	padding: .9rem .5rem;
	border: 0;
	border-bottom: 1px solid var(--line);
	text-align: left;
	vertical-align: middle;
}
div.woocommerce table.shop_table th:first-child,
div.woocommerce table.shop_table td:first-child { padding-left: 0; }
div.woocommerce table.shop_table th:last-child,
div.woocommerce table.shop_table td:last-child { padding-right: 0; }
div.woocommerce table.shop_table thead th {
	padding-top: 0;
	color: var(--ink-soft);
	font-size: var(--fs-micro);
	font-weight: 650;
	letter-spacing: .08em;
	text-transform: uppercase;
}
div.woocommerce table.shop_table .amount { font-variant-numeric: tabular-nums; white-space: nowrap; }

/* Prices, stock, ratings */
div.woocommerce .price del,
div.woocommerce del .amount { opacity: .6; }
div.woocommerce ins { text-decoration: none; }
.stock { font-size: var(--fs-small); font-weight: 600; }
.stock.in-stock { color: var(--moss-700); }
.stock.out-of-stock { color: var(--error-600); }

/* WooCommerce's star markup (.star-rating in widgets and classic templates,
   the Blocks rating classes in block grids) is drawn as the same five drops
   as .drops: humus 15% base, gold-600 fill, never a star row. :root lifts
   the selectors over the Blocks rules that print "SSSSS" in a star font. */
:root :is(.star-rating, .wc-block-grid__product-rating__stars, .wc-block-components-product-rating__stars, .wc-block-product-review-rating__stars) {
	position: relative;
	display: inline-block;
	width: 5.25rem;
	height: 1.05rem;
	margin: 0;
	overflow: hidden;
	vertical-align: middle;
	font-family: inherit;
	font-size: 0;
	line-height: 0;
}
:root :is(.star-rating, .wc-block-grid__product-rating__stars, .wc-block-components-product-rating__stars, .wc-block-product-review-rating__stars)::before,
:root :is(.star-rating, .wc-block-grid__product-rating__stars, .wc-block-components-product-rating__stars, .wc-block-product-review-rating__stars) > span::before {
	content: "";
	position: absolute;
	inset: 0 auto 0 0;
	width: 5.25rem;
	opacity: 1;
	-webkit-mask: var(--i-drop) left center / 1.05rem 1.05rem repeat-x;
	mask: var(--i-drop) left center / 1.05rem 1.05rem repeat-x;
}
:root :is(.star-rating, .wc-block-grid__product-rating__stars, .wc-block-components-product-rating__stars, .wc-block-product-review-rating__stars)::before { background: color-mix(in oklab, var(--humus-900) 15%, transparent); }
:root :is(.star-rating, .wc-block-grid__product-rating__stars, .wc-block-components-product-rating__stars, .wc-block-product-review-rating__stars) > span {
	position: absolute;
	inset: 0 auto 0 0;
	padding: 0;
	overflow: hidden;
	font-size: 0;
}
:root :is(.star-rating, .wc-block-grid__product-rating__stars, .wc-block-components-product-rating__stars, .wc-block-product-review-rating__stars) > span::before { background: var(--gold-600); }

/* Variation data in tables (Menge: 3 Flaschen) */
div.woocommerce dl.variation {
	display: flex;
	flex-wrap: wrap;
	gap: 0 .35rem;
	margin: .25rem 0 0;
	color: var(--ink-soft);
	font-size: var(--fs-micro);
}
div.woocommerce dl.variation dt { font-weight: 600; }
div.woocommerce dl.variation dd { margin: 0 .6rem 0 0; }
div.woocommerce dl.variation p { margin: 0; }

/* Quantity: stepper (shop.js wraps the input) and plain fallback */
div.woocommerce .quantity input.qty { width: 4.75rem; text-align: center; font-weight: 650; font-variant-numeric: tabular-nums; }
div.woocommerce .quantity.qty-stepper { height: 2.85rem; }
div.woocommerce .quantity.qty-stepper input.qty { width: 2.6rem; min-height: 0; }
.qty-stepper button { transition: background-color var(--d-1) var(--ease-out); }
.qty-stepper button .icon { width: 1rem; height: 1rem; }
.qty-stepper button:disabled { opacity: .35; cursor: default; background: none; }
.qty-stepper:focus-within { border-color: var(--moss-700); box-shadow: var(--shop-ring); }

/* ==========================================================================
   7. Classic cart ([woocommerce_cart])
   ========================================================================== */

.woocommerce-cart div.woocommerce:has(> .woocommerce-cart-form) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(19rem, 25rem);
	align-items: start;
	column-gap: clamp(2rem, 1rem + 3.5vw, 4.5rem);
}
.woocommerce-cart div.woocommerce > * { grid-column: 1 / -1; }
.woocommerce-cart div.woocommerce > .woocommerce-notices-wrapper { grid-row: 1; }
.woocommerce-cart div.woocommerce > .woocommerce-cart-form { grid-row: 2; grid-column: 1; min-width: 0; }
.woocommerce-cart div.woocommerce > .cart-collaterals { grid-row: 2; grid-column: 2; position: sticky; top: var(--shop-sticky-top); }

table.shop_table.cart thead th.product-name { padding-left: 0; }
table.shop_table.cart td { padding-block: 1.35rem; }
table.shop_table.cart td.product-remove { width: 3rem; padding-right: 0; }
table.shop_table.cart td.product-thumbnail { width: 7.25rem; }
table.shop_table.cart td.product-thumbnail a,
table.shop_table.cart td.product-thumbnail > img {
	display: grid;
	place-items: center;
	width: 6rem;
	aspect-ratio: 1;
	overflow: hidden;
	isolation: isolate;
	border-radius: var(--r-md);
	background: radial-gradient(110% 80% at 30% 0%, var(--lichen-50), transparent 65%), var(--lichen-200);
}
table.shop_table.cart td.product-thumbnail img { width: 88%; height: auto; mix-blend-mode: multiply; }
table.shop_table.cart td.product-name { font-size: 1rem; }
table.shop_table.cart td.product-name > a {
	color: var(--ink);
	font-family: var(--font-display);
	font-size: 1.2rem;
	font-weight: 430;
	line-height: 1.25;
	letter-spacing: -0.012em;
	text-decoration: none;
}
table.shop_table.cart td.product-name > a:hover { text-decoration: underline; text-underline-offset: .18em; }
/* The supply part of a product name starts its own line but stays inline,
   so a quantity badge that follows ("× 3") sits beside it, not below. */
.item-variant { display: inline; color: var(--ink-soft); font-family: var(--font-display); font-size: .86em; font-style: italic; font-weight: 400; }
.item-variant::before { content: "\A"; white-space: pre; }
table.shop_table.cart td.product-price,
table.shop_table.cart td.product-subtotal { font-weight: 650; white-space: nowrap; }
table.shop_table.cart td.product-subtotal { text-align: right; font-size: 1rem; }
table.shop_table.cart thead th.product-subtotal { text-align: right; }
table.shop_table.cart a.remove {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	color: var(--ink-soft);
	text-decoration: none;
	transition: background-color var(--d-1) var(--ease-out), color var(--d-1) var(--ease-out);
}
table.shop_table.cart a.remove .icon { width: 1.2rem; height: 1.2rem; }
table.shop_table.cart a.remove:hover { background: var(--error-100); color: var(--error-600); }

table.shop_table.cart td.actions { padding-block: 1.5rem 0; border-bottom: 0; text-align: right; }
table.shop_table.cart td.actions .coupon { display: flex; flex-wrap: wrap; float: left; gap: .5rem; max-width: 100%; }
.coupon-error-notice {
	display: flex;
	flex-basis: 100%;
	align-items: flex-start;
	gap: .35rem;
	margin: .15rem 0 0;
	color: var(--error-600);
	font-size: var(--fs-micro);
	font-weight: 650;
	text-align: left;
}
.coupon-error-notice::before {
	content: "";
	flex: none;
	width: 1rem;
	height: 1rem;
	margin-top: .1rem;
	background: currentColor;
	-webkit-mask: var(--i-alert) center / contain no-repeat;
	mask: var(--i-alert) center / contain no-repeat;
}
div.woocommerce input.has-error { border-color: var(--error-600); box-shadow: 0 0 0 3px color-mix(in oklab, var(--error-600) 14%, transparent); }
table.shop_table.cart td.actions .coupon .input-text { width: 13rem; min-height: 2.75rem; padding-block: .55rem; }
table.shop_table.cart td.actions .button { --btn-bg: transparent; --btn-fg: var(--ink); --btn-bd: color-mix(in oklab, var(--humus-900) 28%, transparent); }
table.shop_table.cart td.actions .button:not(:disabled):hover { --btn-bg: color-mix(in oklab, var(--humus-900) 6%, transparent); --btn-bd: var(--humus-900); }

/* Totals card */
.cart-collaterals .cart_totals {
	padding: clamp(1.4rem, 1rem + 1.5vw, 2rem);
	border-radius: var(--r-lg);
	background: var(--lichen-50);
	box-shadow: var(--shadow-2);
}
.cart_totals > h2,
#order_review_heading {
	margin: 0 0 .75rem;
	font-size: clamp(1.45rem, 1.25rem + .6vw, 1.75rem);
	font-weight: 420;
	letter-spacing: -0.02em;
}
.cart_totals table.shop_table,
.cart_totals table.shop_table tbody { display: block; }
.cart_totals table.shop_table tr {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: baseline;
	gap: .5rem 1rem;
	padding: .85rem 0;
	border-bottom: 1px solid var(--line);
}
.cart_totals table.shop_table tr:last-child { border-bottom: 0; }
div.woocommerce .cart_totals table.shop_table :is(th, td) { display: block; padding: 0; border: 0; }
div.woocommerce .cart_totals table.shop_table th { color: var(--ink-soft); font-weight: 600; }
div.woocommerce .cart_totals table.shop_table td { font-weight: 650; text-align: right; font-variant-numeric: tabular-nums; }
.cart_totals table.shop_table tr.woocommerce-shipping-totals { grid-template-columns: minmax(0, 1fr); }
div.woocommerce .cart_totals tr.woocommerce-shipping-totals td { text-align: left; font-weight: 500; }
.cart_totals tr.order-total { padding-top: 1.1rem; }
div.woocommerce .cart_totals tr.order-total th { color: var(--ink); font-size: 1rem; font-weight: 650; }
.cart_totals tr.order-total td strong,
.woocommerce-checkout-review-order-table tr.order-total td strong {
	font-family: var(--font-display);
	font-size: 1.9rem;
	font-weight: 450;
	letter-spacing: -0.02em;
	line-height: 1;
}
.includes_tax,
.tax_label {
	display: block;
	margin-top: .35rem;
	color: var(--ink-soft);
	font-family: var(--font-ui);
	font-size: var(--fs-micro);
	font-weight: 450;
}

/* Shipping methods as quiet choices */
ul#shipping_method,
ul.woocommerce-shipping-methods {
	display: grid;
	gap: .5rem;
	margin: .65rem 0 0;
	padding: 0;
	list-style: none;
}
ul.woocommerce-shipping-methods li {
	display: flex;
	align-items: center;
	gap: .7rem;
	min-height: 3rem;
	padding: .6rem .9rem;
	border: 1px solid var(--line);
	border-radius: var(--r-sm);
	background: var(--lichen-100);
	transition: border-color var(--d-1) var(--ease-out), background-color var(--d-1) var(--ease-out);
}
ul.woocommerce-shipping-methods li:has(input:checked),
ul.woocommerce-shipping-methods li:has(input[type="hidden"]) { border-color: var(--moss-700); background: var(--lichen-50); box-shadow: inset 0 0 0 1px var(--moss-700); }
ul.woocommerce-shipping-methods li label { flex: 1; color: var(--ink); font-size: var(--fs-small); font-weight: 600; cursor: pointer; }
ul.woocommerce-shipping-methods li label .amount { float: right; margin-left: .5rem; font-weight: 700; }
.woocommerce-shipping-destination,
.woocommerce-shipping-contents { margin: .75rem 0 0; color: var(--ink-soft); font-size: var(--fs-micro); line-height: 1.5; }
.woocommerce-shipping-calculator { margin-top: .5rem; }
.shipping-calculator-button {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	color: var(--moss-700);
	font-size: var(--fs-small);
	font-weight: 650;
	text-decoration: none;
}
.shipping-calculator-button::after {
	content: "";
	width: 1rem;
	height: 1rem;
	background: currentColor;
	-webkit-mask: var(--i-chevron) center / contain no-repeat;
	mask: var(--i-chevron) center / contain no-repeat;
	transition: transform var(--d-2) var(--ease-out);
}
.shipping-calculator-button[aria-expanded="true"]::after { transform: rotate(180deg); }
.shipping-calculator-form { margin-top: 1rem; }

.wc-proceed-to-checkout { margin-top: 1.25rem; }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 3.75rem; font-size: 1.0625rem; }

.pay-assure {
	display: block;
	margin: .9rem 0 0;
	color: var(--ink-soft);
	font-size: var(--fs-micro);
	font-weight: 550;
	line-height: 1.4;
	text-align: center;
}
.pay-assure .icon { display: inline-block; width: 1rem; height: 1rem; margin-right: .35rem; color: var(--moss-600); vertical-align: -.2em; }
.pay-assure--block-checkout,
.pay-assure--cart { margin-top: 1rem; }

/* Cross-sells under the cart */
.cross-sells { margin-top: clamp(3rem, 2rem + 4vw, 5.5rem); padding-top: clamp(2rem, 3vw, 3rem); border-top: 1px solid var(--line); }
.cross-sells > h2 { margin: 0 0 clamp(1.5rem, 3vw, 2.25rem); font-size: var(--fs-h3); font-weight: 420; }

/* ==========================================================================
   8. Classic checkout ([woocommerce_checkout])
   ========================================================================== */

.woocommerce-form-login-toggle .woocommerce-info,
.woocommerce-form-coupon-toggle .woocommerce-info {
	margin-bottom: .75rem;
	border: 1px dashed color-mix(in oklab, var(--humus-900) 24%, transparent);
	background: transparent;
	font-weight: 550;
}
.woocommerce-form-coupon-toggle .woocommerce-info::before { -webkit-mask-image: var(--i-tag); mask-image: var(--i-tag); }
.woocommerce-form-login-toggle .woocommerce-info::before { -webkit-mask-image: var(--i-user); mask-image: var(--i-user); }
.woocommerce-form-coupon-toggle + .checkout_coupon,
form.checkout_coupon,
.woocommerce-checkout form.woocommerce-form-login {
	margin: 0 0 1.5rem;
	padding: 1.25rem;
	border-radius: var(--r-md);
	background: var(--lichen-50);
	border: 1px solid var(--line);
}
form.checkout_coupon::after { content: ""; display: table; clear: both; }
form.checkout_coupon .form-row { margin: 0; }
form.checkout_coupon .form-row-first { float: left; width: calc(100% - 11rem); }
form.checkout_coupon .form-row-last { float: right; width: 10.25rem; }
form.checkout_coupon .button { width: 100%; }
form.checkout_coupon > p:not(.form-row) { margin: 0 0 .75rem; color: var(--ink-soft); font-size: var(--fs-small); }

form.checkout.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(20rem, 28rem);
	align-items: start;
	column-gap: clamp(2rem, 1rem + 3.5vw, 4.5rem);
}
:is(.woocommerce-form-coupon-toggle, .woocommerce-form-login-toggle) ~ form.checkout.woocommerce-checkout { margin-top: clamp(1.5rem, 1rem + 1.5vw, 2.5rem); }
form.checkout.woocommerce-checkout > * { grid-column: 1; }
form.checkout.woocommerce-checkout > .woocommerce-NoticeGroup { grid-column: 1 / -1; grid-row: 1; }
form.checkout.woocommerce-checkout > #customer_details { grid-row: 2; }
form.checkout.woocommerce-checkout > .checkout-summary { grid-column: 2; grid-row: 2; position: sticky; top: var(--shop-sticky-top); }

#customer_details .col-1,
#customer_details .col-2 { width: auto; float: none; }
#customer_details .col-2 { margin-top: clamp(2rem, 3vw, 2.75rem); }
.woocommerce-billing-fields > h3,
.woocommerce-shipping-fields > h3,
.woocommerce-additional-fields > h3,
.woocommerce-account-fields > h3 {
	margin: 0 0 1.25rem;
	font-size: clamp(1.45rem, 1.25rem + .6vw, 1.75rem);
	font-weight: 420;
	letter-spacing: -0.02em;
}
#ship-to-different-address { font-family: var(--font-ui); }
#ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: .75rem;
	font-family: var(--font-display);
	font-size: clamp(1.25rem, 1.1rem + .5vw, 1.5rem);
	font-weight: 420;
	letter-spacing: -0.015em;
	cursor: pointer;
}
.woocommerce-shipping-fields .shipping_address { margin-top: 1rem; }
.woocommerce-additional-fields { margin-top: clamp(2rem, 3vw, 2.75rem); padding-top: clamp(1.5rem, 2.5vw, 2rem); border-top: 1px solid var(--line); }

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-address-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1rem;
}
:is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-additional-fields__field-wrapper) > .form-row { grid-column: 1 / -1; }
:is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > .form-row-first { grid-column: 1; }
:is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper) > .form-row-last { grid-column: 2; }
#billing_address_2_field,
#shipping_address_2_field { margin-top: -.5rem; }

/* Order summary card */
.checkout-summary {
	padding: clamp(1.4rem, 1rem + 1.5vw, 2rem);
	border-radius: var(--r-lg);
	background: var(--lichen-50);
	box-shadow: var(--shadow-2);
}
.woocommerce-checkout-review-order-table thead { display: none; }
div.woocommerce table.woocommerce-checkout-review-order-table td.product-name {
	padding-block: .85rem;
	color: var(--ink);
	font-family: var(--font-display);
	font-size: 1.05rem;
	line-height: 1.3;
}
.woocommerce-checkout-review-order-table .product-quantity {
	display: inline-grid;
	place-items: center;
	min-width: 1.6rem;
	height: 1.6rem;
	margin-left: .35rem;
	padding: 0 .4rem;
	border-radius: var(--r-pill);
	background: var(--moss-900);
	color: var(--lichen-50);
	font-family: var(--font-ui);
	font-size: .75rem;
	font-weight: 700;
	vertical-align: .1em;
}
div.woocommerce table.woocommerce-checkout-review-order-table td.product-total { text-align: right; font-weight: 650; white-space: nowrap; }
.woocommerce-checkout-review-order-table tfoot { display: block; }
.woocommerce-checkout-review-order-table tfoot tr {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	align-items: baseline;
	gap: .5rem 1rem;
	padding: .8rem 0;
	border-bottom: 1px solid var(--line);
}
div.woocommerce table.woocommerce-checkout-review-order-table tfoot :is(th, td) { display: block; padding: 0; border: 0; }
div.woocommerce table.woocommerce-checkout-review-order-table tfoot th { color: var(--ink-soft); font-weight: 600; }
div.woocommerce table.woocommerce-checkout-review-order-table tfoot td { text-align: right; font-weight: 650; }
.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals { grid-template-columns: 1fr; }
div.woocommerce table.woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals td { text-align: left; font-weight: 500; }
.woocommerce-checkout-review-order-table tfoot tr.order-total { border-bottom: 0; padding-top: 1rem; }
div.woocommerce table.woocommerce-checkout-review-order-table tfoot tr.order-total th { color: var(--ink); font-size: 1rem; font-weight: 650; }
.woocommerce-checkout-review-order-table { display: block; }
.woocommerce-checkout-review-order-table tbody { display: table; width: 100%; border-collapse: collapse; }

/* Payment methods as selectable cards */
#payment { margin-top: 1.25rem; }
#payment ul.payment_methods {
	display: grid;
	gap: .6rem;
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
}
#payment li.wc_payment_method {
	position: relative;
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	background: var(--lichen-100);
	transition: border-color var(--d-2) var(--ease-out), background-color var(--d-2) var(--ease-out), box-shadow var(--d-2) var(--ease-out);
}
#payment li.wc_payment_method:hover { border-color: color-mix(in oklab, var(--moss-700) 55%, transparent); }
#payment li.wc_payment_method:has(> input:checked) {
	border-color: var(--moss-700);
	background: var(--lichen-50);
	box-shadow: inset 0 0 0 1px var(--moss-700), var(--shadow-1);
}
#payment li.wc_payment_method > input { position: absolute; top: 1.05rem; left: 1rem; }
#payment li.wc_payment_method > label {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	min-height: 3.35rem;
	padding: .85rem 1rem .85rem 3.1rem;
	color: var(--ink);
	font-size: 1rem;
	font-weight: 650;
	cursor: pointer;
}
#payment li.wc_payment_method > label img { max-height: 1.6rem; width: auto; }
#payment .payment_box {
	margin: 0 1rem 1rem 3.1rem;
	padding: .8rem 1rem;
	border-radius: var(--r-sm);
	background: var(--lichen-100);
	color: var(--ink-soft);
	font-size: var(--fs-small);
	line-height: 1.5;
}
#payment .payment_box p { margin: 0; }
#payment .payment_box p + p { margin-top: .5rem; }
#payment .woocommerce-notice,
#payment .woocommerce-info { margin-bottom: 1rem; }
#payment .place-order { margin: 0; }
.woocommerce-terms-and-conditions-wrapper { margin-bottom: 1.25rem; }
.woocommerce-privacy-policy-text { color: var(--ink-soft); font-size: var(--fs-micro); line-height: 1.55; }
.woocommerce-privacy-policy-text p { margin: 0 0 .9rem; }
.woocommerce-privacy-policy-text a,
.woocommerce-terms-and-conditions-link { color: var(--moss-700); font-weight: 650; }
.woocommerce-terms-and-conditions {
	margin: 0 0 1rem;
	padding: 1rem;
	border: 1px solid var(--line);
	border-radius: var(--r-sm);
	background: var(--lichen-100);
	font-size: var(--fs-small);
}
.woocommerce-terms-and-conditions-wrapper .form-row { margin: 0; }
/* Text, link and required mark flow as one sentence beside the box */
div.woocommerce .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox {
	position: relative;
	display: block;
	padding-left: 1.95rem;
}
div.woocommerce .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox input[type="checkbox"] {
	position: absolute;
	top: .12rem;
	left: 0;
	margin: 0 !important;
}
.woocommerce-terms-and-conditions-wrapper abbr.required { margin-left: .1rem; }
#place_order { width: 100%; min-height: 3.85rem; font-size: 1.0625rem; white-space: normal; }
form.checkout.processing #place_order { color: transparent !important; pointer-events: none; }
form.checkout.processing #place_order::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 1.3rem;
	height: 1.3rem;
	margin: -.65rem 0 0 -.65rem;
	border: 2px solid var(--moss-950);
	border-right-color: transparent;
	border-radius: 50%;
	animation: ormus-spin .7s linear infinite;
}

/* ==========================================================================
   9. Block cart (re-skin of WooCommerce Blocks)
   ========================================================================== */

#main { --wc-separator-color: var(--line); }

#main :where(.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout) { margin: 0; color: var(--ink); font-family: var(--font-ui); }
#main :where(.wc-block-components-sidebar-layout) { margin-bottom: 0; column-gap: clamp(2rem, 1rem + 3.5vw, 4.5rem); }
@container (min-width: 920px) {
	#main :where(.wc-block-components-sidebar) { flex-basis: 25rem; width: 25rem; }
	#main :where(.wc-block-cart-items td) { padding-block: 1.5rem; border-top: 1px solid var(--line); }
	#main :where(.wc-block-cart-item__image) { width: 7.5rem; padding-right: 1.25rem; }
}
@container (max-width: 919px) {
	#main :where(table.wc-block-cart-items) { width: 100%; }
	#main :where(table.wc-block-cart-items .wc-block-cart-items__row) { grid-template-columns: 4.75rem minmax(0, 1fr) auto; column-gap: .9rem; padding-block: 1.25rem; }
	#main :where(table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__image) { padding-right: 0; }
	#main :where(table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__product) { grid-column: 2 / 3; }
	#main :where(table.wc-block-cart-items .wc-block-cart-items__row .wc-block-cart-item__total) { grid-column: 3; grid-row: 1; }
	#main :where(.wc-block-cart-item__product .wc-block-components-product-name) { font-size: 1.1rem; }
}

/* Line items */
#main :where(table.wc-block-cart-items) { border-bottom: 1px solid var(--line); }
#main :where(.wc-block-cart-items__header th) {
	padding: 0 0 .9rem;
	color: var(--ink-soft);
	font-size: var(--fs-micro);
	font-weight: 650;
	letter-spacing: .08em;
	text-transform: uppercase;
}
#main :where(.wc-block-cart-items__header-total) { text-align: right; }
#main :where(.wc-block-cart-item__image a, .wc-block-components-order-summary-item__image) {
	display: grid;
	place-items: center;
	aspect-ratio: 1;
	overflow: hidden;
	isolation: isolate;
	border-radius: var(--r-md);
	background: radial-gradient(110% 80% at 30% 0%, var(--lichen-50), transparent 65%), var(--lichen-200);
}
#main :where(.wc-block-cart-item__image img, .wc-block-components-order-summary-item__image img) { width: 88%; height: auto; max-width: none; mix-blend-mode: multiply; }
#main :where(.wc-block-cart-item__wrap) { display: flex; flex-direction: column; gap: .3rem; }
#main :where(.wc-block-cart-item__product .wc-block-components-product-name) {
	color: var(--ink);
	font-family: var(--font-display);
	font-size: clamp(1.2rem, 1.1rem + .35vw, 1.4rem);
	font-weight: 430;
	line-height: 1.2;
	letter-spacing: -0.015em;
	text-decoration: none;
}
#main :where(.wc-block-cart-item__product .wc-block-components-product-name:hover) { text-decoration: underline; text-underline-offset: .18em; }
#main :where(.wc-block-cart-item__prices, .wc-block-components-product-price) { color: var(--ink-soft); font-size: var(--fs-small); font-weight: 600; font-variant-numeric: tabular-nums; }
#main :where(.wc-block-components-product-metadata) { color: var(--ink-soft); font-size: var(--fs-micro); line-height: 1.5; }
#main :where(.wc-block-components-product-details) { margin: 0; padding: 0; list-style: none; }
#main :where(.wc-block-components-product-details__name) { font-weight: 650; }
#main :where(.wc-block-components-product-badge, .wc-block-components-sale-badge) {
	padding: .15rem .55rem;
	border: 0;
	border-radius: var(--r-pill);
	background: var(--gold-500);
	color: var(--moss-950);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: none;
}
#main :where(.wc-block-cart-item__quantity) { display: flex; align-items: center; gap: .75rem; margin-top: .6rem; }
#main :where(.wc-block-cart-item__total) { font-size: 1.05rem; font-weight: 700; font-variant-numeric: tabular-nums; }
#main :where(.wc-block-cart-item__total .wc-block-components-product-price) { color: var(--ink); font-size: 1.05rem; font-weight: 700; }

/* Quantity selector, drawn like the theme's .qty-stepper */
#main :where(.wc-block-components-quantity-selector) {
	display: inline-flex;
	align-items: center;
	width: auto;
	min-width: 0;
	height: 2.85rem;
	overflow: hidden;
	border: 1px solid var(--shop-field-bd);
	border-radius: var(--r-pill);
	background: var(--lichen-50);
}
#main :where(.wc-block-components-quantity-selector:focus-within) { border-color: var(--moss-700); box-shadow: var(--shop-ring); }
#main :where(.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input) {
	order: 2;
	width: 2.6rem;
	min-width: 0;
	height: 100%;
	min-height: 0;
	padding: 0;
	border: 0;
	background: none;
	box-shadow: none;
	color: var(--ink);
	font-size: 1rem;
	font-weight: 650;
	font-variant-numeric: tabular-nums;
	text-align: center;
}
#main :where(.wc-block-components-quantity-selector__button) {
	display: grid;
	place-items: center;
	width: 2.65rem;
	min-width: 0;
	height: 100%;
	padding: 0;
	border: 0;
	border-radius: var(--r-pill);
	background: none;
	color: var(--ink);
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1;
	opacity: 1;
	box-shadow: none;
}
#main :where(.wc-block-components-quantity-selector__button--minus) { order: 1; }
#main :where(.wc-block-components-quantity-selector__button--plus) { order: 3; }
#main :where(.wc-block-components-quantity-selector__button:hover:not(:disabled)) { background: color-mix(in oklab, var(--humus-900) 7%, transparent); }
#main :where(.wc-block-components-quantity-selector__button:focus-visible) { outline: 2px solid var(--focus); outline-offset: -3px; box-shadow: none; }
#main :where(.wc-block-components-quantity-selector__button:disabled) { opacity: .35; }
#main :where(.wc-block-cart-item__remove-link) {
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	color: var(--ink-soft);
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--d-1) var(--ease-out), color var(--d-1) var(--ease-out);
}
#main :where(.wc-block-cart-item__remove-link svg) { width: 1.25rem; height: 1.25rem; fill: currentColor; }
#main :where(.wc-block-cart-item__remove-link:hover) { background: var(--error-100); color: var(--error-600); }

/* Totals card (block cart sidebar and block checkout sidebar) */
#main :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) {
	align-self: flex-start;
	padding: clamp(1.25rem, .9rem + 1.4vw, 1.9rem);
	border-radius: var(--r-lg);
	background: var(--lichen-50);
	box-shadow: var(--shadow-2);
}
@media (min-width: 1000px) {
	#main :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) { position: sticky; top: var(--shop-sticky-top); }
}
#main :where(.wc-block-cart__totals-title) {
	display: block;
	margin: 0 0 .5rem;
	padding: 0;
	color: var(--ink);
	font-family: var(--font-display);
	font-size: clamp(1.45rem, 1.25rem + .6vw, 1.75rem);
	font-weight: 420;
	letter-spacing: -0.02em;
	text-transform: none;
}
#main :where(.wc-block-components-totals-wrapper) { padding-block: .9rem; border-top: 1px solid var(--line); }
#main :where(.wc-block-components-totals-wrapper:first-of-type),
#main :where(.wc-block-cart__totals-title + .wc-block-components-totals-wrapper) { border-top: 0; }
#main :where(.wc-block-components-sidebar .wc-block-components-totals-item, .wc-block-components-sidebar .wc-block-components-panel, .wc-block-components-sidebar .wc-block-components-totals-coupon) { padding-inline: 0; }
#main :where(.wc-block-components-totals-item) { gap: .25rem 1rem; font-size: var(--fs-small); }
#main :where(.wc-block-components-totals-item__label) { color: var(--ink-soft); font-weight: 600; }
#main :where(.wc-block-components-totals-item__value) { color: var(--ink); font-weight: 650; font-variant-numeric: tabular-nums; }
#main :where(.wc-block-components-totals-item__description) { color: var(--ink-soft); font-size: var(--fs-micro); }
#main :where(.wc-block-components-totals-footer-item) { align-items: baseline; }
#main :where(.wc-block-components-totals-footer-item .wc-block-components-totals-item__label) { color: var(--ink); font-size: 1rem; font-weight: 650; }
#main :where(.wc-block-components-totals-footer-item .wc-block-components-totals-item__value) {
	font-family: var(--font-display);
	font-size: 1.9rem;
	font-weight: 450;
	letter-spacing: -0.02em;
	line-height: 1;
}
#main :where(.wc-block-components-totals-footer-item-tax) { margin: .35rem 0 0; color: var(--ink-soft); font-size: var(--fs-micro); }
#main :where(.wc-block-components-totals-footer-item-tax .wc-block-components-formatted-money-amount) { font-family: var(--font-ui); font-size: inherit; font-weight: 600; letter-spacing: 0; }
#main :where(.wc-block-components-totals-shipping__change-address__link, .wc-block-components-totals-shipping__change-address-button) { color: var(--moss-700); font-weight: 650; }

/* Coupon panel */
#main :where(.wc-block-components-panel__button) {
	display: flex;
	align-items: center;
	gap: .5rem;
	min-height: 2.75rem;
	padding-top: 0;
	color: var(--moss-700);
	font-size: var(--fs-small);
	font-weight: 650;
}
#main :where(.wc-block-components-panel__button) > svg:first-child { display: none; }
#main :where(.wc-block-components-panel__button)::before {
	content: "";
	flex: none;
	width: 1.15rem;
	height: 1.15rem;
	background: currentColor;
	-webkit-mask: var(--i-tag) center / contain no-repeat;
	mask: var(--i-tag) center / contain no-repeat;
}
#main :where(.wc-block-components-panel__button-icon) { fill: currentColor; }
#main :where(.wc-block-components-totals-coupon__form) { display: flex; gap: .5rem; }
#main :where(.wc-block-components-totals-coupon__input) { flex: 1; margin-top: 0; }
#main :where(.wc-block-components-totals-coupon__button) {
	--btn-bg: var(--moss-900);
	--btn-fg: var(--lichen-50);
	min-height: 3.5rem;
	padding-inline: 1.15rem;
	border-radius: var(--r-pill);
	background: var(--moss-900);
	color: var(--lichen-50);
	font-weight: 650;
}

/* Proceed to checkout: gold pill with the dew glint */
#main :where(.wc-block-cart__submit) { margin: 1.25rem 0 0; }
#main :where(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button) {
	--btn-bg: var(--gold-500);
	--btn-fg: var(--moss-950);
	position: relative;
	isolation: isolate;
	overflow: hidden;
	width: 100%;
	min-height: 3.85rem;
	padding: 1rem 1.6rem;
	border: 0;
	border-radius: var(--r-pill);
	background: var(--btn-bg);
	color: var(--btn-fg);
	font-family: var(--font-ui);
	font-size: 1.0625rem;
	font-weight: 650;
	letter-spacing: .005em;
	text-decoration: none;
	box-shadow: 0 1px 0 rgb(255 255 255 / .35) inset, 0 10px 30px -12px rgb(217 174 69 / .65);
	transition: background-color var(--d-2) var(--ease-out), box-shadow var(--d-2) var(--ease-out), transform var(--d-2) var(--ease-out);
}
#main :where(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button):hover {
	--btn-bg: var(--gold-400);
	box-shadow: 0 1px 0 rgb(255 255 255 / .45) inset, 0 16px 40px -14px rgb(229 188 85 / .8);
}
#main :where(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button):focus { box-shadow: 0 1px 0 rgb(255 255 255 / .35) inset, 0 10px 30px -12px rgb(217 174 69 / .65); }
#main :where(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button):focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
#main :where(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button):active { transform: translateY(1px) scale(.995); }
#main :where(.wc-block-cart__submit-container--sticky) { box-shadow: 0 -14px 30px -18px rgb(11 26 16 / .45); }
#main :where(.wc-block-cart__submit-container--sticky)::before { display: none; }
#main :where(.wc-block-components-button__text) { position: relative; z-index: 1; }
#main :where(.wc-block-components-spinner)::after { border-color: var(--moss-950); border-right-color: transparent; }
#main :where(.wc-block-components-checkout-place-order-button--loading) { pointer-events: none; }
#main :where(.wc-block-cart__payment-options) { margin-top: .5rem; }

/* Empty block cart: the authored state replaces WooCommerce's inner blocks */
#main :where(.wp-block-woocommerce-empty-cart-block) { padding-top: 0; }
#main :where(.wp-block-woocommerce-empty-cart-block .cart-empty-state__title) { font-family: var(--font-display); }

/* Cross-sells block */
#main :where(.wp-block-woocommerce-cart-cross-sells-block) { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--line); }
#main :where(.wp-block-woocommerce-cart-cross-sells-block > h2, .wp-block-woocommerce-cart-cross-sells-block .wp-block-heading) { font-size: var(--fs-h4); font-family: var(--font-display); font-weight: 420; }
#main :where(.cross-sells-product) { text-align: left; }
#main :where(.cross-sells-product .wc-block-components-product-image) { overflow: hidden; border-radius: var(--r-md); background: var(--lichen-200); isolation: isolate; }
#main :where(.cross-sells-product .wc-block-components-product-image img) { mix-blend-mode: multiply; }
#main :where(.cross-sells-product .wc-block-components-product-name) { color: var(--ink); font-family: var(--font-display); font-size: 1.1rem; text-decoration: none; }
#main :where(.cross-sells-product .wp-block-button__link, .cross-sells-product .add_to_cart_button) { min-height: 2.5rem; padding: .5rem 1.1rem; font-size: .9375rem; }

/* ==========================================================================
   10. Block checkout
   ========================================================================== */

#main :where(.wc-block-checkout__form) { margin: 0; }
#main :where(.wc-block-components-checkout-step) { margin: 0 0 clamp(2rem, 1.5rem + 1.5vw, 2.75rem); padding: 0; border: 0; }
#main :where(.wc-block-components-checkout-step__heading) { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin: 0 0 1rem; }
#main :where(.wc-block-components-checkout-step__title) {
	margin: 0;
	color: var(--ink);
	font-family: var(--font-display);
	font-size: clamp(1.45rem, 1.25rem + .6vw, 1.75rem);
	font-weight: 420;
	line-height: 1.15;
	letter-spacing: -0.02em;
}
#main :where(.wc-block-components-checkout-step__heading-content) { color: var(--ink-soft); font-size: var(--fs-small); }
#main :where(.wc-block-components-checkout-step__heading-content a) { color: var(--moss-700); font-weight: 650; }
#main :where(.wc-block-components-checkout-step__description) { margin: 0 0 1rem; color: var(--ink-soft); font-size: var(--fs-small); }
#main :where(.wc-block-components-checkout-step__container) { padding: 0; }
#main :where(.wc-block-checkout__guest-checkout-notice) { margin: .75rem 0 0; color: var(--ink-soft); font-size: var(--fs-small); }
#main :where(.wc-block-components-checkout-step + .wc-block-components-checkout-step, .wc-block-checkout__order-notes, .wc-block-checkout__terms) { padding-top: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); border-top: 1px solid var(--line); }
#main :where(#contact .wc-block-components-address-form__email) { flex: 0 0 100%; width: 100%; }

/* Text inputs with floating labels */
#main :where(.wc-block-components-text-input) { margin-top: 1rem; }
#main :where(.wc-block-components-text-input input:is([type="text"], [type="email"], [type="tel"], [type="password"], [type="number"], [type="url"], [type="date"])) {
	height: 3.5rem;
	min-height: 0;
	margin: 0;
	padding: 0 .95rem;
	border: 1px solid var(--shop-field-bd);
	border-radius: var(--r-sm);
	background: var(--lichen-50);
	box-shadow: none;
	color: var(--ink);
	font-family: var(--font-ui);
	font-size: 1rem;
	line-height: 1.3;
	transition: border-color var(--d-1) var(--ease-out), box-shadow var(--d-1) var(--ease-out), background-color var(--d-1) var(--ease-out);
}
#main :where(.wc-block-components-text-input.is-active input, .wc-block-components-text-input input:-webkit-autofill) { padding: 1.35rem .95rem .3rem; }
#main :where(.wc-block-components-text-input input:hover) { border-color: color-mix(in oklab, var(--humus-900) 40%, transparent); }
#main :where(.wc-block-components-text-input input:focus) {
	border: 1px solid var(--moss-700);
	outline: none;
	background-color: var(--lichen-50);
	box-shadow: var(--shop-ring);
}
#main :where(.wc-block-components-text-input label) {
	top: 1.75rem;
	left: calc(.95rem + 1px);
	max-width: calc(100% - 2rem);
	color: var(--ink-soft);
	font-family: var(--font-ui);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.3;
	transform: translateY(-50%);
}
#main :where(.wc-block-components-text-input.is-active label, .wc-block-components-text-input input:-webkit-autofill + label) {
	top: .45rem;
	color: var(--ink-soft);
	font-weight: 650;
	transform: scale(.76);
}
#main :where(.wc-block-components-text-input.has-error input) { border-color: var(--error-600); box-shadow: 0 0 0 3px color-mix(in oklab, var(--error-600) 14%, transparent); }
#main :where(.wc-block-components-text-input.has-error label) { color: var(--error-600); }
#main :where(.wc-block-components-validation-error) { margin-top: .4rem; color: var(--error-600); font-size: var(--fs-micro); font-weight: 650; }
#main :where(.wc-block-components-validation-error > p) { display: flex; align-items: flex-start; gap: .35rem; margin: 0; }
#main :where(.wc-block-components-validation-error svg) { flex: none; width: 1rem; height: 1rem; fill: currentColor; }

/* Selects (country, state) */
#main :where(.wc-blocks-components-select) { margin-top: 1rem; }
#main :where(.wc-blocks-components-select .wc-blocks-components-select__container) { border-radius: var(--r-sm); background: var(--lichen-50); }
#main :where(.wc-blocks-components-select .wc-blocks-components-select__select) {
	height: 3.5rem;
	min-height: 0;
	padding: 1.3rem 2.75rem .3rem .95rem;
	border: 1px solid var(--shop-field-bd);
	border-radius: var(--r-sm);
	background: none;
	color: var(--ink);
	font-family: var(--font-ui);
	font-size: 1rem;
	line-height: 1.3;
}
#main :where(.wc-blocks-components-select .wc-blocks-components-select__select:focus) { border: 1px solid var(--moss-700); outline: none; background-color: var(--lichen-50); box-shadow: var(--shop-ring); }
#main :where(.wc-blocks-components-select .wc-blocks-components-select__label) {
	top: .45rem;
	left: calc(.95rem + 1px);
	color: var(--ink-soft);
	font-family: var(--font-ui);
	font-size: .76rem;
	font-weight: 650;
}
#main :where(.wc-blocks-components-select .wc-blocks-components-select__expand) { right: .9rem; fill: var(--ink); }
#main :where(.has-error .wc-blocks-components-select__select) { border-color: var(--error-600); }

#main :where(.wc-block-components-address-form__address_2-toggle) {
	display: inline-flex;
	margin-top: .75rem;
	color: var(--moss-700);
	font-size: var(--fs-small);
	font-weight: 650;
	text-decoration: none;
	cursor: pointer;
}
#main :where(.wc-block-components-address-form__address_2-toggle:hover) { text-decoration: underline; }
#main :where(.wc-block-components-address-card) {
	padding: 1rem 1.15rem;
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	background: var(--lichen-50);
	font-size: var(--fs-small);
}
#main :where(.wc-block-components-address-card__edit) { color: var(--moss-700); font-size: var(--fs-small); font-weight: 650; }

/* Checkboxes */
#main :where(.wc-block-components-checkbox) { margin-top: 1.1rem; }
#main :where(.wc-block-components-checkbox label) { align-items: flex-start; gap: .75rem; color: var(--ink); font-size: var(--fs-small); font-weight: 550; line-height: 1.45; }
#main :where(.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]) {
	width: 1.25rem;
	min-width: 1.25rem;
	height: 1.25rem;
	border: 1.5px solid color-mix(in oklab, var(--humus-900) 42%, transparent);
	border-radius: 6px;
	background: var(--lichen-50);
}
#main :where(.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked) { border-color: var(--moss-700); background: var(--moss-700); }
#main :where(.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:focus) { outline: 2px solid var(--focus); outline-offset: 2px; }
#main :where(.wc-block-components-checkbox .wc-block-components-checkbox__mark) { width: 1rem; height: 1rem; margin: .125rem 0 0 .125rem; fill: var(--lichen-50); }

/* Radio choices: shipping and payment as quiet cards */
#main :where(.wc-block-components-radio-control)::after,
#main :where(.wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option)::after { content: none; display: none; }
#main :where(.wc-block-components-radio-control) { display: grid; gap: .6rem; }
#main :where(.wc-block-components-radio-control > .wc-block-components-radio-control__option, .wc-block-components-radio-control-accordion-option) {
	position: relative;
	margin: 0;
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	background: var(--lichen-50);
	box-shadow: none;
	transition: border-color var(--d-2) var(--ease-out), box-shadow var(--d-2) var(--ease-out), background-color var(--d-2) var(--ease-out);
}
#main :where(.wc-block-components-radio-control > .wc-block-components-radio-control__option:hover, .wc-block-components-radio-control-accordion-option:hover) { border-color: color-mix(in oklab, var(--moss-700) 55%, transparent); }
#main :where(.wc-block-components-radio-control > .wc-block-components-radio-control__option-checked, .wc-block-components-radio-control-accordion-option--checked-option-highlighted, .wc-block-components-radio-control-accordion-option:has(.wc-block-components-radio-control__option-checked)) {
	border-color: var(--moss-700);
	border-radius: var(--r-md);
	box-shadow: inset 0 0 0 1px var(--moss-700), var(--shadow-1);
}
#main :where(.wc-block-components-radio-control__option) { padding: 1rem 1.1rem 1rem 3.25rem; color: var(--ink); }
#main :where(.wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option) { border: 0; box-shadow: none; }
#main :where(.wc-block-components-radio-control__label) { color: var(--ink); font-size: 1rem; font-weight: 650; }
#main :where(.wc-block-components-radio-control__secondary-label, .wc-block-components-radio-control__description, .wc-block-components-radio-control__secondary-description) { color: var(--ink-soft); font-size: var(--fs-small); font-weight: 600; }
#main :where(.wc-block-components-radio-control__label-group) { display: flex; flex-wrap: nowrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; }
#main :where(.wc-block-components-radio-control__label-group > .wc-block-components-radio-control__label) { flex: 1 1 auto; min-width: 0; }
#main :where(.wc-block-components-radio-control__label-group > .wc-block-components-radio-control__secondary-label) { flex: 0 0 auto; text-align: right; white-space: nowrap; }
#main :where(.wc-block-checkout__shipping-option--free) { color: var(--moss-700); font-weight: 700; text-transform: none; }
#main :where(.wc-block-components-radio-control .wc-block-components-radio-control__input) {
	top: 50%;
	left: 1.1rem;
	width: 1.25rem;
	height: 1.25rem;
	border: 1.5px solid color-mix(in oklab, var(--humus-900) 42%, transparent);
	background: var(--lichen-50);
	transform: translateY(-50%);
}
#main :where(.wc-block-components-radio-control .wc-block-components-radio-control__input:checked) { border-color: var(--moss-700); background: var(--moss-900); }
#main :where(.wc-block-components-radio-control .wc-block-components-radio-control__input:checked)::before {
	width: .62rem;
	height: .62rem;
	background: radial-gradient(circle at 35% 30%, var(--gold-300), var(--gold-600));
}
#main :where(.wc-block-components-radio-control .wc-block-components-radio-control__input:focus) { outline: 2px solid var(--focus); outline-offset: 2px; }
#main :where(.wc-block-components-radio-control-accordion-content) { padding: 0 1.1rem 1rem 3.25rem; color: var(--ink-soft); font-size: var(--fs-small); line-height: 1.5; }
#main :where(.wc-block-components-shipping-rates-control__package) { margin: 0; }

/* Order notes, terms */
#main :where(.wc-block-components-textarea) {
	min-height: 7rem;
	margin-top: .75rem;
	padding: .85rem 1rem;
	border: 1px solid var(--shop-field-bd);
	border-radius: var(--r-sm);
	background: var(--lichen-50);
	color: var(--ink);
	font-family: var(--font-ui);
	font-size: 1rem;
}
#main :where(.wc-block-components-textarea:focus) { border-color: var(--moss-700); outline: none; background-color: var(--lichen-50); box-shadow: var(--shop-ring); }
#main :where(.wc-block-checkout__terms) { margin: 0 0 1.25rem; color: var(--ink-soft); font-size: var(--fs-small); line-height: 1.55; }
#main :where(.wc-block-checkout__terms a) { color: var(--moss-700); font-weight: 650; }
#main :where(.wc-block-checkout__actions) { padding-top: 0; }
#main :where(.wc-block-checkout__actions_row) { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
#main :where(.wc-block-components-checkout-return-to-cart-button) {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	color: var(--ink-soft);
	font-size: var(--fs-small);
	font-weight: 650;
	text-decoration: none;
}
#main :where(.wc-block-components-checkout-return-to-cart-button:hover) { color: var(--ink); text-decoration: underline; }
#main :where(.wc-block-components-checkout-return-to-cart-button svg) { fill: currentColor; }

/* Order summary in the sidebar */
#main :where(.wp-block-woocommerce-checkout-order-summary-block) { margin: 0; border: 0; border-radius: 0; }
#main :where(.wc-block-components-totals-wrapper:empty) { display: none; }
#main :where(.wc-block-components-checkout-order-summary__title) { margin: 0; padding: 0 0 .9rem; border-top: 0; }
#main :where(.wc-block-components-checkout-order-summary__title-text) {
	margin: 0;
	color: var(--ink);
	font-family: var(--font-display);
	font-size: clamp(1.45rem, 1.25rem + .6vw, 1.75rem);
	font-weight: 420;
	letter-spacing: -0.02em;
}
#main :where(.wc-block-components-checkout-order-summary__title-price) { font-weight: 700; font-variant-numeric: tabular-nums; }
#main :where(.wc-block-components-order-summary) { padding: 0; }
#main :where(.wc-block-components-order-summary-item) { display: flex; gap: 1rem; padding: .9rem 0; font-size: var(--fs-small); }
#main :where(.wc-block-components-order-summary-item__image) { position: relative; flex: none; align-self: flex-start; width: 4.25rem; height: 4.25rem; overflow: visible; }
#main :where(.wc-block-components-order-summary-item__image) > img { border-radius: var(--r-md); }
#main :where(.wc-block-components-order-summary-item__quantity) {
	min-width: 1.45rem;
	min-height: 1.45rem;
	border: 2px solid var(--lichen-50);
	background: var(--moss-900);
	box-shadow: none;
	color: var(--lichen-50);
	font-size: .72rem;
	font-weight: 700;
}
#main :where(.wc-block-components-order-summary-item__quantity span) { color: var(--lichen-50); }
#main :where(.wc-block-components-order-summary-item__description) { flex: 1; min-width: 0; padding: 0; }
#main :where(.wc-block-components-order-summary-item__description .wc-block-components-product-name) {
	margin: 0 0 .25rem;
	color: var(--ink);
	font-family: var(--font-display);
	font-size: 1.05rem;
	font-weight: 430;
	line-height: 1.25;
	/* Beside a sale badge the column gets narrow on phones: hyphenate
	   ("Monoatomi-sches") instead of Blocks' break-anywhere. */
	overflow-wrap: break-word;
	word-break: normal;
	-webkit-hyphens: auto;
	hyphens: auto;
	hyphenate-limit-chars: 10 4 4;
}
/* Phones: the struck-through unit price already shows the saving, so the
   "Du sparst" badge (aria-hidden there) gives its width back to the name. */
@media (max-width: 479px) {
	#main :where(.wc-block-components-order-summary-item__total-price .wc-block-components-sale-badge) { display: none; }
}
/* Phones: WooCommerce repeats the summary above the place-order button.
   Same lichen card as the desktop sidebar, so items and totals share one inset. */
#main :where(.checkout-order-summary-block-fill-wrapper) { padding-bottom: 1.75rem; }
#main :where(.checkout-order-summary-block-fill) {
	padding: .35rem clamp(1.1rem, .8rem + 1.5vw, 1.6rem) .6rem;
	border: 0;
	border-radius: var(--r-lg);
	background: var(--lichen-50);
	box-shadow: var(--shadow-2);
}
#main :where(.checkout-order-summary-block-fill .wc-block-components-totals-item, .checkout-order-summary-block-fill .wc-block-components-panel, .checkout-order-summary-block-fill .wc-block-components-totals-coupon) { padding-inline: 0; }
#main :where(.wc-block-components-order-summary-item__total-price) { font-weight: 700; font-variant-numeric: tabular-nums; }
#main :where(.wc-block-components-order-summary-item__total-price .wc-block-components-product-price) { color: var(--ink); font-weight: 700; }

/* ==========================================================================
   11. My account
   ========================================================================== */

/* Logged out: login beside an honest "new here" panel */
.account-gate {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
	grid-template-rows: auto auto 1fr;
	grid-template-areas:
		"notice notice"
		"title aside"
		"form aside";
	column-gap: clamp(1.25rem, .5rem + 2.5vw, 2.5rem);
	max-width: 66rem;
	margin-inline: auto;
}
/* Login errors ("Falsches Passwort") print inside the gate: give them the full width above both panels */
.account-gate > .woocommerce-notices-wrapper { grid-area: notice; }
.account-gate > .woocommerce-notices-wrapper:not(:empty) { margin-bottom: 1.25rem; }
.account-gate > .woocommerce-notices-wrapper > :last-child { margin-bottom: 0; }
.account-gate > h2 {
	grid-area: title;
	margin: 0;
	padding: clamp(1.5rem, 1rem + 1.8vw, 2.5rem) clamp(1.5rem, 1rem + 1.8vw, 2.5rem) 0;
	border-radius: var(--r-lg) var(--r-lg) 0 0;
	background: var(--lichen-50);
	font-size: clamp(1.7rem, 1.4rem + 1vw, 2.2rem);
	font-weight: 400;
	letter-spacing: -0.025em;
}
.account-gate > form.woocommerce-form-login {
	grid-area: form;
	margin: 0;
	padding: 1.5rem clamp(1.5rem, 1rem + 1.8vw, 2.5rem) clamp(1.5rem, 1rem + 1.8vw, 2.5rem);
	border: 0;
	border-radius: 0 0 var(--r-lg) var(--r-lg);
	background: var(--lichen-50);
}
.account-gate::after { content: none; }
.account-gate > :is(h2, form) { box-shadow: 0 22px 48px -30px rgb(11 26 16 / .35); }
.account-gate__aside {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-end;
	grid-area: aside;
	min-height: 22rem;
	padding: clamp(1.5rem, 1rem + 1.8vw, 2.5rem);
	overflow: hidden;
	border-radius: var(--r-lg);
	background:
		linear-gradient(180deg, rgb(18 41 26 / .25), rgb(18 41 26 / .92) 62%),
		url("../img/nature/forest-floor-800.webp") center 35% / cover no-repeat,
		var(--moss-900);
	color: var(--on-moss);
}
.account-gate__aside h2 { margin: 0 0 .6rem; color: var(--lichen-50); font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); font-weight: 400; }
.account-gate__aside p { margin: 0 0 1.5rem; color: var(--on-moss-soft); }
.account-gate__aside :focus-visible { outline-color: var(--focus-on-moss); }

/* Registration enabled: two equal forms */
.account-gate--register { display: block; }
#customer_login {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(1.25rem, .5rem + 2.5vw, 2.5rem);
	max-width: 66rem;
	margin-inline: auto;
}
#customer_login > div {
	width: auto;
	float: none;
	padding: clamp(1.5rem, 1rem + 1.8vw, 2.5rem);
	border-radius: var(--r-lg);
	background: var(--lichen-50);
	box-shadow: 0 22px 48px -30px rgb(11 26 16 / .35);
}
#customer_login h2 { margin: 0 0 1.25rem; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); font-weight: 400; letter-spacing: -0.025em; }
#customer_login form { margin: 0; padding: 0; border: 0; background: none; }

.woocommerce-form-login .form-row:has(.woocommerce-form-login__submit) {
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-top: 1.5rem;
}
.woocommerce-form-login__submit,
.woocommerce-form-register__submit { min-width: 10rem; }
.woocommerce-LostPassword,
.lost_password { margin: 1.1rem 0 0; font-size: var(--fs-small); }
.woocommerce-LostPassword a,
.lost_password a { color: var(--moss-700); font-weight: 650; }
.woocommerce-privacy-policy-text + .woocommerce-form-row,
.woocommerce-form-register .woocommerce-privacy-policy-text { margin-top: .5rem; }

/* Lost / reset password */
form.woocommerce-ResetPassword {
	max-width: 34rem;
	margin-inline: auto;
	padding: clamp(1.5rem, 1rem + 1.8vw, 2.5rem);
	border-radius: var(--r-lg);
	background: var(--lichen-50);
	box-shadow: 0 22px 48px -30px rgb(11 26 16 / .35);
}
form.woocommerce-ResetPassword > p:first-child { margin: 0 0 1.25rem; color: var(--ink-soft); }

/* Password reveal button (woocommerce.js) */
.password-input { position: relative; display: block; }
.password-input input { padding-right: 3.25rem; }
.show-password-input {
	position: absolute;
	top: 50%;
	right: .4rem;
	display: grid;
	place-items: center;
	width: 2.6rem;
	height: 2.6rem;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: none;
	color: var(--ink-soft);
	transform: translateY(-50%);
	cursor: pointer;
}
.show-password-input::before {
	content: "";
	width: 1.25rem;
	height: 1.25rem;
	background: currentColor;
	-webkit-mask: var(--i-eye) center / contain no-repeat;
	mask: var(--i-eye) center / contain no-repeat;
}
.show-password-input.display-password::before { -webkit-mask-image: var(--i-eye-off); mask-image: var(--i-eye-off); }
.show-password-input:hover { background: color-mix(in oklab, var(--humus-900) 7%, transparent); color: var(--ink); }

/* Logged in: navigation + content */
.woocommerce-account div.woocommerce:has(> .woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: minmax(13rem, 16.5rem) minmax(0, 1fr);
	align-items: start;
	gap: clamp(2rem, 1rem + 3.5vw, 4.5rem);
}
.woocommerce-MyAccount-navigation { position: sticky; top: var(--shop-sticky-top); }
.woocommerce-MyAccount-navigation ul { display: grid; gap: .3rem; margin: 0; padding: 0; list-style: none; }
.woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-MyAccount-navigation a {
	display: flex;
	align-items: center;
	gap: .8rem;
	min-height: 3rem;
	padding: .65rem 1.1rem;
	border-radius: var(--r-pill);
	color: var(--ink);
	font-weight: 600;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color var(--d-2) var(--ease-out), color var(--d-2) var(--ease-out);
}
.woocommerce-MyAccount-navigation a::before {
	content: "";
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	background: var(--moss-700);
	-webkit-mask: var(--i-sprout) center / contain no-repeat;
	mask: var(--i-sprout) center / contain no-repeat;
	transition: background-color var(--d-2) var(--ease-out);
}
.woocommerce-MyAccount-navigation-link--orders a::before { -webkit-mask-image: var(--i-package); mask-image: var(--i-package); }
.woocommerce-MyAccount-navigation-link--downloads a::before { -webkit-mask-image: var(--i-download); mask-image: var(--i-download); }
.woocommerce-MyAccount-navigation-link--edit-address a::before { -webkit-mask-image: var(--i-pin); mask-image: var(--i-pin); }
.woocommerce-MyAccount-navigation-link--edit-account a::before { -webkit-mask-image: var(--i-user); mask-image: var(--i-user); }
.woocommerce-MyAccount-navigation-link--payment-methods a::before { -webkit-mask-image: var(--i-card); mask-image: var(--i-card); }
.woocommerce-MyAccount-navigation-link--customer-logout a::before { -webkit-mask-image: var(--i-logout); mask-image: var(--i-logout); }
.woocommerce-MyAccount-navigation a:hover { background: var(--lichen-200); }
.woocommerce-MyAccount-navigation .is-active a {
	background: var(--moss-900);
	color: var(--lichen-50);
	box-shadow: var(--shadow-1);
}
.woocommerce-MyAccount-navigation .is-active a::before { background: var(--gold-300); }
.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: .6rem !important; padding-top: .6rem; border-top: 1px solid var(--line); }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--ink-soft); }

.woocommerce-MyAccount-content { min-width: 0; }
.woocommerce-MyAccount-content > p { color: var(--ink-soft); }
.woocommerce-MyAccount-content > p + :is(section, h2) { margin-top: clamp(1.5rem, 1rem + 1.5vw, 2.25rem); }
.woocommerce-MyAccount-content mark { padding: 0; background: none; color: var(--ink); font-weight: 650; }
.woocommerce-MyAccount-content h2 { font-size: clamp(1.45rem, 1.25rem + .6vw, 1.75rem); font-weight: 420; }

/* Dashboard */
.account-hello { display: grid; gap: 1.25rem; }
.account-hello__title { margin: 0; font-size: clamp(2rem, 1.5rem + 2vw, 3rem); font-weight: 380; letter-spacing: -0.03em; }
.account-hello__text { margin: 0; max-width: 34em; color: var(--ink-soft); font-size: var(--fs-lead); line-height: 1.5; }
.account-last {
	display: flex;
	align-items: center;
	gap: 1rem;
	max-width: 36rem;
	padding: 1rem 1.25rem;
	border: 1px solid var(--line);
	border-radius: var(--r-md);
	background: var(--lichen-50);
	color: var(--ink);
	text-decoration: none;
	transition: box-shadow var(--d-2) var(--ease-out), transform var(--d-2) var(--ease-out), border-color var(--d-2) var(--ease-out);
}
.account-last:hover { border-color: transparent; box-shadow: var(--shadow-2); transform: translateY(-2px); }
.account-last__icon { display: grid; place-items: center; flex: none; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--moss-900); color: var(--gold-300); }
.account-last__body { display: grid; flex: 1; gap: .1rem; min-width: 0; }
.account-last__title { font-weight: 650; }
.account-last__meta { color: var(--ink-soft); font-size: var(--fs-small); font-variant-numeric: tabular-nums; }
.account-last__arrow { flex: none; color: var(--moss-700); transition: transform var(--d-2) var(--ease-out); }
.account-last:hover .account-last__arrow { transform: translateX(3px); }
.account-status { color: var(--moss-700); font-weight: 650; }
.account-status--on-hold,
.account-status--pending { color: var(--gold-700); }
.account-status--failed,
.account-status--cancelled { color: var(--error-600); }
.account-reorder {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem 1.5rem;
	margin-top: .5rem;
	padding: clamp(1.25rem, 1rem + 1.2vw, 1.9rem);
	overflow: hidden;
	border-radius: var(--r-lg);
	background:
		radial-gradient(60% 120% at 100% 0%, rgb(240 207 122 / .18), transparent 60%),
		var(--moss-900);
	color: var(--on-moss);
}
.account-reorder__title { margin: 0 0 .25rem; color: var(--lichen-50); font-size: clamp(1.4rem, 1.2rem + .6vw, 1.7rem); font-weight: 420; }
.account-reorder p { margin: 0; color: var(--on-moss-soft); font-size: var(--fs-small); }
.account-reorder__price { color: var(--gold-300); font-weight: 650; white-space: nowrap; }
.account-reorder :focus-visible { outline-color: var(--focus-on-moss); }
.account-hello__switch { margin: 0; color: var(--ink-soft); font-size: var(--fs-small); }
.account-hello__switch a { color: var(--moss-700); font-weight: 650; }

/* Orders, downloads */
div.woocommerce table.woocommerce-orders-table td,
div.woocommerce table.woocommerce-orders-table th,
div.woocommerce table.woocommerce-table--order-downloads td { padding-block: 1rem; }
.woocommerce-orders-table__cell-order-number a { color: var(--ink); font-weight: 700; text-decoration: none; }
.woocommerce-orders-table__cell-order-number a:hover { text-decoration: underline; }
.woocommerce-orders-table__cell-order-status { font-weight: 650; }
.woocommerce-orders-table__cell-order-actions { text-align: right !important; }
.woocommerce-orders-table .button,
.woocommerce-table--order-downloads .button {
	--btn-bg: transparent;
	--btn-fg: var(--ink);
	--btn-bd: color-mix(in oklab, var(--humus-900) 28%, transparent);
	min-height: 2.4rem !important;
	padding: .4rem 1rem !important;
	font-size: .875rem !important;
}
.woocommerce-orders-table .button:hover { --btn-bg: var(--moss-900); --btn-fg: var(--lichen-50); --btn-bd: transparent; }
.woocommerce-orders-table .button + .button { margin-left: .35rem; }
.woocommerce-pagination--without-numbers { display: flex; gap: .75rem; justify-content: space-between; margin-top: 1.5rem; }

/* Addresses */
.woocommerce-Addresses,
.woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(17rem, 100%), 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
	margin-top: 1.25rem;
}
.woocommerce-Addresses::before,
.woocommerce-Addresses::after { content: none; }
.woocommerce-Addresses > .woocommerce-Address,
.woocommerce-columns--addresses > .woocommerce-column {
	width: auto;
	float: none;
	padding: clamp(1.25rem, 1rem + 1vw, 1.75rem);
	border-radius: var(--r-lg);
	background: var(--lichen-50);
	box-shadow: var(--shadow-1);
}
.woocommerce-Address-title {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: .5rem 1rem;
	margin-bottom: .9rem;
}
.woocommerce-Address-title h2,
.woocommerce-column__title { margin: 0; font-size: 1.35rem !important; font-weight: 430; }
.woocommerce-Address-title .edit {
	display: inline-flex;
	align-items: center;
	min-height: 2.25rem;
	padding: .3rem .9rem;
	border: 1px solid color-mix(in oklab, var(--humus-900) 28%, transparent);
	border-radius: var(--r-pill);
	color: var(--ink);
	font-size: var(--fs-micro);
	font-weight: 650;
	text-decoration: none;
}
.woocommerce-Address-title .edit:hover { border-color: transparent; background: var(--moss-900); color: var(--lichen-50); }
.woocommerce-Address address,
.woocommerce-column address { color: var(--ink); font-style: normal; line-height: 1.7; }
.woocommerce-customer-details--phone,
.woocommerce-customer-details--email { margin: .35rem 0 0; color: var(--ink-soft); }

/* Edit address / edit account forms */
.woocommerce-MyAccount-content form > h2,
.woocommerce-MyAccount-content form > h3 { margin: 0 0 1.25rem; }
form.woocommerce-EditAccountForm {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1rem;
	max-width: 46rem;
}
form.woocommerce-EditAccountForm > * { grid-column: 1 / -1; }
form.woocommerce-EditAccountForm > .form-row-first { grid-column: 1; }
form.woocommerce-EditAccountForm > .form-row-last { grid-column: 2; }
form.woocommerce-EditAccountForm fieldset { margin-top: 1.25rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
form.woocommerce-EditAccountForm legend { float: left; width: 100%; margin-bottom: 1.25rem; font-family: var(--font-display); font-size: 1.5rem; font-weight: 420; }
form.woocommerce-EditAccountForm fieldset > .form-row { clear: both; }
.woocommerce-address-fields { max-width: 46rem; }
.woocommerce-address-fields > p:last-child,
form.woocommerce-EditAccountForm > p:last-of-type { margin-top: .75rem; }

/* ==========================================================================
   12. Order received / view order
   ========================================================================== */

.shop-page__band--received { padding-block: clamp(2.75rem, 2rem + 3vw, 4.5rem) calc(clamp(4rem, 3rem + 4vw, 6.5rem) + var(--moss-edge-h) * .5); text-align: center; }
.shop-page__band--received .shop-page__band-inner { flex-direction: column; align-items: center; gap: 1.5rem; }
.shop-page__band--received .shop-page__title { max-width: 13em; font-size: clamp(2.6rem, 1.5rem + 4.4vw, 5rem); font-weight: 360; text-wrap: balance; }
.shop-page__band--received .shop-page__lead { margin-inline: auto; color: var(--gold-300); font-size: var(--fs-small); font-weight: 650; letter-spacing: .08em; text-transform: uppercase; font-variant-numeric: tabular-nums; }

.received-drop { position: relative; z-index: 2; width: 4.5rem; height: 4.5rem; margin: 0 auto 1.25rem; }
.received-drop__dew {
	position: absolute;
	inset: 0;
	border-radius: 0 50% 50% 50%;
	transform: rotate(45deg);
	background:
		radial-gradient(circle at 34% 30%, rgb(255 255 255 / .55), transparent 30%),
		radial-gradient(circle at 40% 40%, var(--gold-300), var(--gold-500) 55%, var(--gold-700));
	box-shadow: inset 0 2px 6px rgb(255 255 255 / .45), inset 0 -10px 18px rgb(124 91 18 / .45), 0 18px 40px -12px rgb(217 174 69 / .55);
	animation: ormus-drop-fall 1.15s var(--ease-drop) .15s both;
}
.received-drop__dew::before { top: 18%; left: 20%; }
.received-drop__dew::after { display: none; }
.received-drop__ripple {
	position: absolute;
	bottom: -.35rem;
	left: 50%;
	width: 10rem;
	height: 2.2rem;
	margin-left: -5rem;
	border: 1px solid rgb(240 207 122 / .55);
	border-radius: 50%;
	opacity: 0;
	animation: ormus-ripple 1.8s var(--ease-out) 1.2s both;
}
.received-drop__ripple--late { animation-delay: 1.5s; }

.woocommerce-order { max-width: 62rem; margin-inline: auto; }
.woocommerce-order > .woocommerce-notice--success,
.woocommerce-thankyou-order-received {
	max-width: 34em;
	margin: 0 auto clamp(1.75rem, 3vw, 2.5rem);
	color: var(--ink-soft);
	font-size: var(--fs-lead);
	line-height: 1.5;
	text-align: center;
}
.woocommerce-thankyou-order-failed { margin: 0 0 1rem; color: var(--error-600); font-weight: 650; }
.woocommerce-thankyou-order-failed-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
/* Flex, not a fixed grid: each fact takes the width its value needs, so an
   e-mail address or IBAN never breaks mid-word on desktop. */
ul.woocommerce-order-overview,
ul.wc-bacs-bank-details {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem 2.5rem;
	margin: 0 0 clamp(2.5rem, 4vw, 3.5rem);
	padding: clamp(1.25rem, 1rem + 1.2vw, 1.9rem);
	border-radius: var(--r-lg);
	background: var(--lichen-50);
	box-shadow: var(--shadow-1);
	list-style: none;
}
ul.woocommerce-order-overview li,
ul.wc-bacs-bank-details li {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: .35rem;
	min-width: min(7.5rem, 100%);
	margin: 0;
	color: var(--ink-soft);
	font-size: var(--fs-micro);
	font-weight: 650;
	letter-spacing: .08em;
	text-transform: uppercase;
}
ul.woocommerce-order-overview li strong,
ul.wc-bacs-bank-details li strong {
	color: var(--ink);
	font-size: 1.05rem;
	font-weight: 650;
	letter-spacing: 0;
	text-transform: none;
	font-variant-numeric: tabular-nums;
	overflow-wrap: anywhere;
}
ul.woocommerce-order-overview li.woocommerce-order-overview__total strong { font-family: var(--font-display); font-size: 1.4rem; font-weight: 450; }
.woocommerce-bacs-bank-details { margin-bottom: 1rem; }
.wc-bacs-bank-details-heading,
.woocommerce-order-details__title,
.woocommerce-column__title,
.woocommerce-order-downloads__title {
	margin: 0 0 1rem;
	font-size: clamp(1.45rem, 1.25rem + .6vw, 1.75rem);
	font-weight: 420;
}
.wc-bacs-bank-details-account-name { margin: 0 0 .75rem; font-family: var(--font-ui); font-size: 1rem; font-weight: 650; }
.woocommerce-order > p:not([class]),
.woocommerce-order > .woocommerce-bacs-bank-details + p { color: var(--ink-soft); }

.woocommerce-order-details,
.woocommerce-order-downloads { margin-bottom: clamp(2.5rem, 4vw, 3.5rem); }
div.woocommerce table.woocommerce-table--order-details {
	display: table;
	overflow: hidden;
	border-radius: var(--r-lg);
	background: var(--lichen-50);
	box-shadow: var(--shadow-1);
}
div.woocommerce table.woocommerce-table--order-details :is(th, td) { padding: 1rem clamp(1rem, 2vw, 1.5rem) !important; }
div.woocommerce table.woocommerce-table--order-details thead th { padding-top: 1.1rem !important; }
div.woocommerce table.woocommerce-table--order-details td.product-name a { color: var(--ink); font-family: var(--font-display); font-size: 1.1rem; text-decoration: none; }
div.woocommerce table.woocommerce-table--order-details .product-quantity { color: var(--ink-soft); font-weight: 650; }
div.woocommerce table.woocommerce-table--order-details td.product-total,
div.woocommerce table.woocommerce-table--order-details thead th.product-total,
div.woocommerce table.woocommerce-table--order-details tfoot td { text-align: right; font-weight: 650; }
div.woocommerce table.woocommerce-table--order-details tfoot th { color: var(--ink-soft); font-weight: 600; }
div.woocommerce table.woocommerce-table--order-details tfoot tr:last-child :is(th, td) { border-bottom: 0; color: var(--ink); font-size: 1rem; }
div.woocommerce table.woocommerce-table--order-details tfoot tr:last-child td > .amount { font-family: var(--font-display); font-size: 1.5rem; font-weight: 450; }
div.woocommerce table.woocommerce-table--order-details .shipped_via { color: var(--ink-soft); font-size: var(--fs-micro); font-weight: 500; }
.order-again { margin-top: 1.25rem; }
.woocommerce-customer-details .woocommerce-columns--addresses { margin-top: 0; }
.woocommerce-customer-details > h2 { margin: 0 0 1rem; font-size: clamp(1.45rem, 1.25rem + .6vw, 1.75rem); font-weight: 420; }

/* ==========================================================================
   13. Responsive
   ========================================================================== */

@media (max-width: 999px) {
	.woocommerce-cart div.woocommerce:has(> .woocommerce-cart-form),
	form.checkout.woocommerce-checkout,
	.woocommerce-account div.woocommerce:has(> .woocommerce-MyAccount-navigation) { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-cart div.woocommerce > *,
	form.checkout.woocommerce-checkout > * { grid-row: auto !important; }
	.woocommerce-cart div.woocommerce > .cart-collaterals,
	form.checkout.woocommerce-checkout > .checkout-summary {
		position: static;
		grid-column: 1;
		margin-top: 2.25rem;
	}
	.woocommerce-MyAccount-navigation { position: static; }
	.woocommerce-MyAccount-navigation ul {
		display: flex;
		gap: .4rem;
		margin-inline: calc(var(--gutter) * -1);
		padding: .25rem var(--gutter) .75rem;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scroll-padding-inline: var(--gutter);
		scrollbar-width: none;
		-webkit-mask-image: linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);
		mask-image: linear-gradient(90deg, transparent, #000 var(--gutter), #000 calc(100% - var(--gutter)), transparent);
	}
	.woocommerce-MyAccount-navigation ul::-webkit-scrollbar { display: none; }
	.woocommerce-MyAccount-navigation a { min-height: 2.75rem; padding: .55rem 1rem; border: 1px solid var(--line); background: var(--lichen-50); font-size: var(--fs-small); }
	.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 0 !important; padding-top: 0; border-top: 0; }
}

@media (max-width: 899px) {
	.shop-band__photo {
		top: auto;
		left: 0;
		width: 100%;
		height: calc(clamp(7rem, 30vw, 11rem) + var(--moss-edge-h));
		-webkit-mask-image: linear-gradient(180deg, transparent 0, #000 50%);
		mask-image: linear-gradient(180deg, transparent 0, #000 50%);
	}
	.shop-band__photo::after { background: linear-gradient(0deg, var(--moss-900) calc(var(--moss-edge-h) * .85), transparent calc(var(--moss-edge-h) + 2.5rem)); }
	.shop-band__inner { padding-bottom: calc(clamp(7.5rem, 31vw, 11.5rem) + var(--moss-edge-h)); }
	.account-gate {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: none;
		grid-template-areas: "notice" "title" "form" "aside";
	}
	.account-gate__aside { min-height: 16rem; margin-top: 1.25rem; }
	#customer_login { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 759px) {
	.shop-page__band-inner { flex-direction: column; align-items: flex-start; }
	.steps__link { gap: .4rem; font-size: var(--fs-micro); }
	.steps__drop { width: 1.45rem; height: 1.45rem; font-size: .7rem; }

	table.shop_table.cart,
	table.shop_table.cart tbody { display: block; }
	table.shop_table.cart thead { display: none; }
	table.shop_table.cart tr.cart_item {
		position: relative;
		display: grid;
		grid-template-columns: 5.25rem minmax(0, 1fr) auto;
		grid-template-areas:
			"thumb name remove"
			"thumb price price"
			"thumb qty sub";
		align-items: center;
		gap: .45rem 1rem;
		padding: 1.25rem 0;
		border-bottom: 1px solid var(--line);
	}
	div.woocommerce table.shop_table.cart tr.cart_item td { display: block; padding: 0; border: 0; }
	table.shop_table.cart td.product-thumbnail { grid-area: thumb; align-self: start; width: auto; }
	table.shop_table.cart td.product-thumbnail a { width: 5.25rem; }
	table.shop_table.cart td.product-name { grid-area: name; align-self: start; }
	table.shop_table.cart td.product-name > a { font-size: 1.1rem; }
	table.shop_table.cart td.product-remove { grid-area: remove; align-self: start; width: auto; margin: -.4rem -.4rem 0 0; }
	table.shop_table.cart td.product-price { grid-area: price; color: var(--ink-soft); font-size: var(--fs-micro); }
	table.shop_table.cart td.product-price::before { content: attr(data-title) " "; font-weight: 500; }
	table.shop_table.cart td.product-quantity { grid-area: qty; }
	table.shop_table.cart td.product-subtotal { grid-area: sub; }
	table.shop_table.cart tr:not(.cart_item) { display: block; }
	div.woocommerce table.shop_table.cart td.actions { display: block; padding-top: 1.25rem; text-align: left; }
	table.shop_table.cart td.actions .coupon { float: none; margin-bottom: .75rem; }
	table.shop_table.cart td.actions .coupon .input-text { flex: 1; width: auto; min-width: 0; }
	table.shop_table.cart td.actions > .button { width: 100%; }

	div.woocommerce table.woocommerce-orders-table,
	div.woocommerce table.woocommerce-orders-table tbody,
	div.woocommerce table.woocommerce-table--order-downloads,
	div.woocommerce table.woocommerce-table--order-downloads tbody { display: block; }
	div.woocommerce table.woocommerce-orders-table thead,
	div.woocommerce table.woocommerce-table--order-downloads thead { display: none; }
	div.woocommerce table.woocommerce-orders-table tr,
	div.woocommerce table.woocommerce-table--order-downloads tr {
		display: grid;
		gap: .4rem;
		margin-bottom: .75rem;
		padding: 1rem 1.15rem;
		border-radius: var(--r-md);
		background: var(--lichen-50);
		box-shadow: var(--shadow-1);
	}
	div.woocommerce table.woocommerce-orders-table :is(td, th),
	div.woocommerce table.woocommerce-table--order-downloads :is(td, th) {
		display: block;
		padding: 0 !important;
		border: 0;
		text-align: right !important;
	}
	div.woocommerce table.woocommerce-orders-table :is(td, th)::after,
	div.woocommerce table.woocommerce-table--order-downloads :is(td, th)::after { content: ""; display: table; clear: both; }
	div.woocommerce table.woocommerce-orders-table :is(td, th)::before,
	div.woocommerce table.woocommerce-table--order-downloads :is(td, th)::before {
		content: attr(data-title);
		float: left;
		margin-right: 1rem;
		color: var(--ink-soft);
		font-size: var(--fs-micro);
		font-weight: 650;
		line-height: 1.9;
		letter-spacing: .06em;
		text-align: left;
		text-transform: uppercase;
	}
	div.woocommerce table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions { margin-top: .35rem; }
	div.woocommerce table.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions::before { content: none; }
}

@media (max-width: 559px) {
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.woocommerce-address-fields__field-wrapper,
	form.woocommerce-EditAccountForm { grid-template-columns: minmax(0, 1fr); }
	:is(.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, form.woocommerce-EditAccountForm) > :is(.form-row-first, .form-row-last) { grid-column: 1; }
	form.checkout_coupon .form-row-first,
	form.checkout_coupon .form-row-last { float: none; width: 100%; }
	form.checkout_coupon .form-row-last { margin-top: .6rem; }
	.woocommerce-message .button,
	.woocommerce-info .button { margin-left: 0; }
	.ship-meter { padding: .9rem 1rem 1rem; }
	.account-reorder .btn { width: 100%; }
	.cart-empty-state__actions .btn,
	.shop-empty__actions .btn { width: 100%; }
}

/* ==========================================================================
   14. Motion
   ========================================================================== */

@keyframes ormus-pop {
	0% { opacity: 0; transform: scale(.85); }
	100% { opacity: 1; transform: none; }
}
@keyframes ormus-float {
	50% { transform: translate3d(0, -7px, 0); }
}
@keyframes ormus-sheen {
	0% { transform: translateX(-100%); }
	60%,
	100% { transform: translateX(100%); }
}
@keyframes ormus-drop-land {
	0% { transform: rotate(45deg) scale(1); }
	35% { transform: rotate(45deg) scale(1.45); }
	100% { transform: rotate(45deg) scale(1); }
}
@keyframes ormus-drop-fall {
	0% { opacity: 0; transform: translate3d(0, -120px, 0) rotate(45deg) scale(.8, 1.15); }
	62% { opacity: 1; transform: translate3d(0, 0, 0) rotate(45deg) scale(.92, 1.08); }
	78% { transform: translate3d(0, 0, 0) rotate(45deg) scale(1.12, .9); }
	100% { opacity: 1; transform: translate3d(0, 0, 0) rotate(45deg) scale(1); }
}
@keyframes ormus-ripple {
	0% { opacity: .9; transform: scale(.2); }
	100% { opacity: 0; transform: scale(1.35); }
}

@media (prefers-reduced-motion: reduce) {
	.shop-empty__lens,
	.cart-empty-state__lens,
	.ship-meter__fill::after { animation: none; }
	.received-drop__ripple { display: none; }
	.received-drop__dew { animation: none; }
	.shop-card__plinth::after { display: none; }
}
