/* =========================================================
   DEKORBUY — CART PAGE
   Scoped to body.db-cart
   ========================================================= */


/* ── 1. Page bg & Astra reset: handled by .db-page-bg + .db-fullwidth in style.css ── */

/* Hide Astra sale badge (cart-specific) */
body.db-cart .ast-on-card-button {
	display: none !important;
}

/* WC notices container */
body.db-cart .woocommerce-notices-wrapper {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 24px;
}

/* WC page wrapper */
body.db-cart .woocommerce {
	max-width: 1120px;
	margin: 0 auto;
	padding: 0 24px;
}


/* Progress steps — see style.css (shared component) */
/* Breadcrumbs — see style.css (shared .db-breadcrumbs base) */


/* ── 4. Page header ── */

.db-cart-header {
	text-align: center;
	padding: 32px 0 8px;
}

.db-cart-header__eyebrow {
	font: 700 11px/1 var(--db-font-body);
	letter-spacing: 4px;
	text-transform: uppercase;
	color: var(--db-gold);
	display: block;
	margin-bottom: 12px;
}

.db-cart-header h1 {
	font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
	font-weight: 600 !important;
	margin-bottom: 16px !important;
}


/* ── 5. Free shipping progress bar ── */

.db-shipping-bar-wrap {
	margin-bottom: 24px;
}

.db-shipping-bar__threshold {
	font: 400 12px/1.4 var(--db-font-body);
	color: var(--db-text-light);
	margin-top: 8px;
	text-align: right;
}

.db-shipping-bar {
	background: var(--db-white);
	border: 1px solid var(--db-border);
	border-radius: var(--db-radius-md);
	padding: 16px 24px;
	display: flex;
	align-items: center;
	gap: var(--db-space-md);
}

.db-shipping-bar__icon {
	flex-shrink: 0;
	width: 40px;
	height: 40px;
	background: var(--db-surface);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.db-shipping-bar__icon svg {
	width: 20px;
	height: 20px;
	stroke: var(--db-primary);
	fill: none;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.db-shipping-bar__content { flex: 1; }

.db-shipping-bar__text {
	font: 400 14px/1.4 var(--db-font-body);
	color: var(--db-text);
	margin-bottom: 8px;
}

.db-shipping-bar__text strong {
	color: var(--db-primary);
	font-weight: 700;
}

.db-shipping-bar__track {
	height: 6px;
	background: var(--db-surface);
	border-radius: 3px;
	overflow: hidden;
}

.db-shipping-bar__fill {
	height: 100%;
	border-radius: 3px;
	background: linear-gradient(90deg, var(--db-gold), var(--db-gold-hover));
	transition: width 0.5s ease;
}

/* Success state */
.db-shipping-bar.is-free {
	border-color: var(--db-success);
	background: #f0faf4;
}

.db-shipping-bar.is-free .db-shipping-bar__icon {
	background: #e0f5e8;
}

.db-shipping-bar.is-free .db-shipping-bar__icon svg {
	stroke: var(--db-success);
}

.db-shipping-bar.is-free .db-shipping-bar__fill {
	background: var(--db-success);
}


/* ── 6. Cart layout — 2 columns ── */

.db-cart-layout {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 32px;
	padding-bottom: 48px;
}


/* ── 7. Cart items card ── */

.db-cart-items-card {
	background: var(--db-white);
	border: 1px solid var(--db-border);
	border-radius: var(--db-radius-md);
	overflow: hidden;
}

/* Table header */
.db-cart-table-head {
	display: grid;
	grid-template-columns: 100px 1fr 140px 130px 50px;
	gap: var(--db-space-md);
	padding: 14px 24px;
	background: var(--db-surface);
	border-bottom: 1px solid var(--db-border);
	font: 700 11px/1 var(--db-font-body);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--db-text-light);
	align-items: center;
}

/* Cart item row */
.db-cart-item {
	display: grid;
	grid-template-columns: 100px 1fr 140px 130px 50px;
	gap: var(--db-space-md);
	padding: 20px 24px;
	align-items: center;
	border-bottom: 1px solid var(--db-border);
	transition: background 0.2s;
}

.db-cart-item:last-child { border-bottom: none; }
.db-cart-item:hover { background: #fafbfd; }

/* Product image */
.db-cart-item__img {
	width: 100px;
	height: 100px;
	border-radius: var(--db-radius-sm);
	overflow: hidden;
	border: 1px solid var(--db-border);
	flex-shrink: 0;
}

.db-cart-item__img a { display: block; height: 100%; }

.db-cart-item__img img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

/* Product info */
.db-cart-item__info { min-width: 0; }

.db-cart-item__cat {
	font: 700 10px/1 var(--db-font-body);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--db-gold);
	margin-bottom: 6px;
}

.db-cart-item__name {
	font: 400 1.05rem/1.4 var(--db-font-display);
	color: var(--db-primary);
	margin-bottom: 4px;
}

.db-cart-item__name a {
	color: var(--db-primary) !important;
	text-decoration: none !important;
}

.db-cart-item__name a:hover { color: var(--db-accent) !important; }

.db-cart-item__meta {
	font: 400 13px/1.4 var(--db-font-body);
	color: var(--db-text-light);
}

.db-cart-item__meta dl {
	display: flex;
	gap: var(--db-space-xs);
	margin: 0;
}

.db-cart-item__meta dt { font-weight: 700; }
.db-cart-item__meta dt::after { content: ':'; }
.db-cart-item__meta dd { margin: 0; }

/* Price */
.db-cart-item__price {
	font: 400 1rem/1.4 var(--db-font-display);
	color: var(--db-primary);
}

.db-cart-item__price del {
	font: 400 13px/1 var(--db-font-body);
	color: var(--db-text-light);
	display: block;
	margin-bottom: 2px;
}

.db-cart-item__price ins {
	text-decoration: none;
}

/* Quantity stepper */
.db-cart-item__qty .quantity {
	display: flex;
	align-items: center;
	border: 1px solid var(--db-border);
	border-radius: var(--db-radius-sm);
	overflow: hidden;
	height: 38px;
	width: 120px;
}

.db-cart-item__qty .quantity .db-qty-minus,
.db-cart-item__qty .quantity .db-qty-plus {
	width: 36px;
	height: 100%;
	background: var(--db-surface);
	border: none;
	cursor: pointer;
	font-size: 16px;
	color: var(--db-text);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background 0.2s, color 0.2s;
	padding: 0;
	line-height: 1;
}

.db-cart-item__qty .quantity .db-qty-minus:hover,
.db-cart-item__qty .quantity .db-qty-plus:hover {
	background: var(--db-primary);
	color: var(--db-white);
}

.db-cart-item__qty .quantity input.qty {
	width: 48px !important;
	height: 100% !important;
	border: none !important;
	border-left: 1px solid var(--db-border) !important;
	border-right: 1px solid var(--db-border) !important;
	text-align: center !important;
	font: 700 14px/1 var(--db-font-body) !important;
	color: var(--db-text) !important;
	background: var(--db-white) !important;
	-moz-appearance: textfield !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
}

.db-cart-item__qty .quantity input.qty::-webkit-inner-spin-button,
.db-cart-item__qty .quantity input.qty::-webkit-outer-spin-button {
	-webkit-appearance: none !important;
}

/* Remove button */
.db-cart-item__remove,
.db-cart-item__remove:link,
.db-cart-item__remove:visited {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 36px !important;
	height: 36px !important;
	border-radius: 50% !important;
	border: none !important;
	background: transparent !important;
	cursor: pointer !important;
	transition: background 0.2s, color 0.2s !important;
	color: var(--db-text-light) !important;
	text-decoration: none !important;
	font-size: 0 !important;
	padding: 0 !important;
}

.db-cart-item__remove:hover {
	background: rgba(192, 57, 43, 0.08) !important;
	color: var(--db-error) !important;
}

.db-cart-item__remove svg {
	width: 16px;
	height: 16px;
	stroke: currentColor;
	fill: none;
	stroke-width: 1.5;
	stroke-linecap: round;
}


/* ── 8. Update cart button (hidden, triggered by JS) ── */

body.db-cart .woocommerce-cart-form__contents .actions {
	padding: 0 !important;
	border: none !important;
}

body.db-cart button[name="update_cart"] {
	display: none !important;
}


/* ── 9. Coupon section ── */

.db-coupon {
	margin-top: 20px;
	background: var(--db-white);
	border: 1px solid var(--db-border);
	border-radius: var(--db-radius-md);
	padding: 20px 24px;
}

.db-coupon__title {
	font: 700 11px/1 var(--db-font-body);
	letter-spacing: 2px;
	text-transform: uppercase;
	color: var(--db-text-light);
	margin-bottom: 12px;
}

.db-coupon__row {
	display: flex;
	gap: 10px;
}

.db-coupon__row input[type="text"] {
	flex: 1 !important;
	height: 42px !important;
	padding: 0 14px !important;
	font: 400 14px/1 var(--db-font-body) !important;
}

.db-coupon__row button {
	height: 42px !important;
	padding: 0 20px !important;
	background: var(--db-white) !important;
	border: 2px solid var(--db-primary) !important;
	border-radius: 4px !important;
	font: 700 11px/1 var(--db-font-body) !important;
	letter-spacing: 2px !important;
	text-transform: uppercase !important;
	color: var(--db-primary) !important;
	cursor: pointer !important;
	transition: all 0.25s !important;
	white-space: nowrap !important;
}

.db-coupon__row button:hover {
	background: var(--db-primary) !important;
	color: var(--db-white) !important;
}


/* ── 10. Cart summary sidebar ── */

body.db-cart .cart-collaterals,
.woocommerce.woocommerce-cart.db-cart .cart-collaterals,
.woocommerce-page.db-cart .cart-collaterals {
	position: sticky;
	top: 88px;
	width: 100% !important;
	min-width: 0;
	float: none !important;
}

body.db-cart .cart-collaterals::before,
body.db-cart .cart-collaterals::after {
	display: none !important;
}

body.db-cart .cart_totals,
body.db-cart .cart-collaterals .cart_totals {
	background: var(--db-white) !important;
	border: 1px solid var(--db-border) !important;
	border-radius: var(--db-radius-md) !important;
	overflow: hidden;
	padding: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
}

body.db-cart .cart_totals > h2 {
	margin: 0 !important;
	padding: 18px 24px !important;
	background: var(--db-primary) !important;
	color: var(--db-white) !important;
	font: 700 11px/1 var(--db-font-body) !important;
	letter-spacing: 3px !important;
	text-transform: uppercase !important;
	position: relative;
	font-family: var(--db-font-body) !important;
}

body.db-cart .cart_totals > h2::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: var(--db-pattern-dark);
	background-size: 60px;
	pointer-events: none;
}

body.db-cart .cart_totals .shop_table {
	border: none !important;
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	border-collapse: collapse !important;
}

body.db-cart .cart_totals .shop_table th {
	padding: 12px 20px !important;
	font: 400 14px/1.4 var(--db-font-body) !important;
	color: var(--db-text) !important;
	border: none !important;
	background: none !important;
	vertical-align: top !important;
	white-space: nowrap !important;
	text-align: left !important;
}

body.db-cart .cart_totals .shop_table td {
	padding: 12px 20px !important;
	font: 400 14px/1.4 var(--db-font-body) !important;
	color: var(--db-text) !important;
	border: none !important;
	background: none !important;
	text-align: right !important;
	vertical-align: top !important;
}

body.db-cart .cart_totals .shop_table tr {
	border-bottom: 1px solid var(--db-border) !important;
}

body.db-cart .cart_totals .shop_table tr:last-child {
	border-bottom: none !important;
}

/* Shipping row */
body.db-cart .cart_totals .shipping td {
	font-size: 13px !important;
	line-height: 1.5 !important;
}

body.db-cart .cart_totals .shipping td ul#shipping_method {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	text-align: right !important;
}

body.db-cart .cart_totals .shipping td ul#shipping_method li {
	margin: 0 !important;
	padding: 2px 0 !important;
}

body.db-cart .cart_totals .shipping td ul#shipping_method li label {
	font-size: 13px !important;
}

/* Hide shipping address & calculator — not needed in cart, shown at checkout */
body.db-cart .cart_totals .shipping td .woocommerce-shipping-destination,
body.db-cart .cart_totals .shipping td .shipping-calculator-form,
body.db-cart .cart_totals .shipping td .shipping-calculator-button {
	display: none !important;
}

body.db-cart .cart_totals .order-total th,
body.db-cart .cart_totals .order-total td {
	font-weight: 700 !important;
	font-size: 15px !important;
	padding-top: 14px !important;
	padding-bottom: 14px !important;
}

body.db-cart .cart_totals .order-total td .woocommerce-Price-amount {
	font: 600 1.5rem/1 var(--db-font-display) !important;
	color: var(--db-primary) !important;
}

/* Checkout button */
body.db-cart .wc-proceed-to-checkout {
	padding: 0 24px 24px !important;
}

body.db-cart .wc-proceed-to-checkout .checkout-button {
	display: block !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 16px 24px !important;
	background: var(--db-primary) !important;
	border: 2px solid var(--db-primary) !important;
	border-radius: 4px !important;
	font: 700 12px/1 var(--db-font-body) !important;
	letter-spacing: 2px !important;
	text-transform: uppercase !important;
	color: var(--db-white) !important;
	text-align: center !important;
	transition: all 0.25s !important;
}

body.db-cart .wc-proceed-to-checkout .checkout-button:hover {
	background: var(--db-primary-dark) !important;
	border-color: var(--db-gold) !important;
}


/* ── 11. Trust badges — base in style.css, page-specific overrides ── */

.db-cart-trust {
	margin-top: 16px;
}

/* Continue shopping link */
.db-cart-summary__continue,
.db-cart-summary__continue:link,
.db-cart-summary__continue:visited {
	display: block;
	text-align: center;
	margin-top: 14px;
	margin-bottom: 24px;
	font: 400 13px/1 var(--db-font-body);
	color: var(--db-text-light);
	text-decoration: none;
	transition: color 0.2s;
}

.db-cart-summary__continue:hover { color: var(--db-primary); }

.db-cart-summary__continue svg {
	width: 14px;
	height: 14px;
	display: inline-block;
	vertical-align: -2px;
	margin-right: 4px;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}


/* ── 11b. Wzór thumbnails in cart ── */

.db-wzor-thumb-inline {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 4px;
	font-size: 12px;
	color: var(--db-text-light);
}

.db-wzor-thumb-inline img.db-wzor-thumb {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid var(--db-border);
}

/* ── 12. Cross-sell section (base reco styles in style.css 12c) ── */

.db-cart-crosssell {
	padding: 48px 0 64px;
}


/* ── 13. Empty cart state ── */

.db-cart-empty {
	text-align: center;
	padding: 80px 24px;
	background: var(--db-white);
	border: 1px solid var(--db-border);
	border-radius: var(--db-radius-md);
	margin-top: 40px;
	margin-bottom: 48px;
}

.db-cart-empty__icon {
	margin: 0 auto 24px;
	width: 80px;
	height: 80px;
	background: var(--db-surface);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.db-cart-empty__icon svg {
	width: 36px;
	height: 36px;
	stroke: var(--db-text-light);
	fill: none;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.db-cart-empty h2 {
	font-size: 1.5rem !important;
	font-weight: 600 !important;
	margin-bottom: 12px !important;
}

.db-cart-empty p {
	color: var(--db-text-light);
	font-size: 15px;
	margin-bottom: 28px;
}

/* Button base via .db-btn-primary (style.css 12b) */

.db-cart-empty__btn svg {
	width: 16px;
	height: 16px;
	stroke: currentColor;
	fill: none;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Hide default WC empty cart message */
body.db-cart .woocommerce-info.cart-empty {
	display: none !important;
}

body.db-cart .return-to-shop {
	display: none !important;
}


/* ── 14. Responsive ── */

@media (max-width: 1024px) {
	.db-cart-layout {
		grid-template-columns: 1fr 320px;
	}

	.db-cart-crosssell .db-reco-section ul.products {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}

@media (max-width: 768px) {
	.db-cart-layout {
		grid-template-columns: 1fr;
	}

	body.db-cart .cart-collaterals {
		position: static;
	}

	/* Stack table rows into card layout */
	.db-cart-table-head { display: none; }

	.db-cart-item {
		grid-template-columns: 80px 1fr;
		grid-template-rows: auto auto;
		gap: 12px;
		padding: 16px 20px;
		position: relative;
	}

	.db-cart-item__img {
		width: 80px;
		height: 80px;
		grid-row: 1 / 3;
	}

	.db-cart-item__info { grid-column: 2; }

	.db-cart-item__price {
		display: none;
	}

	.db-cart-item__qty {
		grid-column: 2;
	}

	.db-cart-item__qty .quantity {
		width: 110px;
		height: 34px;
	}

	.db-cart-item__remove {
		position: absolute !important;
		top: 12px !important;
		right: 12px !important;
	}

	.db-cart-crosssell .db-reco-section ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

@media (max-width: 480px) {
	.db-cart-crosssell .db-reco-section ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 12px !important;
	}
}

/* Hide PayPal PPCP express checkout button on cart page */
body.db-cart [class*="ppcp-button"],
body.db-cart [id*="ppcp-button"],
body.db-cart [id*="ppc-button"],
body.db-cart .ppcp-button-apm-wrapper,
body.db-cart .wc-block-components-checkout-place-order-button[class*="paypal"],
body.db-cart div[id^="paypal-button"] {
	display: none !important;
}
