/* Cart page: fluid spacing and type (clamp + vw) — no fixed pixel layout widths */

.cart-page {
	/* Scales with viewport; children inherit via var() */
	--cart-pad-inline: clamp(0.45rem, 3.2vw, 1rem);
	--cart-pad-section: clamp(0.55rem, 3.6vw, 2rem);
	--cart-gap-stack: clamp(0.45rem, 2.6vw, 2rem);
	--cart-gap-item: clamp(0.4rem, 2vw, 1.5rem);
	--cart-gap-actions: clamp(0.35rem, 1.8vw, 1rem);
	--cart-thumb: clamp(2.05rem, 8.2vw, 7.5rem);
	--cart-fs-h2: clamp(0.8rem, 0.34rem + 2.25vw, 2rem);
	--cart-fs-h3: clamp(0.7rem, 0.3rem + 1.85vw, 1.75rem);
	--cart-fs-title: clamp(0.6rem, 0.26rem + 1.5vw, 1.125rem);
	--cart-fs-price: clamp(0.62rem, 0.28rem + 1.6vw, 1.25rem);
	--cart-fs-summary: clamp(0.58rem, 0.26rem + 1.35vw, 1rem);
	--cart-fs-total: clamp(0.6rem, 0.28rem + 1.45vw, 1rem);
	--cart-fs-btn: clamp(0.6rem, 0.26rem + 1.4vw, 1.05rem);
	--cart-q-btn: clamp(1.38rem, 5.2vw, 1.85rem);
	--cart-top-offset: clamp(0.45rem, 1.8vw, 2rem);

	padding-top: calc(var(--header-height) + var(--cart-top-offset));
	min-height: 100dvh;
}

.cart-page > .container {
	padding-inline: var(--cart-pad-inline);
}

.cart-container {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, min(100%, 26rem));
	gap: var(--cart-gap-stack);
	margin-top: var(--cart-gap-stack);
}

@media (max-width: 968px) {
	.cart-container {
		grid-template-columns: 1fr;
	}
}

.cart-page h2 {
	font-size: var(--cart-fs-h2);
	margin-bottom: clamp(0.2rem, 1.2vw, 0.75rem);
	line-height: 1.2;
}

.cart-items {
	background: white;
	border-radius: var(--radius-xl);
	padding: var(--cart-pad-section);
	border: 1px solid var(--ss-border-light);
}

.cart-item {
	display: flex;
	gap: var(--cart-gap-item);
	padding: clamp(0.5rem, 2.2vw, 1.5rem) 0;
	border-bottom: 1px solid var(--ss-border-light);
	align-items: flex-start;
}

.cart-item:last-child {
	border-bottom: none;
}

.cart-item-image {
	width: var(--cart-thumb);
	min-width: var(--cart-thumb);
	aspect-ratio: 1 / 1;
	height: auto;
	align-self: flex-start;
	border-radius: var(--radius-md);
	overflow: hidden;
	flex-shrink: 0;
}

.cart-item-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.cart-item-details {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
}

/* Item group (e.g. ERP item_group) — full width on its own line */
.cart-item-group {
	font-size: clamp(0.55rem, 0.2rem + 1.25vw, 0.88rem);
	color: var(--ss-text-muted);
	margin: 0 0 clamp(0.15rem, 0.9vw, 0.4rem);
	line-height: 1.25;
	font-weight: 600;
}

.cart-item-title {
	font-size: var(--cart-fs-title);
	font-weight: 600;
	margin: 0 0 clamp(0.35rem, 1.4vw, 0.65rem);
	line-height: 1.3;
	text-align: start;
}

.cart-item-discount-strip {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-start;
	gap: clamp(0.35rem, 2vw, 0.65rem);
	margin: 0 0 clamp(0.3rem, 1.4vw, 0.55rem);
}

.cart-item-discount-badge {
	display: inline-flex;
	align-items: center;
	background: #d31e44;
	color: #fff;
	font-size: clamp(0.52rem, 0.17rem + 1.15vw, 0.78rem);
	font-weight: 700;
	padding: clamp(0.12rem, 0.55vw, 0.22rem) clamp(0.4rem, 1.4vw, 0.55rem);
	border-radius: 4px;
	line-height: 1.25;
	white-space: nowrap;
}

.cart-item-discount-label {
	font-size: clamp(0.52rem, 0.18rem + 1.15vw, 0.82rem);
	font-weight: 700;
	color: #d31e44;
	line-height: 1.3;
	flex: 1;
	min-width: 0;
}

.cart-item-price-inline {
	display: inline-flex;
	flex-direction: row;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: flex-start;
	gap: clamp(0.35rem, 2vw, 0.65rem);
}

.cart-item-price-inline--end {
	justify-content: flex-end;
	width: 100%;
}

.cart-item-price-inline--once {
	flex-wrap: nowrap;
	gap: clamp(0.28rem, 1.5vw, 0.45rem);
}

.cart-item-price-suffix {
	font-size: clamp(0.52rem, 0.18rem + 1.1vw, 0.85rem);
	font-weight: 600;
	color: var(--ss-text);
	line-height: 1.2;
	white-space: nowrap;
}

.cart-item-price-was {
	font-size: clamp(0.5rem, 0.17rem + 1.05vw, 0.8rem);
	font-weight: 600;
	color: var(--ss-text-light);
	text-decoration: line-through;
	line-height: 1.2;
}

/* Row 3: unit price (near image / inline-start) | line total (inline-end) */
.cart-item-price-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(0.35rem, 2vw, 1rem);
	align-items: start;
	margin-bottom: clamp(0.35rem, 1.5vw, 0.75rem);
}

.cart-item-price-block {
	display: flex;
	flex-direction: column;
	gap: clamp(0.08rem, 0.6vw, 0.25rem);
	min-width: 0;
	text-align: start;
}

.cart-item-price-block--line {
	text-align: end;
	align-items: flex-end;
}

.cart-item-price-label {
	font-size: clamp(0.52rem, 0.18rem + 1.15vw, 0.75rem);
	color: var(--ss-text-muted);
	font-weight: 600;
	line-height: 1.2;
}

.cart-item-price-num {
	font-size: var(--cart-fs-price);
	font-weight: 700;
	color: var(--ss-text);
	line-height: 1.2;
}

.cart-item-price-num--line {
	color: #ff7a00;
	font-weight: 800;
}

/* Row 4: + − qty under unit column | delete under total column (matches wireframe RTL) */
.cart-item-actions-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(0.35rem, 2vw, 1rem);
	align-items: center;
}

.cart-item-qty-cell {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: flex-start;
	flex-wrap: wrap;
	gap: clamp(0.25rem, 1.5vw, 0.55rem);
	min-width: 0;
}

.cart-item-delete-cell {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	min-width: 0;
}

.cart-qty-btn {
	width: var(--cart-q-btn);
	height: var(--cart-q-btn);
	min-width: var(--cart-q-btn);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: none;
	cursor: pointer;
	font-size: clamp(0.72rem, 2.2vw, 1.1rem);
	color: #fff;
	transition: background var(--transition-fast), transform var(--transition-fast);
	border-radius: var(--radius-full);
	font-weight: 700;
}

.cart-qty-btn--plus {
	background: #16a34a;
}

.cart-qty-btn--plus:hover {
	background: #15803d;
}

/* Decrease: orange like wireframe / product card minus */
.cart-qty-btn--minus {
	background: var(--ss-primary);
}

.cart-qty-btn--minus:hover {
	background: var(--ss-primary-dark);
}

.cart-qty-value {
	min-width: clamp(1.2rem, 4.5vw, 2rem);
	text-align: center;
	font-weight: 700;
	font-size: clamp(0.62rem, 1.95vw, 0.95rem);
	color: var(--ss-text);
}

.cart-delete-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--cart-q-btn);
	height: var(--cart-q-btn);
	min-width: var(--cart-q-btn);
	padding: 0;
	border: none;
	border-radius: var(--radius-full);
	background: #dc2626;
	color: #fff;
	cursor: pointer;
	font-size: clamp(0.72rem, 2.2vw, 1.05rem);
	transition: background var(--transition-fast);
}

.cart-delete-btn:hover {
	background: #b91c1c;
	color: #fff;
}

.cart-summary {
	background: white;
	border-radius: var(--radius-xl);
	padding: var(--cart-pad-section);
	border: 1px solid var(--ss-border-light);
	height: fit-content;
	position: sticky;
	top: calc(var(--header-height) + var(--cart-top-offset));
}

.cart-summary h3 {
	font-size: var(--cart-fs-h3);
	margin-bottom: clamp(0.35rem, 2vw, 1.5rem);
}

.summary-row {
	display: flex;
	justify-content: space-between;
	padding: clamp(0.35rem, 1.8vw, 1rem) 0;
	border-bottom: 1px solid var(--ss-border-light);
	font-size: var(--cart-fs-summary);
}

.summary-row:last-child {
	border-bottom: none;
}

.summary-row.total {
	font-size: var(--cart-fs-total);
	font-weight: 700;
	color: var(--ss-primary);
	padding-top: clamp(0.45rem, 2vw, 1.5rem);
	margin-top: clamp(0.15rem, 1vw, 0.5rem);
	border-top: 2px solid var(--ss-border);
}

.cart-page .btn {
	padding: clamp(0.45rem, 2vw, 0.85rem) clamp(0.55rem, 2.5vw, 1.1rem);
	font-size: var(--cart-fs-btn);
	margin-top: clamp(0.45rem, 2vw, 1.5rem);
}

.cart-page .btn-block {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: center;
}

.empty-cart {
	text-align: center;
	padding: clamp(1.5rem, 8vw, 4rem) var(--cart-pad-section);
}

.empty-cart i {
	font-size: clamp(2rem, 12vw, 5rem);
	color: var(--ss-text-light);
	margin-bottom: clamp(0.35rem, 2vw, 1rem);
}

.empty-cart h2 {
	color: var(--ss-text-muted);
	margin-bottom: clamp(0.35rem, 2vw, 1rem);
	font-size: var(--cart-fs-h2);
}

/* Narrow phones: extra-small thumb and type (still fluid, not fixed px) */
@media (max-width: 480px) {
	.cart-page {
		--cart-thumb: clamp(1.7rem, 18vw, 2.75rem);
		--cart-fs-h2: clamp(0.74rem, 0.28rem + 2.05vw, 0.95rem);
		--cart-fs-h3: clamp(0.68rem, 0.26rem + 1.8vw, 0.88rem);
		--cart-fs-title: clamp(0.56rem, 0.22rem + 1.35vw, 0.74rem);
		--cart-fs-price: clamp(0.58rem, 0.24rem + 1.45vw, 0.76rem);
		--cart-fs-summary: clamp(0.54rem, 0.22rem + 1.22vw, 0.7rem);
		--cart-fs-total: clamp(0.56rem, 0.24rem + 1.32vw, 0.72rem);
		--cart-fs-btn: clamp(0.54rem, 0.22rem + 1.28vw, 0.7rem);
		--cart-q-btn: clamp(1.28rem, 9.5vw, 1.65rem);
	}

	.cart-summary {
		position: static;
		top: auto;
	}

	.cart-page {
		min-height: unset;
	}
}
