/*
 * NUÁURA — cart + checkout
 * Same palette and identical button spec as nu-product.css.
 * Light-first by design. No prefers-color-scheme blocks — see note at end.
 */

:root {
	--nu-primary:      #141414;
	--nu-primary-dark: #000000;
	--nu-accent:       #cbcbcb;
	--nu-accent-deep:  #a9a9a9;
	--nu-ink:          #1a1a1a;
	--nu-ink-soft:     #55524e;
	--nu-ivory:        #f5f3ef;
	--nu-surface:      #ffffff;
	--nu-line:         #e4e1db;

	--nu-font-head: "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--nu-font-body: "Jost", "Helvetica Neue", Arial, sans-serif;

	--nu-btn-h:  54px;
	--nu-btn-r:  2px;
	--nu-btn-fs: 13px;
	--nu-btn-fw: 500;
	--nu-btn-ls: 0.12em;

	--nu-max: 1240px;
}

body { overflow-x: hidden; }

.nc-wrap {
	font-family: var(--nu-font-body);
	color: var(--nu-ink);
	-webkit-text-fill-color: var(--nu-ink);
	max-width: var(--nu-max);
	margin: 0 auto;
	padding: 26px 20px 80px;
	background: var(--nu-surface);
}
.nc-wrap h1, .nc-wrap h2, .nc-wrap h3 {
	font-family: var(--nu-font-head);
	color: var(--nu-primary);
	-webkit-text-fill-color: var(--nu-primary);
	font-weight: 600;
}
.nc-wrap p, .nc-wrap li, .nc-wrap span, .nc-wrap td, .nc-wrap th,
.nc-wrap label, .nc-wrap a, .nc-wrap dt, .nc-wrap dd {
	color: var(--nu-ink);
	-webkit-text-fill-color: var(--nu-ink);
}

.nc-title {
	font-size: clamp(30px, 4.4vw, 44px);
	margin: 0 0 26px;
	line-height: 1.14;
}

/* ---------------------------------------------------------------
   Progress steps

   XStore ships its own "Shopping cart / Checkout / Order status" nav.
   We render a branded one inside .nc-wrap, so the theme's is hidden —
   two progress bars on one page reads as a bug.
   --------------------------------------------------------------- */
.woocommerce-cart .cart-checkout-nav,
.woocommerce-checkout .cart-checkout-nav { display: none !important; }

.nc-steps {
	list-style: none;
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 26px;
	padding: 0;
	flex-wrap: wrap;
}
.nc-steps__i {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--nu-accent-deep);
	-webkit-text-fill-color: var(--nu-accent-deep);
}
.nc-steps__i:not(:last-child)::after {
	content: "";
	width: 26px;
	height: 1px;
	background: var(--nu-line);
	margin-left: 8px;
}
.nc-steps__n {
	width: 26px; height: 26px;
	border-radius: 50%;
	border: 1px solid var(--nu-line);
	display: flex; align-items: center; justify-content: center;
	font-size: 12px;
	color: var(--nu-accent-deep);
	-webkit-text-fill-color: var(--nu-accent-deep);
}
.nc-steps__i.is-current { color: var(--nu-primary); -webkit-text-fill-color: var(--nu-primary); }
.nc-steps__i.is-current .nc-steps__n {
	background: var(--nu-primary);
	border-color: var(--nu-primary);
	color: #fff;
	-webkit-text-fill-color: #fff;
}
.nc-steps__i.is-done { color: var(--nu-ink); -webkit-text-fill-color: var(--nu-ink); }
.nc-steps__i.is-done .nc-steps__n {
	background: var(--nu-accent);
	border-color: var(--nu-accent);
	color: var(--nu-primary);
	-webkit-text-fill-color: var(--nu-primary);
}

/* ---------------------------------------------------------------
   Layout
   --------------------------------------------------------------- */
.nc-layout { display: grid; grid-template-columns: 1fr; gap: 34px; align-items: start; }
@media (min-width: 992px) {
	.nc-layout { grid-template-columns: minmax(0,1.65fr) minmax(320px,1fr); gap: 48px; }
	.nc-summary__inner { position: sticky; top: 24px; }
}

/* ---------------------------------------------------------------
   Cart item cards
   --------------------------------------------------------------- */
.nc-item {
	display: grid;
	grid-template-columns: 96px 1fr;
	gap: 16px;
	padding: 18px 0;
	border-bottom: 1px solid var(--nu-line);
}
.nc-item:first-of-type { border-top: 1px solid var(--nu-line); }
@media (min-width: 576px) { .nc-item { grid-template-columns: 120px 1fr; gap: 20px; } }

.nc-item__media img {
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	display: block;
	background: var(--nu-ivory);
}
.nc-item__name {
	font-family: var(--nu-font-head);
	font-size: 20px;
	margin: 0 0 6px;
	line-height: 1.25;
}
.nc-item__name a { color: var(--nu-primary); -webkit-text-fill-color: var(--nu-primary); text-decoration: none; }
.nc-item__name a:hover { text-decoration: underline; }
.nc-item__name .variation {
	font-family: var(--nu-font-body);
	font-size: 12.5px;
	color: var(--nu-ink-soft);
	-webkit-text-fill-color: var(--nu-ink-soft);
	margin: 4px 0 0;
}
.nc-item__name .variation dt,
.nc-item__name .variation dd { display: inline; margin: 0 4px 0 0; color: var(--nu-ink-soft); -webkit-text-fill-color: var(--nu-ink-soft); }

.nc-item__unit { font-size: 13.5px; margin: 0 0 4px; color: var(--nu-ink-soft); -webkit-text-fill-color: var(--nu-ink-soft); }
.nc-item__unit-label { color: var(--nu-accent-deep); -webkit-text-fill-color: var(--nu-accent-deep); margin-right: 6px; }

.nc-item__stock { font-size: 12.5px; margin: 0 0 12px; color: #1f7a4d; -webkit-text-fill-color: #1f7a4d; }
.nc-item__stock.is-out { color: #a33; -webkit-text-fill-color: #a33; }

.nc-item__controls { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.nc-item__total { font-size: 17px; font-weight: 500; color: var(--nu-primary); -webkit-text-fill-color: var(--nu-primary); margin-left: auto; }

.nc-qty .quantity input.qty,
.nc-wrap .quantity input.qty {
	height: 44px;
	width: 78px;
	text-align: center;
	border: 1px solid var(--nu-line);
	border-radius: var(--nu-btn-r);
	font-family: var(--nu-font-body);
	font-size: 15px;
	background: var(--nu-surface);
	color: var(--nu-ink);
	-webkit-text-fill-color: var(--nu-ink);
}

.nc-remove {
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--nu-ink-soft) !important;
	-webkit-text-fill-color: var(--nu-ink-soft);
	text-decoration: underline;
	background: none !important;
	width: auto !important; height: auto !important;
}
.nc-remove:hover { color: #a33 !important; -webkit-text-fill-color: #a33; }

/* ---------------------------------------------------------------
   Actions / coupon
   --------------------------------------------------------------- */
.nc-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	align-items: center;
	padding: 22px 0 8px;
}
.nc-coupon { display: flex; gap: 8px; flex: 1 1 300px; }
.nc-coupon__input {
	flex: 1 1 auto;
	height: var(--nu-btn-h);
	border: 1px solid var(--nu-line);
	border-radius: var(--nu-btn-r);
	padding: 0 14px;
	font-family: var(--nu-font-body);
	font-size: 14px;
	background: var(--nu-surface);
	color: var(--nu-ink);
	-webkit-text-fill-color: var(--nu-ink);
}
.nc-coupon__input::placeholder { color: var(--nu-accent-deep); -webkit-text-fill-color: var(--nu-accent-deep); }

.nc-continue {
	display: inline-block;
	margin-top: 18px;
	font-size: 13px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--nu-ink-soft) !important;
	-webkit-text-fill-color: var(--nu-ink-soft);
	text-decoration: none;
}
.nc-continue:hover { color: var(--nu-primary) !important; -webkit-text-fill-color: var(--nu-primary); }

/* ---------------------------------------------------------------
   Buttons — identical spec to the product page
   --------------------------------------------------------------- */
.nc-btn,
.nc-wrap .checkout-button,
.nc-wrap #place_order,
.nc-wrap button.button,
.nc-wrap input.button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 9px;
	min-height: var(--nu-btn-h);
	height: var(--nu-btn-h);
	padding: 0 24px;
	border: 1px solid transparent;
	border-radius: var(--nu-btn-r);
	font-family: var(--nu-font-body);
	font-size: var(--nu-btn-fs);
	font-weight: var(--nu-btn-fw);
	letter-spacing: var(--nu-btn-ls);
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	cursor: pointer;
	transition: background .22s ease, color .22s ease, border-color .22s ease;
}

/* -webkit-text-fill-color must be !important here: the broad
 * `.nc-wrap a` readability rule above is specificity 0,1,1 and would
 * otherwise paint dark ink over these white-on-black buttons, making
 * the label invisible. */
.nc-btn--primary,
.nc-wrap a.nc-btn--primary,
.nc-wrap .checkout-button,
.nc-wrap #place_order {
	background: var(--nu-primary) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border-color: var(--nu-primary) !important;
	width: 100%;
}
.nc-btn--primary:hover,
.nc-wrap .checkout-button:hover,
.nc-wrap #place_order:hover { background: var(--nu-primary-dark) !important; }

.nc-btn--ghost,
.nc-wrap a.nc-btn--ghost,
.nc-wrap button.button[name="update_cart"],
.nc-wrap button.button[name="apply_coupon"] {
	background: var(--nu-surface) !important;
	color: var(--nu-primary) !important;
	-webkit-text-fill-color: var(--nu-primary) !important;
	border-color: var(--nu-primary) !important;
}
.nc-btn--ghost:hover {
	background: var(--nu-primary) !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
.nc-wrap button.button[name="update_cart"]:disabled { opacity: .4; cursor: not-allowed; }

/* ---------------------------------------------------------------
   Order summary
   --------------------------------------------------------------- */
.nc-summary__inner {
	background: var(--nu-ivory);
	border: 1px solid var(--nu-line);
	padding: 24px 22px;
}
.nc-summary__title { font-size: 24px; margin: 0 0 16px; }
.nc-summary h2 { font-size: 24px; margin: 0 0 16px; }
.nc-summary .cart_totals > h2 { font-family: var(--nu-font-head); }

.nc-summary table,
.nc-review table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 14px;
	background: none;
}
.nc-summary table th,
.nc-summary table td,
.nc-review table th,
.nc-review table td {
	padding: 11px 0;
	border: 0;
	border-bottom: 1px solid var(--nu-line);
	font-size: 14px;
	text-align: left;
	background: none;
	color: var(--nu-ink);
	-webkit-text-fill-color: var(--nu-ink);
}
.nc-summary table td,
.nc-review table td { text-align: right; }
.nc-summary table th,
.nc-review table th {
	font-weight: 400;
	color: var(--nu-ink-soft);
	-webkit-text-fill-color: var(--nu-ink-soft);
	letter-spacing: .04em;
}
.nc-summary .order-total th,
.nc-summary .order-total td,
.nc-review .order-total th,
.nc-review .order-total td {
	font-size: 17px;
	font-weight: 600;
	color: var(--nu-primary);
	-webkit-text-fill-color: var(--nu-primary);
	border-bottom: 0;
	padding-top: 14px;
}
.nc-summary .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; text-align: right; }
.nc-summary .woocommerce-shipping-methods li { margin-bottom: 5px; font-size: 13.5px; }
.nc-summary .shipping-calculator-button { font-size: 13px; color: var(--nu-primary) !important; -webkit-text-fill-color: var(--nu-primary); }

.nc-summary__help {
	margin: 14px 0 0;
	font-size: 13px;
	color: var(--nu-ink-soft);
	-webkit-text-fill-color: var(--nu-ink-soft);
	text-align: center;
}
.nc-summary__help a { color: var(--nu-primary) !important; -webkit-text-fill-color: var(--nu-primary); font-weight: 500; }

.nc-summary .cross-sells { display: none; }

/* ---------------------------------------------------------------
   Checkout fields
   --------------------------------------------------------------- */
.nc-card {
	background: var(--nu-surface);
	border: 1px solid var(--nu-line);
	padding: 26px 24px;
}
.nc-card h3 {
	font-size: 23px;
	margin: 0 0 18px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--nu-line);
}
.nc-card .woocommerce-shipping-fields h3 { margin-top: 26px; }

.nc-wrap .form-row { display: block; margin: 0 0 16px; padding: 0; }
.nc-wrap .form-row label {
	display: block;
	font-size: 12px;
	letter-spacing: .09em;
	text-transform: uppercase;
	margin-bottom: 7px;
	color: var(--nu-ink) !important;
	-webkit-text-fill-color: var(--nu-ink);
}
.nc-wrap .required { color: #a33; -webkit-text-fill-color: #a33; }

.nc-wrap .form-row input.input-text,
.nc-wrap .form-row textarea,
.nc-wrap .form-row select,
.nc-wrap .select2-container .select2-selection--single {
	width: 100%;
	height: 48px;
	min-height: 48px;
	border: 1px solid var(--nu-line);
	border-radius: var(--nu-btn-r);
	padding: 0 14px;
	font-family: var(--nu-font-body);
	font-size: 14.5px;
	background: var(--nu-surface);
	color: var(--nu-ink) !important;
	-webkit-text-fill-color: var(--nu-ink);
	box-shadow: none;
}
.nc-wrap .form-row textarea { height: 104px; padding: 12px 14px; resize: vertical; }
.nc-wrap .form-row input.input-text:focus,
.nc-wrap .form-row textarea:focus,
.nc-wrap .form-row select:focus { border-color: var(--nu-primary); outline: none; }
.nc-wrap .form-row input::placeholder,
.nc-wrap .form-row textarea::placeholder { color: var(--nu-accent-deep); -webkit-text-fill-color: var(--nu-accent-deep); }

.nc-wrap .select2-container .select2-selection--single {
	display: flex; align-items: center;
}
.nc-wrap .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 1.4;
	padding: 0;
	color: var(--nu-ink) !important;
	-webkit-text-fill-color: var(--nu-ink);
}
.nc-wrap .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; }

@media (min-width: 768px) {
	.nc-wrap .form-row-first,
	.nc-wrap .form-row-last { width: calc(50% - 8px); float: left; }
	.nc-wrap .form-row-last { margin-left: 16px; }
	.nc-wrap .clear { clear: both; }
}

/* ---------------------------------------------------------------
   Payment box
   --------------------------------------------------------------- */
.nc-wrap #payment,
.nc-wrap .woocommerce-checkout-payment {
	background: none !important;
	border-radius: 0;
	margin-top: 16px;
	/* the summary column right-aligns its totals table; payment copy
	   must read left-aligned like normal prose */
	text-align: left;
}
.nc-wrap #payment li,
.nc-wrap #payment p,
.nc-wrap #payment label,
.nc-wrap .woocommerce-privacy-policy-text,
.nc-wrap .woocommerce-terms-and-conditions-wrapper { text-align: left; }
.nc-wrap #payment ul.payment_methods {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
	border: 1px solid var(--nu-line);
	background: var(--nu-surface);
}
.nc-wrap #payment ul.payment_methods li {
	padding: 14px 16px;
	border-bottom: 1px solid var(--nu-line);
	list-style: none;
}
.nc-wrap #payment ul.payment_methods li:last-child { border-bottom: 0; }
.nc-wrap #payment ul.payment_methods label {
	display: inline;
	font-size: 14px;
	letter-spacing: .02em;
	text-transform: none;
	font-weight: 500;
	color: var(--nu-ink) !important;
	-webkit-text-fill-color: var(--nu-ink);
	cursor: pointer;
}
.nc-wrap #payment .payment_box {
	background: var(--nu-ivory) !important;
	border: 0;
	margin: 10px 0 0;
	padding: 12px 14px;
	font-size: 13.5px;
	color: var(--nu-ink-soft) !important;
	-webkit-text-fill-color: var(--nu-ink-soft);
	border-radius: 0;
}
.nc-wrap #payment .payment_box::before { display: none; }
.nc-wrap #payment .payment_box p { margin: 0; color: var(--nu-ink-soft); -webkit-text-fill-color: var(--nu-ink-soft); }

.nc-wrap .woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; font-size: 13px; }
.nc-wrap #place_order { width: 100%; margin-top: 4px; }

/* notices */
.nc-wrap .woocommerce-message,
.nc-wrap .woocommerce-info,
.nc-wrap .woocommerce-error {
	border-top: 0;
	border-left: 2px solid var(--nu-primary);
	background: var(--nu-ivory);
	color: var(--nu-ink);
	-webkit-text-fill-color: var(--nu-ink);
	font-size: 14px;
	border-radius: 0;
}
.nc-wrap .woocommerce-error { border-left-color: #a33; }

/* ---------------------------------------------------------------
   Empty cart
   --------------------------------------------------------------- */
.nc-empty { text-align: center; max-width: 620px; padding-top: 60px; padding-bottom: 90px; }
.nc-empty__mark { color: var(--nu-accent-deep); margin-bottom: 20px; }
.nc-empty__title { font-size: clamp(28px, 4vw, 40px); margin: 0 0 12px; }
.nc-empty__text {
	font-size: 15.5px;
	line-height: 1.75;
	color: var(--nu-ink-soft);
	-webkit-text-fill-color: var(--nu-ink-soft);
	margin: 0 auto 26px;
	max-width: 46ch;
}
.nc-empty .nc-btn--primary,
.nc-empty a.nc-btn--primary {
	width: auto;
	min-width: 260px;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}
.nc-empty__help { margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--nu-line); font-size: 13.5px; }
.nc-empty__help p { margin: 0 0 6px; color: var(--nu-ink-soft); -webkit-text-fill-color: var(--nu-ink-soft); }
.nc-empty__help a { color: var(--nu-primary) !important; -webkit-text-fill-color: var(--nu-primary); font-weight: 500; text-decoration: none; }
.nc-empty__help a:hover { text-decoration: underline; }
.nc-empty__help span { margin: 0 8px; color: var(--nu-accent); -webkit-text-fill-color: var(--nu-accent); }

/*
 * Deliberately NO @media (prefers-color-scheme: dark) block.
 * Text colours are pinned with both `color` and `-webkit-text-fill-color`
 * on headings, labels, table cells and inputs so a visitor whose device is
 * in dark mode still sees dark ink on the ivory/white surfaces.
 */
