/* ==========================================================================
   Omega Oils — cart page (design v2: "cart page/desktop|mobile")
   Markup: template-parts/omega/cart.php (data: inc/omega-cart.php)
   Mobile first; items + summary side by side from 1024px. Uses the tokens
   and components from omega-base.css; product colours come from
   omega_product_style() on each line item / suggestion (--o-product).
   ========================================================================== */

.cart-page {
	padding-block: var(--o-space-md) var(--o-space-2xl);
	overflow-x: clip;
}

@media (min-width: 768px) {
	.cart-page {
		padding-top: var(--o-space-xl);
	}
}

/* --------------------------------------------------------------------------
   Notices
   -------------------------------------------------------------------------- */

.cart-notices:empty {
	display: none;
}

.cart-notices .woocommerce-message,
.cart-notices .woocommerce-error,
.cart-notices .woocommerce-info {
	margin: 0 0 var(--o-space-md);
	padding: var(--o-space-sm) var(--o-space-md);
	list-style: none;
	border: var(--o-hairline);
	border-radius: var(--o-radius);
	background: var(--o-white);
	box-shadow: var(--o-shadow-soft);
}

.cart-notices .woocommerce-error {
	background: var(--o-error-container);
}

/* WooCommerce's notice icon is absolutely positioned at the left. */
.cart-notices .woocommerce-message,
.cart-notices .woocommerce-error,
.cart-notices .woocommerce-info {
	position: relative;
	padding-left: 2.75em;
}

.cart-notices .woocommerce-message::before,
.cart-notices .woocommerce-error::before,
.cart-notices .woocommerce-info::before {
	top: 50%;
	left: 1em;
	transform: translateY(-50%);
}

.cart-notices a {
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.cart-notices .button {
	margin-right: var(--o-space-sm);
}

/* --------------------------------------------------------------------------
   Title: breadcrumbs, h1 + count chip, confirmed-fact note
   -------------------------------------------------------------------------- */

.cart-head {
	margin-bottom: var(--o-space-lg);
}

.cart-crumbs {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--o-space-sm);
	margin-bottom: var(--o-space-lg);
	color: var(--o-text-muted);
	font-size: 12px;
	line-height: 16px;
	font-weight: 500;
}

.cart-crumbs .o-icon {
	font-size: 14px;
}

.cart-crumbs a:hover {
	color: var(--o-forest);
}

.cart-crumbs [aria-current] {
	color: var(--o-forest);
	font-weight: 600;
}

.cart-head__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--o-space-sm) var(--o-space-md);
}

.cart-head__title {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--o-space-sm) var(--o-space-md);
	font-family: var(--o-font-heading);
	font-size: 28px;
	line-height: 36px;
	font-weight: 700;
	letter-spacing: 0.01em;
	color: var(--o-on-surface);
}

.cart-head__count {
	display: inline-flex;
	align-items: center;
	padding: 4px 12px;
	border-radius: var(--o-radius-full);
	background: var(--o-surface-cream-alt);
	color: var(--o-espresso);
	font-family: var(--o-font-label);
	font-size: 12px;
	line-height: 16px;
	font-weight: 700;
	letter-spacing: 0.06em;
}

.cart-head__note {
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--o-text-muted);
	font-size: 14px;
	line-height: 20px;
}

.cart-head__note .o-icon {
	font-size: 18px;
	color: var(--o-gold);
}

@media (min-width: 768px) {
	.cart-head__title {
		font-size: 40px;
		line-height: 48px;
	}
}

/* Phones with items: the design opens with the shipping bar and the item
   counter, so the title block is kept for screen readers only. */
@media (max-width: 767.98px) {
	.cart-page--filled .cart-head {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		padding: 0;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
		border: 0;
	}
}

/* --------------------------------------------------------------------------
   Free-shipping progress (only when the store has a "free above X" method)
   -------------------------------------------------------------------------- */

.cart-ship {
	margin-bottom: var(--o-space-md);
	padding: 12px var(--o-space-md);
	border-radius: var(--o-radius-lg);
	background: var(--o-white);
	box-shadow: var(--o-shadow-card);
}

.cart-ship__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--o-space-sm);
	margin-bottom: 8px;
}

.cart-ship__text {
	display: flex;
	align-items: center;
	gap: var(--o-space-sm);
	min-width: 0;
	font-size: 13px;
	line-height: 18px;
	font-weight: 600;
	color: var(--o-espresso);
}

.cart-ship__icon {
	font-size: 20px;
	color: var(--o-gold);
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

.cart-ship__left {
	font-family: var(--o-font-heading);
	font-weight: 700;
	color: var(--o-forest);
}

.cart-ship__goal {
	display: none;
	color: var(--o-text-muted);
	font-size: 12px;
	line-height: 16px;
	font-weight: 500;
	white-space: nowrap;
}

.cart-ship__pct {
	flex-shrink: 0;
	color: var(--o-text-muted);
	font-family: var(--o-font-label);
	font-size: 11px;
	font-weight: 700;
}

.cart-ship__track {
	height: 8px;
	border-radius: var(--o-radius-full);
	background: var(--o-surface-cream-alt);
	overflow: hidden;
}

.cart-ship__bar {
	display: block;
	height: 100%;
	min-width: 8px;
	border-radius: inherit;
	background: var(--o-forest);
	transition: width 500ms ease-out;
}

.cart-ship__foot {
	display: none;
	justify-content: space-between;
	gap: var(--o-space-sm);
	margin-top: 8px;
	color: var(--o-text-muted);
	font-size: 12px;
	line-height: 16px;
	font-weight: 500;
}

.cart-ship__target {
	color: var(--o-forest);
	font-weight: 600;
}

.cart-ship.is-done .cart-ship__icon {
	color: var(--o-forest);
}

@media (min-width: 768px) {
	.cart-ship {
		margin-bottom: var(--o-space-xl);
		padding: var(--o-space-md) var(--o-space-lg);
	}

	.cart-ship__row {
		margin-bottom: 12px;
	}

	.cart-ship__text {
		font-size: 16px;
		line-height: 24px;
		font-weight: 400;
	}

	.cart-ship__icon {
		font-size: 22px;
		color: var(--o-forest);
		font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
	}

	.cart-ship__left {
		font-size: 18px;
	}

	.cart-ship__goal,
	.cart-ship__foot {
		display: flex;
	}

	.cart-ship__pct {
		display: none;
	}

	.cart-ship__track {
		height: 12px;
	}

	.cart-ship__bar {
		background: linear-gradient(90deg, var(--o-forest), var(--o-gold));
	}
}

/* --------------------------------------------------------------------------
   Layout: items (+ suggestions) left, summary right from 1024px
   -------------------------------------------------------------------------- */

.cart-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--o-space-md);
	align-items: start;
}

@media (min-width: 1024px) {
	.cart-grid {
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
		grid-template-rows: auto 1fr;
		column-gap: var(--o-gutter);
		row-gap: var(--o-space-xl);
	}

	.cart-main { grid-column: 1; grid-row: 1; }
	.cart-grid > .cart-xsell { grid-column: 1; grid-row: 2; }
	.cart-side { grid-column: 2; grid-row: 1 / span 2; }
}

@media (min-width: 1024px) and (min-height: 860px) {
	.cart-side {
		position: sticky;
		top: 128px;
	}
}

.cart-main {
	display: flex;
	flex-direction: column;
	gap: var(--o-space-sm);
	min-width: 0;
}

@media (min-width: 768px) {
	.cart-main {
		gap: var(--o-space-lg);
	}
}

/* Phone item counter + "Изчисти" */
.cart-list-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--o-space-sm);
}

.cart-list-head__title {
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--o-font-heading);
	font-size: 18px;
	line-height: 26px;
	font-weight: 600;
	color: var(--o-espresso);
}

.cart-list-head__title .o-icon {
	color: var(--o-forest);
}

.cart-clear {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-height: 44px;
	padding-inline: 4px;
	color: var(--o-text-muted);
	font-size: 12px;
	line-height: 16px;
	font-weight: 600;
	transition: color var(--o-ease), background-color var(--o-ease);
}

.cart-clear .o-icon {
	font-size: 16px;
}

.cart-clear:hover {
	color: var(--o-error);
}

.cart-clear--bottom {
	display: none;
}

/* Desktop column labels */
.cart-cols {
	display: none;
}

@media (min-width: 768px) {
	.cart-list-head {
		display: none;
	}

	.cart-clear--bottom {
		display: inline-flex;
		padding: 10px 16px;
		border-radius: var(--o-radius-full);
		font-size: 15px;
		line-height: 20px;
	}

	.cart-clear--bottom .o-icon {
		font-size: 18px;
	}

	.cart-clear--bottom:hover {
		background: var(--o-surface-cream-alt);
	}

	.cart-cols {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 96px 124px 96px;
		gap: var(--o-space-md);
		padding-inline: var(--o-space-md);
		color: var(--o-text-muted);
		font-family: var(--o-font-label);
		font-size: 12px;
		line-height: 16px;
		font-weight: 700;
		letter-spacing: 0.06em;
		text-transform: uppercase;
	}

	.cart-cols span:nth-child(2),
	.cart-cols span:nth-child(3) {
		text-align: center;
	}

	.cart-cols span:nth-child(4) {
		text-align: right;
	}
}

/* --------------------------------------------------------------------------
   Line items
   Phones: image | name, chip, size (× top right) | line total + stepper.
   768px+: image + info | unit price | stepper | line total.
   -------------------------------------------------------------------------- */

.cart-items {
	display: flex;
	flex-direction: column;
	gap: var(--o-space-sm);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cart-item {
	position: relative;
	display: grid;
	grid-template-columns: 80px minmax(0, 1fr) auto;
	grid-template-areas:
		"img info info"
		"img total qty";
	column-gap: 12px;
	row-gap: 8px;
	align-items: center;
	padding: var(--o-space-sm);
	border-radius: var(--o-radius-lg);
	background: var(--o-white);
	box-shadow: var(--o-shadow-card);
	transition: box-shadow var(--o-ease);
}

.cart-item:hover {
	box-shadow: var(--o-shadow-lift);
}

.cart-item__img {
	grid-area: img;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	align-self: stretch;
	width: 80px;
	min-height: 96px;
	padding: 4px;
	border-radius: var(--o-radius);
	background: var(--o-surface-cream);
	overflow: hidden;
}

.cart-item__img img {
	width: 100%;
	height: 100%;
	max-height: 104px;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.cart-item__seal {
	position: absolute;
	top: 4px;
	left: 4px;
	width: 18px;
	height: 18px;
	font-size: 10px;
}

.cart-item__info {
	grid-area: info;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 4px;
	min-width: 0;
	padding-right: 32px; /* room for the × */
}

.cart-item__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	max-width: 100%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	padding: 2px 8px;
	border-radius: var(--o-radius-full);
	background: var(--o-surface-cream-alt);
	color: var(--o-espresso);
	font-size: 11px;
	line-height: 16px;
	font-weight: 600;
}

.cart-item__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--o-product);
	flex-shrink: 0;
}

.cart-item__name {
	order: -1;
	font-family: var(--o-font-heading);
	font-size: 16px;
	line-height: 22px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--o-espresso);
	overflow-wrap: break-word;
}

.cart-item__name a:hover {
	color: var(--o-forest);
}

.cart-item__size {
	color: var(--o-text-muted);
	font-size: 13px;
	line-height: 18px;
}

/* Remove: × at the top right on phones, "🗑 Премахни" under the name from 768px */
.cart-item__remove {
	position: absolute;
	top: 4px;
	right: 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 4px;
	width: 40px;
	height: 40px;
	border-radius: var(--o-radius-full);
	color: var(--o-text-muted);
	transition: color var(--o-ease);
}

.cart-item__remove:hover {
	color: var(--o-error);
}

.cart-item__remove .o-icon {
	font-size: 20px;
}

.cart-item__remove-del,
.cart-item__remove-text {
	display: none;
}

.cart-item__price {
	display: none;
	color: var(--o-espresso);
	font-size: 16px;
	line-height: 24px;
	white-space: nowrap;
}

.cart-item__qty {
	grid-area: qty;
	justify-self: end;
}

.cart-item__total {
	grid-area: total;
	font-family: var(--o-font-heading);
	font-size: 18px;
	line-height: 24px;
	font-weight: 700;
	color: var(--o-forest);
	white-space: nowrap;
}

.cart-item :is(.cart-item__price, .cart-item__total) del {
	display: block;
	color: var(--o-text-muted);
	font-family: var(--o-font-body);
	font-size: 12px;
	line-height: 16px;
	font-weight: 500;
}

.cart-item :is(.cart-item__price, .cart-item__total) ins {
	text-decoration: none;
}

@media (min-width: 768px) {
	.cart-items {
		gap: var(--o-space-lg);
	}

	.cart-item {
		grid-template-columns: 96px minmax(0, 1fr) 96px 124px 96px;
		grid-template-areas: "img info price qty total";
		column-gap: var(--o-space-md);
		padding: var(--o-space-md);
	}

	.cart-item__img {
		width: 96px;
		height: 96px;
		min-height: 0;
		padding: 8px;
	}

	.cart-item__seal {
		display: none;
	}

	.cart-item__info {
		padding-right: 0;
	}

	.cart-item__chip {
		font-size: 12px;
	}

	.cart-item__name {
		order: 0;
		font-size: 18px;
		line-height: 24px;
	}

	.cart-item__size {
		font-size: 14px;
		line-height: 20px;
	}

	.cart-item__remove {
		position: static;
		width: auto;
		height: auto;
		min-height: 32px;
		margin-top: 4px;
		font-size: 12px;
		line-height: 16px;
		font-weight: 500;
	}

	.cart-item__remove .o-icon {
		font-size: 16px;
	}

	.cart-item__remove-del,
	.cart-item__remove-text {
		display: inline;
	}

	.cart-item__remove-x {
		display: none;
	}

	.cart-item__price {
		grid-area: price;
		display: block;
		text-align: center;
	}

	.cart-item__qty {
		justify-self: center;
	}

	.cart-item__total {
		text-align: right;
	}
}

/* Quantity stepper */
.cart-qty {
	display: inline-flex;
	align-items: center;
	padding: 2px;
	border-radius: var(--o-radius-full);
	background: var(--o-surface-cream-alt);
}

.cart-qty__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--o-white);
	color: var(--o-espresso);
	box-shadow: var(--o-shadow-soft);
	transition: background-color var(--o-ease), transform var(--o-ease);
}

.cart-qty__btn:hover {
	background: var(--o-surface-cream);
}

.cart-qty__btn:active {
	transform: scale(0.92);
}

.cart-qty__btn .o-icon {
	font-size: 16px;
}

.cart-qty__input {
	width: 36px;
	height: 32px;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--o-espresso);
	font-family: var(--o-font-heading);
	font-size: 16px;
	font-weight: 700;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.cart-qty__input::-webkit-outer-spin-button,
.cart-qty__input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.cart-qty__input:focus-visible {
	outline: 2px solid var(--o-forest);
	outline-offset: 0;
	border-radius: var(--o-radius-sm);
}

.cart-qty--fixed {
	min-width: 40px;
	justify-content: center;
	padding: 6px 12px;
	font-family: var(--o-font-heading);
	font-weight: 700;
}

@media (min-width: 768px) {
	.cart-qty {
		padding: 4px;
		background: var(--o-surface-cream);
	}

	.cart-qty__input {
		width: 40px;
		font-size: 18px;
	}
}

/* Background save in progress */
.is-updating .cart-items,
.is-updating .cart-sum__rows,
.is-updating .cart-sum__total,
.is-updating .cart-bar__total {
	opacity: 0.55;
	transition: opacity var(--o-ease);
}

/* Actions under the list */
.cart-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--o-space-sm);
	padding-top: var(--o-space-xs);
}

.cart-actions__back {
	display: inline-flex;
	align-items: center;
	gap: var(--o-space-sm);
	min-height: 44px;
	padding: 12px 20px;
	border-radius: var(--o-radius-full);
	background: var(--o-surface-cream-alt);
	color: var(--o-espresso);
	font-size: 15px;
	line-height: 20px;
	font-weight: 600;
	transition: background-color var(--o-ease);
}

.cart-actions__back .o-icon {
	font-size: 18px;
}

.cart-actions__back:hover {
	background: var(--o-border-warm);
}

.cart-page.has-js .cart-actions__update {
	display: none;
}

@media (max-width: 767.98px) {
	.cart-actions {
		justify-content: center;
	}
}

/* --------------------------------------------------------------------------
   Suggestions (cross-sells, else one in-stock product per category)
   -------------------------------------------------------------------------- */

.cart-xsell {
	padding: 12px;
	border-radius: var(--o-radius-lg);
	background: var(--o-surface-cream-alt);
}

.cart-page--empty .cart-xsell {
	margin-top: var(--o-space-xl);
}

.cart-xsell__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--o-space-md);
	margin-bottom: 12px;
}

.cart-xsell__kicker {
	display: block;
}

.cart-xsell__title {
	font-family: var(--o-font-heading);
	font-size: 16px;
	line-height: 22px;
	font-weight: 600;
	color: var(--o-on-surface);
}

.cart-xsell__leaf {
	display: none;
	font-size: 28px;
	color: var(--o-gold);
}

.cart-xsell__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--o-space-sm);
}

.cart-xsell__card {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px;
	border-radius: var(--o-radius-md);
	background: var(--o-white);
	box-shadow: var(--o-shadow-soft);
}

.cart-xsell__img {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	padding: 4px;
	border-radius: var(--o-radius);
	background: var(--o-surface-cream);
	flex-shrink: 0;
	overflow: hidden;
}

.cart-xsell__img img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.cart-xsell__body {
	flex: 1 1 auto;
	min-width: 0;
}

.cart-xsell__name {
	font-family: var(--o-font-heading);
	font-size: 14px;
	line-height: 20px;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--o-espresso);
	overflow-wrap: break-word;
}

.cart-xsell__name a:hover {
	color: var(--o-forest);
}

.cart-xsell__meta {
	color: var(--o-text-muted);
	font-size: 11px;
	line-height: 16px;
	font-weight: 500;
}

.cart-xsell__price {
	margin-top: 2px;
	font-family: var(--o-font-heading);
	font-size: 14px;
	line-height: 20px;
	font-weight: 700;
	color: var(--o-forest);
}

.cart-xsell__price del {
	color: var(--o-text-muted);
	font-weight: 500;
	font-size: 0.85em;
}

.cart-xsell__price ins {
	text-decoration: none;
}

.cart-xsell__form {
	flex-shrink: 0;
	margin: 0;
}

.cart-xsell__add {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	min-height: 40px;
	padding: 8px 14px;
	border: 0;
	border-radius: var(--o-radius-full);
	background: var(--o-forest);
	color: var(--o-white);
	font-family: var(--o-font-body);
	font-size: 13px;
	line-height: 18px;
	font-weight: 600;
	box-shadow: var(--o-shadow-soft);
	transition: background-color var(--o-ease), transform var(--o-ease);
}

.cart-xsell__add .o-icon {
	font-size: 16px;
}

.cart-xsell__add:hover {
	background: var(--o-forest-deep);
	transform: scale(1.04);
}

@media (min-width: 640px) {
	.cart-xsell__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 768px) {
	.cart-xsell {
		padding: var(--o-space-lg);
		border-radius: var(--o-radius-card);
	}

	.cart-xsell__head {
		margin-bottom: var(--o-space-md);
	}

	.cart-xsell__title {
		font-size: 20px;
		line-height: 28px;
	}

	.cart-xsell__leaf {
		display: block;
	}

	.cart-xsell__grid {
		gap: var(--o-space-md);
	}

	.cart-xsell__card {
		gap: var(--o-space-md);
		padding: var(--o-space-md);
		border-radius: var(--o-radius-lg);
	}

	.cart-xsell__img {
		width: 64px;
		height: 64px;
	}

	.cart-xsell__name {
		font-size: 16px;
		line-height: 22px;
	}

	.cart-xsell__price {
		font-size: 18px;
		line-height: 24px;
	}

	.cart-xsell__meta {
		font-size: 12px;
	}

	.cart-xsell__add {
		padding: 8px 16px;
		font-size: 15px;
	}
}

@media (min-width: 1024px) {
	.cart-page--empty .cart-xsell__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

/* --------------------------------------------------------------------------
   Order summary
   -------------------------------------------------------------------------- */

.cart-side {
	display: flex;
	flex-direction: column;
	gap: var(--o-space-md);
	min-width: 0;
}

.cart-sum {
	display: flex;
	flex-direction: column;
	gap: var(--o-space-md);
	padding: var(--o-space-md);
	border-radius: var(--o-radius-lg);
	background: var(--o-white);
	box-shadow: var(--o-shadow-card);
}

.cart-sum__title {
	font-family: var(--o-font-heading);
	font-size: 18px;
	line-height: 24px;
	font-weight: 600;
	color: var(--o-on-surface);
}

.cart-sum__rows {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
}

.cart-sum__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--o-space-sm);
}

.cart-sum__row dt {
	color: var(--o-text-muted);
	font-size: 14px;
	line-height: 20px;
}

.cart-sum__row dd {
	margin: 0;
	color: var(--o-espresso);
	font-weight: 600;
	white-space: nowrap;
}

.cart-sum__row--sub dd {
	font-family: var(--o-font-heading);
	font-size: 18px;
	line-height: 24px;
	font-weight: 700;
}

.cart-sum__row--discount dt,
.cart-sum__row--discount dd {
	color: var(--o-forest);
}

.cart-sum__remove {
	margin-left: 6px;
	color: var(--o-text-muted);
	font-size: 12px;
	text-decoration: underline;
	text-underline-offset: 2px;
}

.cart-sum__remove:hover {
	color: var(--o-error);
}

.cart-sum__label {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 8px;
	color: var(--o-text-muted);
	font-family: var(--o-font-label);
	font-size: 12px;
	line-height: 16px;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cart-sum__label .o-icon {
	font-size: 18px;
	color: var(--o-forest);
}

/* Shipping rates from WooCommerce, read-only */
.cart-rates {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cart-rates__item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px;
	border-radius: var(--o-radius-md);
	background: var(--o-surface-cream);
	font-size: 14px;
	line-height: 20px;
}

.cart-rates__mark {
	position: relative;
	width: 16px;
	height: 16px;
	border: 1.5px solid var(--o-outline);
	border-radius: 50%;
	flex-shrink: 0;
}

.cart-rates__item.is-chosen .cart-rates__mark {
	border-color: var(--o-forest);
}

.cart-rates__item.is-chosen .cart-rates__mark::after {
	content: "";
	position: absolute;
	inset: 2.5px;
	border-radius: 50%;
	background: var(--o-forest);
}

.cart-rates__label {
	flex: 1 1 auto;
	min-width: 0;
	font-weight: 500;
	color: var(--o-espresso);
}

.cart-rates__cost {
	font-weight: 700;
	color: var(--o-espresso);
	white-space: nowrap;
}

.cart-rates__none {
	color: var(--o-text-muted);
	font-size: 14px;
}

/* Coupon: collapsible on phones (JS), always open from 1024px */
.cart-coupon__toggle {
	display: none;
	align-items: center;
	gap: 8px;
	width: 100%;
	min-height: 44px;
	padding: 0;
	border: 0;
	background: none;
	color: var(--o-espresso);
	font-size: 15px;
	font-weight: 600;
	text-align: left;
}

.cart-coupon__toggle > span:nth-child(2) {
	flex: 1 1 auto;
}

.cart-coupon__gift {
	color: var(--o-gold);
}

.cart-coupon__chev {
	color: var(--o-text-muted);
	transition: transform var(--o-ease);
}

.cart-coupon.is-open .cart-coupon__chev {
	transform: rotate(180deg);
}

.cart-coupon__row {
	display: flex;
	gap: 8px;
}

.cart-coupon__input {
	flex: 1 1 auto;
	min-width: 0;
	min-height: 44px;
	padding: 10px 16px;
	border: 1px solid transparent;
	border-radius: var(--o-radius-full);
	background: var(--o-surface-cream);
	color: var(--o-espresso);
	font-size: 16px;
	line-height: 22px;
}

.cart-coupon__input::placeholder {
	color: var(--o-text-muted);
	opacity: 1;
}

.cart-coupon__input:focus {
	outline: none;
	border-color: var(--o-forest);
	box-shadow: var(--o-shadow-ring);
}

.cart-coupon__btn {
	flex-shrink: 0;
	min-height: 44px;
	padding: 10px 20px;
	border: 0;
	border-radius: var(--o-radius-full);
	background: var(--o-surface-cream-alt);
	color: var(--o-espresso);
	font-size: 15px;
	line-height: 20px;
	font-weight: 600;
	transition: background-color var(--o-ease);
}

.cart-coupon__btn:hover {
	background: var(--o-border-warm);
}

@media (max-width: 1023.98px) {
	.cart-page.has-js .cart-coupon__toggle {
		display: flex;
	}

	.cart-page.has-js .cart-coupon__label {
		position: absolute;
		width: 1px;
		height: 1px;
		margin: -1px;
		overflow: hidden;
		clip: rect(0, 0, 0, 0);
		white-space: nowrap;
	}

	.cart-page.has-js .cart-coupon:not(.is-open) .cart-coupon__row {
		display: none;
	}

	.cart-page.has-js .cart-coupon.is-open .cart-coupon__row {
		margin-top: 8px;
	}
}

/* Total */
.cart-sum__total {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--o-space-sm);
	padding: var(--o-space-md);
	border-radius: var(--o-radius-md);
	background: var(--o-surface-cream);
}

.cart-sum__total-label {
	font-family: var(--o-font-heading);
	font-size: 18px;
	line-height: 24px;
	font-weight: 700;
	color: var(--o-on-surface);
}

.cart-sum__total-value {
	font-family: var(--o-font-heading);
	font-size: 24px;
	line-height: 32px;
	font-weight: 700;
	color: var(--o-forest);
	white-space: nowrap;
}

.cart-sum__cta {
	padding-inline: var(--o-space-lg);
}

.cart-sum__note {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin-top: calc(-1 * var(--o-space-xs));
	color: var(--o-text-muted);
	font-size: 13px;
	line-height: 18px;
}

.cart-sum__note .o-icon {
	font-size: 16px;
}

@media (min-width: 768px) {
	.cart-sum {
		padding: var(--o-space-lg);
		border-radius: var(--o-radius-card);
		box-shadow: var(--o-shadow-lift);
	}

	.cart-sum__title {
		font-size: 20px;
		line-height: 28px;
	}

	.cart-sum__row dt {
		font-size: 16px;
		line-height: 24px;
	}

	.cart-sum__total-value {
		font-size: 28px;
		line-height: 36px;
	}
}

/* Confirmed facts under the summary */
.cart-trust {
	display: flex;
	flex-direction: column;
	gap: 12px;
	margin: 0;
	padding: var(--o-space-md);
	list-style: none;
	border-radius: var(--o-radius-lg);
	background: var(--o-surface-cream-alt);
}

.cart-trust__item {
	display: flex;
	align-items: center;
	gap: 12px;
}

.cart-trust__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: var(--o-white);
	color: var(--o-forest);
	flex-shrink: 0;
}

.cart-trust__text {
	display: flex;
	flex-direction: column;
	min-width: 0;
	color: var(--o-text-muted);
	font-size: 12px;
	line-height: 16px;
	font-weight: 500;
}

.cart-trust__text strong {
	font-family: var(--o-font-heading);
	font-size: 15px;
	line-height: 20px;
	font-weight: 600;
	color: var(--o-on-surface);
}

.cart-trust__text a {
	text-decoration: underline;
	text-underline-offset: 2px;
}

.cart-trust__text a:hover {
	color: var(--o-forest);
}

@media (min-width: 768px) {
	.cart-trust {
		border-radius: var(--o-radius-card);
	}
}

/* --------------------------------------------------------------------------
   Phone/tablet checkout bar (hidden while the summary button is visible)
   -------------------------------------------------------------------------- */

.cart-bar {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 90;
	padding-bottom: env(safe-area-inset-bottom, 0px);
	background: rgba(255, 255, 255, 0.95);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	box-shadow: 0 -8px 24px rgba(47, 33, 24, 0.08);
	transition: transform 200ms ease;
}

.cart-bar.is-hidden {
	transform: translateY(110%);
}

.cart-bar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--o-space-sm);
	max-width: 480px;
	min-height: 80px;
	margin-inline: auto;
	padding: 8px var(--o-margin-mobile);
}

.cart-bar__sum {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

.cart-bar__label,
.cart-bar__count {
	color: var(--o-text-muted);
	font-size: 11px;
	line-height: 14px;
	font-weight: 500;
	white-space: nowrap;
}

.cart-bar__total {
	font-family: var(--o-font-heading);
	font-size: 20px;
	line-height: 26px;
	font-weight: 700;
	color: var(--o-forest);
	white-space: nowrap;
}

.cart-bar__btn {
	flex: 1 1 auto;
	max-width: 220px;
	padding-inline: var(--o-space-md);
}

.cart-page:has(.cart-bar) {
	padding-bottom: calc(var(--o-space-2xl) + 80px);
}

@media (min-width: 1024px) {
	.cart-bar {
		display: none;
	}

	.cart-page:has(.cart-bar) {
		padding-bottom: var(--o-space-2xl);
	}
}

/* --------------------------------------------------------------------------
   Empty cart
   -------------------------------------------------------------------------- */

.cart-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--o-space-md);
	padding: var(--o-space-xl) var(--o-space-lg);
	border-radius: var(--o-radius-card);
	background: var(--o-white);
	box-shadow: var(--o-shadow-card);
	text-align: center;
}

.cart-empty__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: var(--o-surface-cream);
	color: var(--o-forest);
}

.cart-empty__icon .o-icon {
	font-size: 36px;
}

.cart-empty__title {
	font-family: var(--o-font-heading);
	font-size: 24px;
	line-height: 32px;
	font-weight: 700;
	color: var(--o-on-surface);
}

.cart-empty__text {
	max-width: 32rem;
	color: var(--o-text-muted);
}

@media (min-width: 768px) {
	.cart-empty {
		padding: var(--o-space-2xl) var(--o-space-xl);
	}

	.cart-empty__title {
		font-size: 28px;
		line-height: 36px;
	}
}

/* --------------------------------------------------------------------------
   Offers: 3-oil offer line, unit price, bundle discount rows
   -------------------------------------------------------------------------- */

.cart-offer {
	display: flex;
	align-items: center;
	gap: var(--o-space-sm);
	margin: var(--o-space-sm) 0;
	padding: 10px 14px;
	border: 1px dashed rgba(22, 91, 67, 0.35);
	border-radius: var(--o-radius-md);
	background: rgba(22, 91, 67, 0.05);
	color: var(--o-espresso);
	font-size: 14px;
	line-height: 20px;
	font-weight: 600;
}

.cart-offer .o-icon {
	flex: none;
	color: var(--o-forest);
}

.cart-offer.is-applied {
	border-style: solid;
	background: rgba(22, 91, 67, 0.1);
	color: var(--o-forest);
}

.cart-item__unit {
	font-size: 12px;
	white-space: nowrap;
}
