/* =========================================================================
   PoshWave — Cart & Checkout (custom templates)
   Prefixes: .pwc-* (cart) .pwk-* (checkout)
   Light-first brand: NO dark-mode blocks. Text colours forced explicitly.
   ====================================================================== */

.pwc-wrap, .pwk-wrap {
	--pw-gold: #cd9824;
	--pw-gold-lt: #f3ba35;
	--pw-gold-pale: #fbe472;
	--pw-ink: #020202;
	--pw-bg: #fffdf4;
	--pw-surface: #fdf7e0;
	--pw-line: rgba(205, 152, 36, .28);
	--pw-muted: #5a5138;

	max-width: 1240px;
	margin: 0 auto;
	padding: 28px 20px 60px;
	font-family: 'Manrope', sans-serif;
	color: var(--pw-ink);
	-webkit-text-fill-color: currentColor;
	box-sizing: border-box;
}

.pwc-wrap *, .pwk-wrap * { box-sizing: border-box; }

/* ---------- Progress steps ---------- */
.pwc-steps, .pwk-steps {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin: 0 0 26px;
}
.pwc-step, .pwk-step { display: flex; align-items: center; gap: 8px; }
.pwc-step-n, .pwk-step-n {
	width: 26px; height: 26px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: 12px; font-weight: 700;
	background: #efe7cf; color: #8a7c55; -webkit-text-fill-color: #8a7c55;
}
.pwc-step-t, .pwk-step-t {
	font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
	color: #8a7c55; -webkit-text-fill-color: #8a7c55;
}
.pwc-step.is-active .pwc-step-n, .pwk-step.is-active .pwk-step-n,
.pwk-step.is-done .pwk-step-n {
	background: linear-gradient(135deg, var(--pw-gold-pale), var(--pw-gold-lt) 48%, var(--pw-gold));
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.pwc-step.is-active .pwc-step-t, .pwk-step.is-active .pwk-step-t,
.pwk-step.is-done .pwk-step-t { color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink); }
.pwc-step-line, .pwk-step-line { width: 46px; height: 1px; background: var(--pw-line); }
.pwk-step-line.is-done { background: var(--pw-gold); }

/* ---------- Titles ---------- */
.pwc-title, .pwk-title {
	font-family: 'Cinzel', serif;
	font-size: clamp(24px, 3.2vw, 34px);
	font-weight: 600; letter-spacing: .5px; text-align: center;
	margin: 0 0 26px;
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}

/* ---------- Layout ---------- */
.pwc-layout, .pwk-layout {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 28px;
	align-items: start;
}

/* ---------- Cart item cards ---------- */
.pwc-items { display: flex; flex-direction: column; gap: 14px; }
.pwc-item {
	display: grid;
	grid-template-columns: 92px 1fr 120px 110px 40px;
	gap: 16px;
	align-items: center;
	background: var(--pw-bg);
	border: 1px solid var(--pw-line);
	border-radius: 14px;
	padding: 14px;
	box-shadow: 0 4px 14px rgba(205, 152, 36, .06);
}
.pwc-item-media img { width: 100%; height: auto; border-radius: 10px; display: block; }
.pwc-item-name, .pwc-item-name a {
	font-size: 15px; font-weight: 700; text-decoration: none;
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.pwc-item-name a:hover { color: var(--pw-gold); -webkit-text-fill-color: var(--pw-gold); }
.pwc-item-name dl, .pwc-item-name .variation {
	margin: 6px 0 0; font-size: 12px;
	color: var(--pw-muted); -webkit-text-fill-color: var(--pw-muted);
}
.pwc-item-name dt, .pwc-item-name dd { display: inline; margin: 0 4px 0 0; }
.pwc-item-name dd p { display: inline; margin: 0; }
.pwc-item-unit { margin-top: 6px; font-size: 13px; color: #8a6a15; -webkit-text-fill-color: #8a6a15; font-weight: 700; }
.pwc-item-unit-lbl { font-weight: 500; color: var(--pw-muted); -webkit-text-fill-color: var(--pw-muted); }
.pwc-item-stock { margin-top: 4px; font-size: 12px; font-weight: 600; }
.pwc-item-stock.pwc-in { color: #2d7a3a; -webkit-text-fill-color: #2d7a3a; }
.pwc-item-stock.pwc-out { color: #b23c3c; -webkit-text-fill-color: #b23c3c; }
.pwc-item-total { font-size: 16px; font-weight: 800; color: #8a6a15; -webkit-text-fill-color: #8a6a15; text-align: right; }
.pwc-item-qty .quantity input.qty {
	width: 68px; padding: 9px 8px; text-align: center;
	border: 1.5px solid #e6d7b0; border-radius: 10px;
	background: var(--pw-bg); color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.pwc-item-remove a.remove {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; border-radius: 50%;
	border: 1px solid var(--pw-line); text-decoration: none;
	font-size: 18px; line-height: 1;
	color: var(--pw-gold); -webkit-text-fill-color: var(--pw-gold);
}
.pwc-item-remove a.remove:hover { background: var(--pw-gold); color: #fff; -webkit-text-fill-color: #fff; }

/* ---------- Buttons: ONE shared spec, colour signals hierarchy ---------- */
.pwc-btn, .pwk-btn,
.pwc-wrap .button, .pwk-wrap .button,
.pwc-wrap button.button, .pwk-wrap button.button,
.wc-proceed-to-checkout a.checkout-button,
.pwk-wrap #place_order {
	height: 48px;
	padding: 0 26px;
	border-radius: 999px;
	border: 1.5px solid transparent;
	font-family: 'Manrope', sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .06em;
	line-height: 46px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	text-decoration: none;
	transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}
.pwc-btn-gold,
.wc-proceed-to-checkout a.checkout-button,
.pwk-wrap #place_order {
	background: linear-gradient(135deg, var(--pw-gold-pale), var(--pw-gold-lt) 48%, var(--pw-gold));
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
	box-shadow: 0 8px 20px rgba(205, 152, 36, .28);
}
.pwc-btn-ghost,
.pwc-wrap button.button, .pwc-wrap .button {
	background: var(--pw-bg);
	border-color: var(--pw-gold);
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.pwc-btn:hover, .pwk-btn:hover,
.wc-proceed-to-checkout a.checkout-button:hover,
.pwk-wrap #place_order:hover,
.pwc-wrap .button:hover { transform: translateY(-2px); filter: brightness(1.03); }

/* ---------- Cart actions ---------- */
.pwc-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 18px; }
.pwc-coupon { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.pwc-coupon input.input-text {
	height: 48px; padding: 0 18px; min-width: 200px;
	border: 1.5px solid #e6d7b0; border-radius: 999px;
	background: var(--pw-bg); color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
	font-family: 'Manrope', sans-serif;
}
.pwc-coupon input.input-text:focus { outline: none; border-color: var(--pw-gold); box-shadow: 0 0 0 3px rgba(205,152,36,.15); }

/* ---------- Summary / totals ---------- */
.pwc-summary, .pwk-card {
	background: var(--pw-surface);
	border: 1px solid var(--pw-line);
	border-radius: 16px;
	padding: 0;
	overflow: hidden;
}
.pwc-summary .cart_totals { padding: 22px; }
.pwc-summary h2, .pwk-card-head, .pwk-card-head h3 {
	font-family: 'Cinzel', serif; font-size: 17px; font-weight: 600; margin: 0;
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.pwk-card-head { padding: 18px 22px; border-bottom: 1px solid var(--pw-line); background: var(--pw-surface); }
.pwk-card-body { padding: 22px; background: var(--pw-bg); }
.pwc-summary table th, .pwc-summary table td,
.pwk-wrap .woocommerce-checkout-review-order-table th,
.pwk-wrap .woocommerce-checkout-review-order-table td {
	border-top: 1px solid var(--pw-line);
	padding: 12px 0;
	font-size: 14px;
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.pwc-summary .order-total .amount,
.pwk-wrap .order-total .amount { font-size: 18px; font-weight: 800; color: #8a6a15; -webkit-text-fill-color: #8a6a15; }
.wc-proceed-to-checkout { margin-top: 16px; }
.wc-proceed-to-checkout a.checkout-button { width: 100%; }

/* ---------- Checkout form fields ---------- */
.pwk-wrap .form-row { margin: 0 0 14px; }
.pwk-wrap label {
	font-size: 13px; font-weight: 600; margin-bottom: 5px; display: block;
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.pwk-wrap input.input-text,
.pwk-wrap textarea,
.pwk-wrap select,
.pwk-wrap .select2-container .select2-selection--single {
	width: 100%;
	min-height: 46px;
	padding: 11px 14px;
	border: 1.5px solid #e6d7b0;
	border-radius: 10px;
	background: var(--pw-bg);
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
	font-family: 'Manrope', sans-serif;
	font-size: 14px;
}
.pwk-wrap input.input-text:focus,
.pwk-wrap textarea:focus,
.pwk-wrap select:focus { outline: none; border-color: var(--pw-gold); box-shadow: 0 0 0 3px rgba(205,152,36,.15); }
.pwk-wrap .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink); line-height: 44px;
}

/* ---------- Payment box ---------- */
.pwk-wrap ul.wc_payment_methods {
	list-style: none; margin: 0 0 16px; padding: 16px 0 0;
	border-top: 1px solid var(--pw-line);
}
.pwk-wrap ul.wc_payment_methods li { margin-bottom: 10px; }
.pwk-wrap ul.wc_payment_methods label {
	display: inline; font-weight: 700;
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.pwk-wrap .payment_box {
	background: var(--pw-surface);
	border: 1px dashed var(--pw-line);
	border-radius: 10px;
	padding: 12px 14px;
	margin: 8px 0 0;
	font-size: 13px;
	color: var(--pw-muted); -webkit-text-fill-color: var(--pw-muted);
}
.pwk-wrap #place_order { width: 100%; margin-top: 8px; }
.pwk-sticky { position: sticky; top: 100px; }

/* ---------- Assurance / trust ---------- */
.pwk-assure { padding: 16px 22px; border-top: 1px solid var(--pw-line); background: var(--pw-surface); }
.pwk-assure-i {
	font-size: 13px; margin-bottom: 7px;
	color: var(--pw-muted); -webkit-text-fill-color: var(--pw-muted);
}
.pwk-assure-i span { color: var(--pw-gold); -webkit-text-fill-color: var(--pw-gold); margin-right: 6px; }
.pwc-trust {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px;
	margin-top: 30px; padding: 20px; background: var(--pw-surface);
	border: 1px solid var(--pw-line); border-radius: 14px;
}
.pwc-trust-i {
	display: flex; flex-direction: column; align-items: center; text-align: center; gap: 8px;
	font-size: 13px; font-weight: 600;
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.pwc-trust-ic {
	width: 44px; height: 44px; border-radius: 50%;
	display: inline-flex; align-items: center; justify-content: center; font-size: 17px;
	background: linear-gradient(135deg, var(--pw-gold-pale), var(--pw-gold-lt) 48%, var(--pw-gold));
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}

/* ---------- Empty cart ---------- */
.pwc-empty { display: flex; justify-content: center; }
.pwc-empty-card {
	text-align: center; max-width: 480px; padding: 46px 30px;
	background: var(--pw-surface); border: 1px solid var(--pw-line); border-radius: 18px;
}
.pwc-empty-ic { font-size: 44px; margin-bottom: 12px; }
.pwc-empty-title {
	font-family: 'Cinzel', serif; font-size: 24px; margin: 0 0 10px;
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.pwc-empty-sub {
	font-size: 14px; line-height: 1.6; margin: 0 0 22px;
	color: var(--pw-muted); -webkit-text-fill-color: var(--pw-muted);
}
.pwc-empty-trust {
	margin-top: 20px; font-size: 12px; display: flex; gap: 8px; justify-content: center; flex-wrap: wrap;
	color: var(--pw-muted); -webkit-text-fill-color: var(--pw-muted);
}

/* ---------- WooCommerce notices ---------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	border-top-color: var(--pw-gold) !important;
	background: var(--pw-surface);
	border-radius: 10px;
	color: var(--pw-ink); -webkit-text-fill-color: var(--pw-ink);
}
.woocommerce-message a.button, .woocommerce-info a.button { height: 40px; line-height: 38px; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
	.pwc-layout, .pwk-layout { grid-template-columns: 1fr; }
	.pwk-sticky { position: static; }
}
@media (max-width: 720px) {
	.pwc-item {
		grid-template-columns: 78px 1fr 34px;
		grid-template-areas:
			"media info remove"
			"media qty  total";
		row-gap: 10px;
	}
	.pwc-item-media { grid-area: media; }
	.pwc-item-info { grid-area: info; }
	.pwc-item-qty { grid-area: qty; }
	.pwc-item-total { grid-area: total; text-align: right; }
	.pwc-item-remove { grid-area: remove; }
	.pwc-trust { grid-template-columns: repeat(2, 1fr); }
	.pwc-actions { flex-direction: column; align-items: stretch; }
	.pwc-coupon { width: 100%; }
	.pwc-coupon input.input-text { flex: 1; min-width: 0; }
	.pwc-wrap .button, .pwc-btn { width: 100%; }
}
