/**
 * Lume Urban Ink — base reset. Ported from tokens/base.css.
 * Loaded site-wide: this child theme replaces the generatepress-parent look entirely.
 */
html, body {
	margin: 0;
}
.lume-shop, .lume-shop * {
	box-sizing: border-box;
}
.lume-shop {
	background: var(--surface-page);
	color: var(--text-body);
	-webkit-font-smoothing: antialiased;
	font: var(--body-md);
}
.lume-shop a {
	color: var(--link);
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}
.lume-shop a:hover {
	color: var(--link);
}
.lume-shop button {
	font-family: inherit;
}
.lume-shop :focus-visible {
	outline: 2px solid var(--ink);
	outline-offset: 2px;
}

/**
 * Site-wide header + full-screen mobile menu (template-parts/lume/site-header.php).
 * Moved here from lume-product.css when the header stopped being product-page-only.
 */
.lm-header {
	position: sticky;
	top: 0;
	z-index: 20;
	display: grid;
	grid-template-columns: 44px 1fr 44px;
	align-items: center;
	height: 60px;
	background: var(--paper-glass);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--ink);
}
.lm-burger-line {
	width: 20px;
	height: 2px;
	background: var(--ink);
}
.lm-burger-line--short {
	width: 12px;
	align-self: flex-start;
	margin-left: 12px;
}
.lm-header-cart {
	position: relative;
	width: 44px;
	height: 60px;
	border: 0;
	border-left: 1px solid var(--ink);
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: var(--ink);
}
.lm-cart-count {
	position: absolute;
	top: 8px;
	right: 6px;
	min-width: 16px;
	height: 16px;
	background: var(--ink);
	color: var(--paper);
	font: 700 10px/1 var(--font-mono);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 4px;
}
.lm-menu {
	position: fixed;
	inset: 0;
	z-index: 40;
	display: none;
	justify-content: center;
	background: var(--scrim-soft);
}
.lm-menu.is-open {
	display: flex;
}
.lm-menu-panel {
	width: 100%;
	max-width: 430px;
	height: 100%;
	background: var(--paper);
	display: flex;
	flex-direction: column;
	border-right: 1px solid var(--ink);
}
.lm-menu-head {
	display: grid;
	grid-template-columns: 44px 1fr 44px;
	align-items: center;
	height: 60px;
	border-bottom: 1px solid var(--ink);
}
.lm-menu-close {
	width: 44px;
	height: 60px;
	border: 0;
	border-right: 1px solid var(--ink);
	background: transparent;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	padding: 0;
}
.lm-menu-nav {
	display: flex;
	flex-direction: column;
}
.lm-menu-link {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding: 18px 20px;
	border-bottom: 1px solid var(--ink);
	text-decoration: none;
	color: var(--ink);
}
.lm-menu-link-label {
	font: var(--display-menu);
	letter-spacing: .02em;
}
.lm-menu-link-no {
	font: var(--mono-meta);
	letter-spacing: .08em;
}
.lm-menu-foot {
	margin-top: auto;
	padding: 18px 20px 28px;
	display: flex;
	justify-content: space-between;
	font: var(--mono-meta);
	letter-spacing: .08em;
	border-top: 1px solid var(--ink);
}

/**
 * Site-wide cart drawer (template-parts/lume/cart-panel.php). Deliberately a
 * separate class namespace from the product page's .lm-sheet/.lm-scrim
 * bottom-sheets (site-wide vs. product-only, kept decoupled).
 * Port of "Lume Cart Panel.dc.html" v3 — every literal there maps to a token here.
 */
@keyframes lm-cart-dot {
	0%, 80%, 100% { transform: scaleY(.4); opacity: .5; }
	40% { transform: scaleY(1); opacity: 1; }
}
@keyframes lm-cart-in {
	from { opacity: 0; transform: translateY(-4px); }
	to { opacity: 1; transform: none; }
}
.lm-cart-scrim {
	position: fixed;
	inset: 0;
	z-index: 60;
	background: var(--scrim);
	opacity: 0;
	pointer-events: none;
	transition: opacity .35s;
}
.lm-cart-scrim.is-open {
	opacity: 1;
	pointer-events: auto;
}
.lm-cart-panel {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 70;
	width: calc(100% - 36px);
	max-width: 430px;
	background: var(--paper);
	border-left: 1px solid var(--ink);
	display: flex;
	flex-direction: column;
	transform: translateX(102%);
	transition: transform .45s var(--ease-out);
}
.lm-cart-panel.is-open {
	transform: translateX(0);
}
@media (min-width: 640px) {
	.lm-cart-panel {
		width: 480px;
		max-width: 480px;
	}
}
.lm-cart-head {
	display: grid;
	grid-template-columns: 1fr 60px;
	align-items: center;
	height: 60px;
	border-bottom: 1px solid var(--ink);
	flex: none;
}
.lm-cart-head-title {
	display: flex;
	align-items: baseline;
	gap: 10px;
	padding: 0 20px;
}
.lm-cart-head-label {
	font: var(--display-h2);
	letter-spacing: .1em;
	text-transform: uppercase;
}
.lm-cart-count-label {
	font: var(--mono-meta);
	letter-spacing: .08em;
	color: var(--smoke);
}

/* Empty state */
.lm-cart-empty {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: 0 28px 60px;
	gap: 14px;
}
.lm-cart-empty-title {
	font: 700 72px/.9 var(--font-script);
	margin-top: 10px;
}
.lm-cart-empty-deg {
	font-size: 26px;
	margin-left: 4px;
	vertical-align: top;
}
.lm-cart-empty-pitch {
	margin: 0;
	font-size: 15px;
	line-height: 1.45;
	color: var(--graphite);
	max-width: 280px;
}
.lm-cart-empty .lm-btn {
	margin-top: 6px;
}

/* Body: scroll area + fixed footer */
.lm-cart-main {
	flex: 1;
	display: flex;
	flex-direction: column;
	min-height: 0;
}
.lm-cart-scroll {
	flex: 1;
	overflow-y: auto;
	scrollbar-width: none;
	position: relative;
}

/* Line items — swipe-to-delete on touch (black 88px plate under the row),
   hover-revealed × on pointer devices. */
.lm-cart-items {
	display: flex;
	flex-direction: column;
}
.lm-cart-item {
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--ink);
	background: var(--ink);
}
.lm-cart-item-swipe {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 88px;
	border: 0;
	background: var(--ink);
	color: var(--paper);
	font: 400 11px/1 var(--font-mono);
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	padding: 0;
}
.lm-cart-item-row {
	position: relative;
	display: grid;
	grid-template-columns: 72px 1fr;
	gap: 14px;
	padding: 16px 20px;
	background: var(--paper);
	transition: transform .3s var(--ease-out);
}
.lm-cart-item.is-swiped .lm-cart-item-row {
	transform: translateX(-88px);
}
.lm-cart-item-img {
	width: 72px;
	height: 72px;
	background: var(--ash);
	box-shadow: inset 0 0 0 1px var(--ink);
	overflow: hidden;
}
.lm-cart-item-img-el {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.lm-cart-item-body {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.lm-cart-item-top {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	align-items: flex-start;
}
.lm-cart-item-heading {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
.lm-cart-item-name {
	font: 700 28px/.9 var(--font-script);
	letter-spacing: -.01em;
}
.lm-cart-item-deg {
	font-size: 13px;
	margin-left: 2px;
	vertical-align: top;
}
.lm-cart-item-sub {
	font: 500 10px/1.4 var(--font-display);
	letter-spacing: .1em;
	text-transform: uppercase;
}
.lm-cart-item-remove {
	width: 32px;
	height: 32px;
	flex: none;
	border: 1px solid var(--ink);
	background: var(--paper);
	font-size: 20px;
	line-height: 1;
	color: var(--ink);
	cursor: pointer;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .3s, color .3s, opacity .3s;
}
.lm-cart-item-remove:hover {
	background: var(--ink);
	color: var(--paper);
}
@media (hover: hover) {
	.lm-cart-item-remove {
		opacity: 0;
	}
	.lm-cart-item:hover .lm-cart-item-remove,
	.lm-cart-item-remove:focus-visible {
		opacity: 1;
	}
}
@media (hover: none) {
	.lm-cart-item-remove {
		display: none;
	}
}
.lm-cart-item-specs {
	display: flex;
	flex-direction: column;
	gap: 3px;
}
.lm-cart-item-spec-row {
	display: grid;
	grid-template-columns: 52px 1fr;
	gap: 8px;
	align-items: baseline;
	font-size: 12px;
	line-height: 1.35;
}
.lm-cart-item-spec-label {
	font: 400 10px/1.3 var(--font-mono);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--smoke);
}
.lm-cart-item-spec-values {
	display: flex;
	flex-wrap: wrap;
	gap: 2px 6px;
	color: var(--ink);
}
.lm-cart-item-spec-val {
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.lm-cart-item-spec-sep {
	width: 1px;
	height: 10px;
	background: var(--ink);
}
.lm-cart-item-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-top: 2px;
}
.lm-cart-item-sum {
	font: 400 15px/1 var(--font-mono);
}
.lm-cart-item-more {
	align-self: flex-start;
	font-size: 11.5px;
	line-height: 1.3;
	color: var(--graphite);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

/* "Разом" + shipping — three states (progress / badge kept / badge lost) */
.lm-cart-totals {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 16px 20px 14px;
	background: var(--paper);
	border-bottom: 1px solid var(--ink);
}
.lm-cart-totals--flush {
	border-bottom: 0;
}
.lm-cart-totals-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 8px;
}
.lm-cart-totals-label {
	font: var(--display-eyebrow);
	letter-spacing: .1em;
	text-transform: uppercase;
}
.lm-cart-totals-amount {
	font: 400 22px/1 var(--font-mono);
}
.lm-cart-ship {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.lm-cart-ship-note {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font: 400 10.5px/1.3 var(--font-mono);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--smoke);
}
.lm-cart-ship-note span:first-child {
	color: var(--ink);
}
.lm-cart-ship-bar {
	position: relative;
	height: 6px;
	border: 1px solid var(--ink);
	background: var(--paper);
}
.lm-cart-ship-bar-fill {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	background: var(--ink);
	transition: width .4s;
}
.lm-cart-ship-bar-dot {
	position: absolute;
	top: -4px;
	width: 2px;
	height: 12px;
	background: var(--ink);
	margin-left: -1px;
	transition: left .4s;
}
.lm-cart-ship-cond {
	font-size: 11px;
	color: var(--smoke);
	line-height: 1.3;
}
.lm-cart-ship-kept {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.lm-cart-ship-badge {
	display: inline-flex;
	align-self: flex-start;
	align-items: center;
	gap: 8px;
	padding: 5px 10px;
	background: var(--acid);
	box-shadow: 0 0 0 1px var(--ink);
	font: 400 10.5px/1.3 var(--font-mono);
	letter-spacing: .08em;
	text-transform: uppercase;
}
.lm-cart-ship-badge-dot {
	width: 6px;
	height: 6px;
	background: var(--ink);
}
.lm-cart-ship-badge--lost {
	background: var(--ash);
	box-shadow: 0 0 0 1px var(--smoke);
	color: var(--smoke);
}
.lm-cart-ship-badge-strike {
	text-decoration: line-through;
	text-decoration-thickness: 1px;
}
.lm-cart-ship-badge-x {
	font-size: 12px;
	line-height: 1;
}
.lm-cart-ship-lost {
	display: flex;
	flex-direction: column;
	gap: 8px;
	animation: lm-cart-in .3s;
}
.lm-cart-ship-lost-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}
.lm-cart-ship-threshold {
	font: 400 10.5px/1 var(--font-mono);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--smoke);
}
.lm-cart-ship-link {
	align-self: flex-start;
	border: 0;
	background: transparent;
	padding: 0;
	margin-top: -2px;
	font: 400 11.5px/1.35 var(--font-body);
	color: var(--graphite);
	text-align: left;
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: var(--smoke);
}

/* "До набору" upsell row — 150×248 cards, collapse to width 0 once added */
.lm-cart-upsell {
	border-bottom: 1px solid var(--ink);
	padding: 18px 0 20px;
}
.lm-cart-upsell--tight {
	padding-top: 14px;
}
.lm-cart-upsell-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding: 0 20px 12px;
}
.lm-cart-upsell-head span:first-child {
	font: var(--display-eyebrow);
	letter-spacing: .1em;
	text-transform: uppercase;
}
.lm-cart-upsell-hint {
	font: 400 10.5px/1 var(--font-mono);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--smoke);
}
.lm-cart-upsell-row {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	padding: 1px 20px;
	scroll-padding-left: 20px;
	scrollbar-width: none;
}
.lm-cart-upsell-card {
	flex: none;
	width: 150px;
	scroll-snap-align: start;
	overflow: hidden;
	transition: width .4s var(--ease-out), margin-right .4s var(--ease-out), opacity .3s;
}
.lm-cart-upsell-card.is-closing {
	width: 0;
	margin-right: -10px;
	opacity: 0;
}
.lm-cart-upsell-inner {
	width: 150px;
	height: 300px;
	box-shadow: 0 0 0 1px var(--ink);
	display: flex;
	flex-direction: column;
	background: var(--paper);
}
.lm-cart-upsell-thumb {
	height: 100px;
	flex: none;
	background: var(--ash);
	box-shadow: inset 0 0 0 1px var(--ink);
	overflow: hidden;
}
.lm-cart-upsell-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.lm-cart-upsell-body {
	padding: 10px 10px 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
	flex: 1;
}
/* Fixed text heights so price + "+" sit on one line across every card. */
.lm-cart-upsell-name {
	font-size: 13.5px;
	font-weight: 500;
	line-height: 1.25;
	height: 34px;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
}
.lm-cart-upsell-line {
	font-size: 11.5px;
	color: var(--smoke);
	line-height: 1.3;
	height: 15px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* Slot/kind badge ("РЕФІЛ", "ЛИСТІВКА") + the "why" line (ТЗ §2.7.3). */
.lm-cart-upsell-badge {
	font: 400 9.5px/1 var(--font-mono);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--smoke);
	height: 10px;
}
.lm-cart-upsell-reason {
	font-size: 11px;
	line-height: 1.3;
	color: var(--graphite);
	height: 29px;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	margin-top: 2px;
}
.lm-cart-upsell-reason b {
	font-weight: 500;
	color: var(--ink);
}
/* Refill aroma: "змінити аромат →" → inline select (same row height for every card). */
.lm-cart-upsell-aroma {
	min-height: 22px;
	padding: 0 10px;
	display: flex;
	align-items: center;
}
.lm-cart-upsell-aroma-toggle {
	border: 0;
	background: none;
	padding: 0;
	font: 400 10.5px/1 var(--font-mono);
	letter-spacing: .04em;
	color: var(--smoke);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.lm-cart-upsell-aroma-select {
	width: 100%;
	height: 22px;
	border: 1px solid var(--ink);
	border-radius: 0;
	background: var(--paper);
	font: 400 11px/1 var(--font-body);
	padding: 0 4px;
	color: var(--ink);
}
.lm-cart-upsell-foot {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px;
	margin-top: auto;
}
/* wc-add-to-cart.js injects a "View cart" link after the button — never wanted here. */
.lm-cart-upsell-foot .added_to_cart {
	display: none;
}
.lm-cart-upsell-price {
	font: 400 13px/1 var(--font-mono);
}
.lm-cart-upsell-card.is-added .lm-cart-upsell-price {
	font-size: 10.5px;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.lm-cart-upsell-add {
	width: 40px;
	height: 40px;
	border: 1px solid var(--ink);
	border-radius: 0;
	background: var(--paper);
	color: var(--ink);
	font: 400 22px/1 var(--font-body);
	cursor: pointer;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	transition: background .3s, color .3s;
}
.lm-cart-upsell-add:disabled {
	opacity: .4;
	cursor: default;
}
.lm-cart-upsell-add:hover,
.lm-cart-upsell-card.is-added .lm-cart-upsell-add {
	background: var(--ink);
	color: var(--paper);
}

/* Form: three steps */
.lm-cart-step {
	padding: 22px 20px 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.lm-cart-step + .lm-cart-step {
	padding-top: 26px;
}
.lm-cart-step--last {
	padding-bottom: 28px;
}
.lm-cart-step-head {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 4px;
}
.lm-cart-step-head--center {
	align-items: center;
}
.lm-cart-step-no {
	width: 28px;
	height: 28px;
	border: 1px solid var(--ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font: 400 12px/1 var(--font-mono);
	background: transparent;
	transition: all .35s;
}
.lm-cart-step-no.is-done {
	background: var(--ink);
	color: var(--paper);
}
.lm-cart-step-title {
	font-size: 17px;
	font-weight: 500;
	line-height: 28px;
}
.lm-cart-step-note {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	line-height: 28px;
	color: var(--smoke);
}
.lm-cart-np-logo {
	width: 16px;
	height: 16px;
	flex: none;
	overflow: hidden;
	display: inline-flex;
}
.lm-cart-np-logo img {
	width: 100%;
	height: 100%;
	display: block;
}
.lm-cart-step-hint {
	margin: -6px 0 2px;
	font-size: 12.5px;
	line-height: 1.45;
	color: var(--graphite);
}
/* Step-1 microcopy flips with the gift toggle (Frontend.CartPanel.bindGift). */
.lm-cart-form.is-gift [data-lc-hint-plain],
.lm-cart-form:not(.is-gift) [data-lc-hint-gift] {
	display: none;
}
.lm-cart-field-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.lm-cart-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.lm-cart-field--wide {
	grid-column: 1 / -1;
}
.lm-cart-field-err {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
}
.lm-cart-field-err::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--ink);
	flex: none;
}
.lm-cart-field-hint {
	font: 400 10.5px/1.3 var(--font-mono);
	letter-spacing: .06em;
	color: var(--smoke);
	text-transform: uppercase;
}
.lm-cart-input-wrap {
	position: relative;
}
/* Acid "picked" marker inside an autocomplete field */
.lm-cart-picked {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	width: 14px;
	height: 14px;
	background: var(--acid);
	box-shadow: inset 0 0 0 1px var(--ink);
	pointer-events: none;
}
/* Error = extra inner 1px ink ring (double border) */
.lm-input.is-error {
	box-shadow: inset 0 0 0 1px var(--ink);
}
.lm-input--muted {
	border-color: var(--smoke);
}

/* Custom checkboxes (marketing 16px · gift 24px · order bump 24px) */
.lm-cart-check-input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
	margin: 0;
	pointer-events: none;
}
.lm-cart-check-row {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 44px;
	cursor: pointer;
	user-select: none;
}
.lm-cart-check-row--mkt {
	gap: 10px;
	min-height: 24px;
	margin-top: 4px;
}
.lm-cart-check {
	width: 24px;
	height: 24px;
	flex: none;
	border: 1px solid var(--ink);
	background: transparent;
	color: var(--ink);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .3s;
}
.lm-cart-check svg {
	opacity: 0;
	transition: opacity .2s;
}
.lm-cart-check--sm {
	width: 16px;
	height: 16px;
}
.lm-cart-check-input:checked + .lm-cart-check {
	background: var(--acid);
}
.lm-cart-check-input:checked + .lm-cart-check svg {
	opacity: 1;
}
.lm-cart-check-input:focus-visible + .lm-cart-check {
	outline: 2px solid var(--ink);
	outline-offset: 2px;
}
.lm-cart-check-label {
	font-size: 12px;
	color: var(--smoke);
	line-height: 1.3;
}
.lm-cart-gift-toggle {
	margin-top: 22px;
}
.lm-cart-gift-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.lm-cart-gift-sub {
	font-size: 12px;
	color: var(--smoke);
}
.lm-cart-gift-panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .45s var(--ease-out);
}
.lm-cart-gift-panel-inner {
	overflow: hidden;
	visibility: hidden;
	transition: visibility .45s;
}
.lm-cart-gift-panel.is-open {
	grid-template-rows: 1fr;
}
.lm-cart-gift-panel.is-open .lm-cart-gift-panel-inner {
	visibility: visible;
}
.lm-cart-gift-panel-content {
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 6px 0 4px 14px;
	margin-left: 11px;
	border-left: 1px solid var(--ink);
}
.lm-cart-recipient-head {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.lm-cart-recipient-head .lm-cart-step-hint {
	margin: 0;
}

/* Order bump "Листівка" */
.lm-cart-bump {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	height: 60px;
	padding: 0 14px 0 12px;
	margin: 12px 0 6px;
	border: 1px solid var(--ink);
	background: var(--paper);
	cursor: pointer;
	user-select: none;
	transition: background .3s;
}
.lm-cart-bump.is-on {
	background: var(--acid);
}
.lm-cart-check--bump {
	color: var(--paper);
}
.lm-cart-bump .lm-cart-check-input:checked + .lm-cart-check {
	background: var(--ink);
}
.lm-cart-bump-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	flex: 1;
	min-width: 0;
}
.lm-cart-bump-name {
	font-size: 15px;
	line-height: 1.2;
}
.lm-cart-bump-sub {
	font-size: 12px;
	color: var(--smoke);
	line-height: 1.2;
}
.lm-cart-bump-price {
	font: 400 14px/1 var(--font-mono);
	flex: none;
}
.lm-cart-bump-added {
	display: none;
	font: 400 10.5px/1 var(--font-mono);
	letter-spacing: .08em;
	text-transform: uppercase;
	flex: none;
}
.lm-cart-bump.is-on .lm-cart-bump-price {
	display: none;
}
.lm-cart-bump.is-on .lm-cart-bump-added {
	display: inline;
}
.lm-cart-card-panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .4s var(--ease-out);
}
.lm-cart-card-panel-inner {
	overflow: hidden;
	visibility: hidden;
	transition: visibility .4s;
}
.lm-cart-card-panel.is-open {
	grid-template-rows: 1fr;
}
.lm-cart-card-panel.is-open .lm-cart-card-panel-inner {
	visibility: visible;
}
.lm-cart-card-panel-content {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 2px 0 4px;
}
.lm-cart-card-text {
	min-height: 84px;
	font-size: 14px;
	line-height: 1.45;
}
.lm-cart-card-meta {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	font-size: 11.5px;
	color: var(--smoke);
}
.lm-cart-card-count {
	font-family: var(--font-mono);
}
/* Card text lives on the "Листівка" cart line (ТЗ §3.1.1). */
.lm-cart-card-line {
	margin-top: 8px;
}
.lm-cart-card-toggle {
	border: 0;
	background: none;
	padding: 0;
	display: flex;
	gap: 6px;
	align-items: baseline;
	max-width: 100%;
	font: 400 10.5px/1.3 var(--font-mono);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--ink);
	cursor: pointer;
	text-align: left;
}
.lm-cart-card-toggle-label {
	color: var(--smoke);
	flex: none;
}
.lm-cart-card-toggle-value {
	text-decoration: underline;
	text-underline-offset: 2px;
	text-decoration-color: var(--smoke);
}
.lm-cart-card-line.has-text .lm-cart-card-toggle-value {
	text-transform: none;
	letter-spacing: 0;
	font-family: var(--font-body);
	font-size: 12px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}
.lm-cart-card-line .lm-cart-card-panel-content {
	padding-top: 8px;
}
.lm-cart-bump-note-link {
	border: 0;
	background: none;
	padding: 4px 0 0;
	font: 400 11px/1.3 var(--font-body);
	color: var(--smoke);
	cursor: pointer;
	text-align: left;
	text-decoration: underline;
	text-underline-offset: 2px;
}

/* Delivery tiles + Nova Poshta autocomplete */
.lm-cart-delivery-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1px;
	background: var(--ink);
	border: 1px solid var(--ink);
}
.lm-cart-delivery-tile {
	min-height: 52px;
	border: 0;
	background: var(--paper);
	color: var(--ink);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 2px;
	padding: 8px 14px;
	cursor: pointer;
	transition: background .3s;
	text-align: left;
}
.lm-cart-delivery-tile.is-active {
	background: var(--acid);
}
.lm-cart-delivery-title {
	font-size: 14px;
	font-weight: 600;
}
.lm-cart-delivery-sub {
	font-size: 11.5px;
	color: var(--graphite);
}
.lm-cart-reveal {
	animation: lm-cart-in .3s;
}
.lm-cart-autocomplete {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.lm-cart-autocomplete-list {
	position: absolute;
	left: 0;
	right: 0;
	top: 48px;
	z-index: 10;
	background: var(--paper);
	border: 1px solid var(--ink);
	border-top: 0;
	max-height: 240px;
	overflow-y: auto;
	animation: lm-cart-in .25s;
}
.lm-cart-autocomplete-searching {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 44px;
	padding: 0 14px;
	font: 400 11px/1 var(--font-mono);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--smoke);
}
.lm-cart-autocomplete-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	min-height: 44px;
	padding: 0 14px;
	border: 0;
	border-top: 1px solid var(--ash);
	background: var(--paper);
	color: var(--ink);
	font: 400 15px/1.3 var(--font-body);
	text-align: left;
	cursor: pointer;
}
.lm-cart-autocomplete-row:hover {
	background: var(--ink);
	color: var(--paper);
}
.lm-cart-autocomplete-meta {
	font: 400 11px/1 var(--font-mono);
	opacity: .6;
}
.lm-cart-autocomplete-row--wh {
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 2px;
	min-height: 52px;
	padding: 8px 14px;
}
.lm-cart-autocomplete-row--wh:hover {
	background: var(--ash);
	color: var(--ink);
}
.lm-cart-autocomplete-name {
	font-size: 14px;
	font-weight: 600;
}
.lm-cart-autocomplete-addr {
	font-size: 12px;
	color: var(--smoke);
}
.lm-cart-autocomplete-empty {
	padding: 12px 14px;
	font-size: 13.5px;
	line-height: 1.45;
	color: var(--graphite);
}
/* Three pulsing 4×12 bars — "ШУКАЄМО" and the loading CTA */
.lm-cart-loader {
	display: inline-flex;
	gap: 3px;
	align-items: center;
	color: inherit;
}
.lm-cart-loader span {
	width: 4px;
	height: 12px;
	background: currentColor;
	animation: lm-cart-dot 1s infinite;
}
.lm-cart-loader span:nth-child(2) {
	animation-delay: .15s;
}
.lm-cart-loader span:nth-child(3) {
	animation-delay: .3s;
}
.lm-cart-loader--ink {
	color: var(--ink);
}

/* Payment — asymmetric 62/38 pair */
.lm-cart-pay-grid {
	display: grid;
	grid-template-columns: 62fr 38fr;
	gap: 1px;
	background: var(--ink);
	border: 1px solid var(--ink);
}
.lm-cart-pay-grid--single {
	grid-template-columns: 1fr;
}
.lm-cart-pay-tile {
	min-height: 64px;
	border: 0;
	background: var(--paper);
	color: var(--ink);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 3px;
	padding: 10px 14px;
	cursor: pointer;
	transition: background .3s;
	text-align: left;
}
.lm-cart-pay-tile--card.is-active {
	background: var(--acid);
}
.lm-cart-pay-tile--cod {
	color: var(--smoke);
}
.lm-cart-pay-tile--cod.is-active {
	background: var(--ash);
}
.lm-cart-pay-title {
	font-size: 14px;
	font-weight: 600;
	line-height: 1.2;
}
.lm-cart-pay-sub {
	font-size: 11.5px;
	color: var(--graphite);
	line-height: 1.3;
}
.lm-cart-pay-tile--cod .lm-cart-pay-sub {
	color: #8A8A8A;
}
.lm-cart-pay-meta {
	font: 400 10.5px/1.3 var(--font-mono);
	letter-spacing: .06em;
	text-transform: uppercase;
}
.lm-cart-pay-logos {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
	animation: lm-cart-in .3s;
}
.lm-cart-pay-logo {
	width: 40px;
	height: 24px;
	flex: none;
	overflow: hidden;
	box-shadow: inset 0 0 0 1px var(--ash);
	display: inline-flex;
}
.lm-cart-pay-logo img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.lm-cart-pay-secure {
	font-size: 11.5px;
	color: var(--smoke);
	margin-left: auto;
}

/* Footer: CTA + state-driven footnote */
.lm-cart-footer {
	flex: none;
	padding: 12px 20px 18px;
	border-top: 1px solid var(--ink);
	background: var(--paper);
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.lm-cart-error {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
}
.lm-cart-error::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--ink);
	flex: none;
}
.lm-cart-submit {
	width: 100%;
	gap: 12px;
}
.lm-cart-submit .lm-cart-loader {
	display: none;
}
.lm-cart-submit.is-loading {
	background: var(--ink);
	color: var(--paper);
}
.lm-cart-submit.is-loading .lm-cart-loader {
	display: inline-flex;
}
.lm-cart-footnote {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	margin-top: -4px;
	text-align: center;
}
.lm-cart-footnote-line {
	font: 400 10.5px/1.3 var(--font-mono);
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ink);
}
.lm-cart-footnote-line--lost {
	color: var(--smoke);
	text-decoration: line-through;
}
.lm-cart-footnote-sub {
	font-size: 11px;
	color: var(--smoke);
}
/* "Передплата N ₴ … решта M ₴ і доставка — на пошті" while COD is picked (ТЗ §5.4). */
.lm-cart-footnote-cod {
	color: var(--graphite);
	margin-top: 2px;
}
/* Cart too small for the prepayment → the COD tile is gone (ТЗ §5.3). */
.lm-cart-pay-grid.is-cod-hidden {
	grid-template-columns: 1fr;
}
.lm-cart-pay-grid.is-cod-hidden [data-lc-pay="cod"] {
	display: none;
}
.lm-cart-done-note--cod {
	padding: 10px 12px;
	border: 1px solid var(--ink);
}

/* Order-received page: "Додати до цього ж замовлення" (template-parts/lume/thankyou.php) */
.lm-ty-upsell {
	max-width: var(--page-max);
	margin: 0 auto 32px;
	border: 1px solid var(--ink);
	padding: 18px 0 14px;
	background: var(--paper);
	color: var(--ink);
}
.lm-ty-upsell-head {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 0 20px 12px;
}
.lm-ty-upsell-title {
	font: var(--display-eyebrow);
	letter-spacing: .1em;
	text-transform: uppercase;
}
.lm-ty-upsell-note {
	font: 400 10.5px/1.3 var(--font-mono);
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--smoke);
}
.lm-ty-upsell.is-expired .lm-ty-upsell-row {
	opacity: .4;
	pointer-events: none;
}
.lm-ty-upsell-error {
	margin: 0 20px 10px;
	font-size: 12.5px;
	color: var(--ink);
}
.lm-ty-upsell-foot {
	margin: 12px 20px 0;
	font-size: 11.5px;
	line-height: 1.4;
	color: var(--smoke);
}

/* Thank-you screen */
.lm-cart-done {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 0 28px 60px;
	gap: 14px;
}
.lm-cart-done-order {
	font: var(--mono-meta);
	letter-spacing: .08em;
	color: var(--smoke);
}
.lm-cart-done-title {
	font: 700 72px/.9 var(--font-script);
}
.lm-cart-done-deg {
	font-size: 26px;
	margin-left: 4px;
	vertical-align: top;
}
.lm-cart-done-note {
	margin: 0;
	font-size: 15px;
	line-height: 1.45;
	color: var(--graphite);
	max-width: 300px;
}
.lm-cart-done-total {
	display: flex;
	align-items: baseline;
	gap: 10px;
	margin-top: 6px;
	padding-top: 14px;
	border-top: 1px solid var(--ink);
	width: 100%;
}
.lm-cart-done-total-amount {
	font: 400 28px/1 var(--font-mono);
}
.lm-cart-done-total-label {
	font-size: 13px;
	color: var(--smoke);
}

/**
 * Component library — one block per template-parts/lume/components/*.php file.
 * Each component's PHP only emits inline style="" for values it can't know ahead
 * of time (per-call sizes/gaps as CSS custom properties, or a documented
 * $extra_style/$attrs['style'] passthrough parameter for callers to extend).
 */

/* Accordion */
.lm-accordion {
	border-top: 1px solid var(--ink);
}
.lm-acc-row {
	border-bottom: 1px solid var(--ink);
}
.lm-acc-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 0;
	cursor: pointer;
	min-height: 56px;
}
.lm-acc-q {
	font: var(--body-lg);
}
.lm-acc-icon {
	width: 22px;
	height: 22px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .4s;
}
.lm-acc-panel {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows .4s var(--ease-out);
}
.lm-acc-panel-inner {
	overflow: hidden;
}
.lm-acc-a {
	margin: 0;
	padding: 0 0 18px;
	font: var(--body-sm);
	color: var(--graphite);
	white-space: pre-line;
}

/* Badge */
.lm-badge {
	display: inline-flex;
	align-items: center;
	padding: 3px 7px;
	border: 1px solid var(--ink);
	background: var(--paper);
	color: var(--ink);
	font: 400 10px/1.3 var(--font-mono);
	letter-spacing: .06em;
	text-transform: uppercase;
	white-space: nowrap;
}
.lm-badge--inverse {
	background: var(--ink);
	color: var(--paper);
}

/* Button */
.lm-btn {
	padding: 0 16px;
	border: 0;
	box-shadow: 0 0 0 1px var(--ink);
	border-radius: 0;
	cursor: pointer;
	font: var(--display-cta);
	letter-spacing: var(--tracking-cta);
	text-transform: uppercase;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: all var(--dur-med);
}
.lm-btn[disabled] {
	cursor: default;
	opacity: .38;
}
.lm-btn--lg {
	height: var(--cta-h);
}
.lm-btn--md {
	height: var(--cta-h-sm);
}
.lm-btn--sm {
	height: var(--control-h);
}
.lm-btn--primary {
	background: var(--paper);
	color: var(--ink);
}
.lm-btn--selected {
	background: var(--acid);
	color: var(--ink);
}
.lm-btn--inverse {
	background: var(--ink);
	color: var(--paper);
}
.lm-btn--outline {
	background: transparent;
	color: var(--ink);
	font: 400 12px/1 var(--font-mono);
	letter-spacing: .06em;
}
.lm-btn--ghost {
	background: transparent;
	color: var(--ink);
	font: 600 13px/1 var(--font-body);
	text-transform: none;
	letter-spacing: 0;
}

/* Card */
.lm-card {
	background: var(--paper);
	box-shadow: 0 0 0 1px var(--ink);
	padding: var(--lm-card-pad, 14px);
	border-radius: 0;
	transition: background var(--dur-med);
}
.lm-card.is-selected {
	background: var(--acid);
}

/* Chip */
.lm-chip {
	flex: none;
	height: 34px;
	padding: 0 13px;
	border: 1px solid var(--ink);
	background: transparent;
	color: var(--ink);
	font: 400 12px/1 var(--font-mono);
	text-transform: uppercase;
	letter-spacing: .04em;
	cursor: pointer;
	border-radius: 0;
	transition: all .3s;
}
.lm-chip.is-active {
	background: var(--ink);
	color: var(--paper);
}

/* IconButton */
.lm-icon-btn {
	position: relative;
	width: 44px;
	height: 44px;
	border: 0;
	background: transparent;
	color: var(--ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	border-radius: 0;
	font-size: 20px;
	line-height: 1;
}
.lm-icon-btn--right {
	border-right: 1px solid var(--ink);
}
.lm-icon-btn--left {
	border-left: 1px solid var(--ink);
}
.lm-icon-btn--box {
	border: 1px solid var(--ink);
}
.lm-icon-btn-badge {
	position: absolute;
	top: 6px;
	right: 6px;
	min-width: 16px;
	height: 16px;
	background: var(--ink);
	color: var(--paper);
	font: 700 10px/1 var(--font-mono);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 4px;
}

/* Input */
.lm-input {
	border: 1px solid var(--ink);
	padding: 0 14px;
	height: 48px;
	font: var(--body-md);
	background: var(--paper);
	color: var(--ink);
	outline: none;
	border-radius: 0;
	width: 100%;
	resize: none;
}
.lm-input--multiline {
	padding: 12px 14px;
	height: auto;
}

/* Logo */
.lm-logo {
	font: 700 var(--lm-logo-size, 42px)/1 var(--font-script);
	display: inline-flex;
	align-items: flex-start;
	gap: calc(var(--lm-logo-size, 42px) * 0.07);
}
.lm-logo-deg {
	font-size: calc(var(--lm-logo-size, 42px) * 0.36);
	margin-top: calc(var(--lm-logo-size, 42px) * -0.05);
}

/* Rating */
.lm-rating {
	display: inline-flex;
	gap: var(--lm-rating-gap, 2px);
}
.lm-rate-star {
	width: 44px;
	height: 44px;
	border: 1px solid var(--ink);
	background: transparent;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	padding: 0;
	border-radius: 0;
}

/* SectionTitle */
.lm-section-title {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}
.lm-section-title-h {
	margin: 0;
	font: var(--display-h2);
	letter-spacing: var(--tracking-display);
	text-transform: uppercase;
}
.lm-section-title-meta {
	font: var(--mono-meta);
	letter-spacing: .06em;
	color: var(--smoke);
}

/* Speckle */
.lm-speckle {
	height: var(--lm-speckle-h, 22px);
	border-top: 1px solid var(--ink);
	border-bottom: 1px solid var(--ink);
	background: var(--paper) url(../img/speckle.png) center/var(--lm-speckle-size, 300px);
}

/* StepNumber */
.lm-step-number {
	width: 28px;
	height: 28px;
	border: 1px solid var(--ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font: 400 12px/1 var(--font-mono);
	background: transparent;
	color: var(--ink);
	transition: all .35s;
}
.lm-step-number.is-done {
	background: var(--ink);
	color: var(--paper);
}

/* Stepper */
.lm-qty {
	display: grid;
	grid-template-columns: 44px 44px 44px;
	height: var(--lm-qty-h, 58px);
	border: 1px solid var(--ink);
}
.lm-qty-cell {
	border: 0;
	background: transparent;
	color: var(--ink);
	font-size: 20px;
	cursor: pointer;
	padding: 0;
	border-radius: 0;
}
.lm-qty-cell--dec {
	border-right: 1px solid var(--ink);
}
.lm-qty-cell--inc {
	border-left: 1px solid var(--ink);
}
.lm-qty-value {
	display: flex;
	align-items: center;
	justify-content: center;
	font: 400 16px/1 var(--font-mono);
}
