/* Sanctum Gold — cart page (v1.9.117). Loaded on the cart only.
 * Restyles WooCommerce's classic cart markup with the theme's tokens (light
 * and dark), cards and buttons. Desktop: item cards + sticky order summary.
 * Mobile (≤ 720px): compact item cards with large quantity controls and a
 * sticky checkout bar. WooCommerce's small-screen table styles are overridden
 * here, so the "Product: / Price:" row labels are gone. */

/* ---------- page frame ---------- */
.woocommerce-cart .sg-page .entry-content{max-width:1120px;color:var(--text)}
.woocommerce-cart .sg-page .entry-content > .woocommerce{
	display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px 28px;align-items:start;
}
.woocommerce-cart .entry-content > .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .entry-content > .woocommerce > .wc-empty-cart-message,
.woocommerce-cart .entry-content > .woocommerce > .sg-cart-empty,
.woocommerce-cart .entry-content > .woocommerce > .return-to-shop{grid-column:1 / -1}
.woocommerce-cart .entry-content > .woocommerce > .woocommerce-notices-wrapper:empty{display:none}
.woocommerce-cart .woocommerce-cart-form{grid-column:1;min-width:0;margin:0}
.woocommerce-cart .entry-content > .woocommerce > .cart-collaterals{grid-column:2;width:auto;position:sticky;top:calc(var(--sg-header-h, 66px) + 26px)} /* v1.9.160 S160-4 */
.woocommerce-cart .cart-collaterals .cart_totals{float:none;width:100% !important}
.woocommerce-cart .cart-collaterals::before,.woocommerce-cart .cart-collaterals::after{display:none}

/* ---------- item list: the table becomes a stack of cards ---------- */
.woocommerce-cart table.shop_table.cart{
	display:block;border:0;border-radius:0;background:transparent;overflow:visible;margin:0;
}
.woocommerce-cart table.shop_table.cart thead{display:none}
.woocommerce-cart table.shop_table.cart tbody{display:flex;flex-direction:column;gap:12px}
.woocommerce-cart table.shop_table.cart tr.cart_item{
	display:grid;
	grid-template-columns:76px minmax(0,1fr) auto 104px 36px;
	grid-template-areas:
		"thumb name qty sub remove"
		"thumb unit qty sub remove";
	align-items:center;column-gap:18px;row-gap:2px;
	padding:14px 16px;border:1px solid var(--border);border-radius:14px;
	background:linear-gradient(160deg,var(--card2),var(--card));box-shadow:var(--card-shadow);
	transition:border-color .15s ease,box-shadow .15s ease;
}
.woocommerce-cart table.shop_table.cart tr.cart_item:hover{border-color:var(--border-gold);box-shadow:var(--card-shadow-hover)}
.woocommerce-cart table.shop_table.cart tr.cart_item td{
	display:block;border:0 !important;padding:0 !important;background:transparent !important;
	text-align:left !important;color:var(--text);min-width:0;
}
.woocommerce-cart table.shop_table.cart tr.cart_item td::before{display:none !important;content:none !important}
.woocommerce-cart table.cart td.product-thumbnail{grid-area:thumb;align-self:center}
.woocommerce-cart table.cart td.product-thumbnail a,.woocommerce-cart table.cart td.product-thumbnail img{display:block}
.woocommerce-cart table.cart td.product-thumbnail img{
	width:76px !important;height:76px;object-fit:cover;border-radius:10px;border:1px solid var(--border);background:var(--surface2);
}
.woocommerce-cart table.cart td.product-name{grid-area:name;align-self:end;line-height:1.3}
.woocommerce-cart table.cart td.product-name > a{
	font-family:var(--font-display);font-size:1.08rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;
	color:var(--text);text-decoration:none;
}
.woocommerce-cart table.cart td.product-name > a:hover{color:var(--gold-hover)}
/* Item meta (Realm, options) as small chips. */
.woocommerce-cart table.cart td.product-name dl.variation{
	display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;font-size:.74rem;
}
.woocommerce-cart table.cart td.product-name dl.variation dt{display:none}
.woocommerce-cart table.cart td.product-name dl.variation dd{
	margin:0;padding:3px 10px;border:1px solid var(--border);border-radius:999px;
	background:var(--surface2);color:var(--muted);font-weight:600;line-height:1.5;
}
.woocommerce-cart table.cart td.product-name dl.variation dd p{margin:0;display:inline}
.woocommerce-cart table.cart td.product-price{grid-area:unit;align-self:start;font-size:.8rem;color:var(--muted2) !important}
.woocommerce-cart table.cart td.product-price::after{content:" each"}
.woocommerce-cart table.cart td.product-quantity{grid-area:qty}
.woocommerce-cart table.cart td.product-subtotal{
	grid-area:sub;text-align:right !important;font-weight:800;font-size:1.02rem;color:var(--price) !important;white-space:nowrap;
}
.woocommerce-cart table.cart td.product-remove{grid-area:remove;justify-self:end}

/* Remove: round icon button. */
.woocommerce-cart table.cart a.remove{
	display:inline-flex !important;align-items:center;justify-content:center;width:34px;height:34px;
	border:1px solid var(--border);border-radius:50%;background:var(--card);
	color:var(--muted2) !important;font-size:1.25rem;line-height:1;font-weight:400;text-decoration:none;
	transition:color .15s ease,border-color .15s ease,background .15s ease;
}
.woocommerce-cart table.cart a.remove:hover,.woocommerce-cart table.cart a.remove:focus-visible{
	color:#fff !important;background:var(--red) !important;border-color:var(--red);
}

/* Quantity stepper (same look as the D2R row stepper). */
.sg-cart-qty{
	display:inline-flex;align-items:stretch;height:40px;border:1px solid var(--border);border-radius:999px;
	background:var(--card2);overflow:hidden;
}
.sg-cart-qty-btn{
	/* width as well as flex-basis: Safari sizes the pill without the basis and clipped the + (1.9.160). */
	flex:0 0 36px;width:36px;min-width:36px;border:0;background:transparent;color:var(--text);font-size:1.1rem;font-weight:700;
	cursor:pointer;line-height:1;padding:0;
}
body:not(.sg-cart-js) .sg-cart-qty-btn{display:none} /* no JS: WooCommerce's input + Update cart */
.sg-cart-qty-btn:hover{background:var(--border);color:var(--gold-hover)} /* v1.9.156: was 3.96:1 */
.sg-cart-qty-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.sg-cart-qty .quantity{display:flex;margin:0 !important}
.woocommerce-cart .sg-cart-qty .quantity input.qty{
	width:44px;height:100%;border:0;background:transparent;color:var(--text);text-align:center;
	font-size:.95rem;font-weight:700;padding:0;-moz-appearance:textfield;appearance:textfield;
}
.sg-cart-qty .quantity input.qty::-webkit-inner-spin-button,
.sg-cart-qty .quantity input.qty::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.sg-cart-qty .quantity input.qty:focus{outline:none;box-shadow:inset 0 0 0 2px rgba(249,115,22,.35)}

/* ---------- actions row: promo code + (no-JS) update ---------- */
.woocommerce-cart table.shop_table.cart tr:not(.cart_item){display:block}
.woocommerce-cart table.shop_table.cart td.actions{
	display:flex !important;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
	padding:14px 16px !important;border:1px dashed var(--border) !important;border-radius:14px;background:transparent !important;
}
.woocommerce-cart table.cart td.actions .coupon{
	display:flex;align-items:stretch;flex:1 1 320px;max-width:440px;float:none !important;padding:0 !important;
	border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--input-bg);
}
.woocommerce-cart table.cart td.actions .coupon::before{
	content:"🏷";display:flex;align-items:center;padding:0 0 0 12px;font-size:.95rem;opacity:.75;
}
.woocommerce-cart table.cart td.actions .coupon .input-text{
	flex:1 1 auto;min-width:0 !important;width:auto !important;margin:0 !important;border:0 !important;
	background:transparent;color:var(--text);padding:12px !important;font-size:.9rem;outline:none;
}
.woocommerce-cart table.cart td.actions .coupon .input-text::placeholder{color:var(--muted2)}
.woocommerce-cart table.cart td.actions .coupon:focus-within{border-color:var(--gold-dim);box-shadow:0 0 0 2px rgba(249,115,22,.15)}
.woocommerce-cart table.cart td.actions .coupon .button{
	flex:0 0 auto;white-space:nowrap;margin:0;border-radius:0;border-width:0 0 0 1px;padding:10px 18px;font-size:.8rem;
	background:var(--card2);color:var(--gold) !important;border-color:var(--border);box-shadow:none;
}
.woocommerce-cart table.cart td.actions .coupon .button:hover{background:var(--surface2);color:var(--gold-hover) !important;transform:none;filter:none}
.woocommerce-cart table.cart td.actions > .button{float:none !important;margin:0}
/* With JS, quantity changes update on their own (cart.js); the button stays for no-JS. */
.sg-cart-js.woocommerce-cart table.cart td.actions > button[name="update_cart"]{display:none}
/* WooCommerce inserts the coupon error inside .coupon: give it its own row. */
.woocommerce-cart table.cart td.actions .coupon{flex-wrap:wrap}
.woocommerce-cart table.cart td.actions .coupon .input-text{flex-basis:0}
.woocommerce-cart table.cart td.actions .coupon .coupon-error-notice{
	flex:0 0 100%;order:3;margin:0;padding:8px 12px;border-top:1px solid var(--border);
	background:var(--card);color:var(--red);font-size:.8rem;line-height:1.4;
}

/* Save state for quantity changes (cart.js): a line above the items. */
.woocommerce-cart .entry-content > .woocommerce > .sg-cart-status{grid-column:1 / -1}
.sg-cart-status{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;padding:12px 16px;border:1px solid var(--border);
	border-radius:12px;background:var(--card);font-size:.88rem;color:var(--text)}
.sg-cart-status[hidden]{display:none}
.sg-cart-status.is-saving{color:var(--muted)}
.sg-cart-status.is-error{border-color:var(--red);border-left:4px solid var(--red)}
.sg-cart-status .sg-btn{padding:8px 16px;font-size:.78rem}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.sg-loading{opacity:.7;pointer-events:none}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button.sg-loading::after{content:'';display:inline-block;width:14px;height:14px;margin-left:10px;
	border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sg-spin .7s linear infinite;vertical-align:-2px}

/* ---------- order summary ---------- */
.woocommerce-cart .cart-collaterals .cart_totals{
	padding:22px;border:1px solid var(--border-gold);border-radius:16px;
	background:linear-gradient(170deg,var(--card2),var(--card));box-shadow:var(--card-shadow);
}
.woocommerce-cart .cart-collaterals .cart_totals h2{
	font-family:var(--font-display);font-size:1.15rem;letter-spacing:.1em;margin:0 0 14px;color:var(--heading-accent);
}
.woocommerce-cart .cart_totals table.shop_table{border:0;border-radius:0;background:transparent;margin:0 0 18px;width:100%}
.woocommerce-cart .cart_totals table.shop_table tr{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td{
	display:block;background:transparent !important;border:0 !important;padding:8px 0 !important;
	font-family:var(--font-body);font-size:.9rem;letter-spacing:0;text-transform:none;color:var(--muted);font-weight:500;
	text-align:right;width:auto !important;
}
.woocommerce-cart .cart_totals table.shop_table th{text-align:left}
.woocommerce-cart .cart_totals table.shop_table td::before{display:none !important}
.woocommerce-cart .cart_totals table.shop_table td{color:var(--text);font-weight:700}
.woocommerce-cart .cart_totals tr.cart-discount td,.woocommerce-cart .cart_totals tr.cart-discount th{color:var(--green) !important}
.woocommerce-cart .cart_totals tr.cart-discount a.woocommerce-remove-coupon{font-size:.75rem;font-weight:600;margin-left:6px;color:var(--muted2)}
.woocommerce-cart .cart_totals tr.order-total{margin-top:6px;border-top:1px solid var(--border)}
.woocommerce-cart .cart_totals tr.order-total th,.woocommerce-cart .cart_totals tr.order-total td{padding-top:14px !important;color:var(--text)}
.woocommerce-cart .cart_totals tr.order-total th{font-family:var(--font-display);font-size:1rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.woocommerce-cart .cart_totals tr.order-total td strong,.woocommerce-cart .cart_totals tr.order-total td{font-size:1.45rem;font-weight:800;color:var(--price)}
.woocommerce-cart .cart_totals tr.order-total td small{display:block;font-size:.72rem;font-weight:500;color:var(--muted2)}
.woocommerce-cart .wc-proceed-to-checkout{padding:0 !important;margin:0}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{
	display:block;width:100%;margin:0;text-align:center;font-size:1.05rem;letter-spacing:.1em;padding:16px 20px;border-radius:10px;
}
.sg-cart-bar-total{display:none}

/* ---------- empty cart ---------- */
.woocommerce-cart .sg-page .entry-content > .woocommerce:has(.wc-empty-cart-message){display:block}
.woocommerce-cart .wc-empty-cart-message{max-width:620px;width:100%;margin:0 auto}
.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info{
	margin:0;padding:40px 24px 8px;border:1px solid var(--border);border-bottom:0;border-top:3px solid var(--gold);
	border-radius:16px 16px 0 0;background:linear-gradient(170deg,var(--card2),var(--card));
	text-align:center;font-family:var(--font-display);font-size:1.4rem;font-weight:700;letter-spacing:.06em;
	text-transform:uppercase;color:var(--text);
}
.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info::before{
	content:"";position:static;display:block;width:56px;height:56px;margin:0 auto 14px;border-radius:50%;
	background:rgba(249,115,22,.12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ea580c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='20' r='1.4'/%3E%3Ccircle cx='18' cy='20' r='1.4'/%3E%3Cpath d='M2.5 3.5h3l2.4 11.2a1.6 1.6 0 0 0 1.6 1.3h8.3a1.6 1.6 0 0 0 1.6-1.2l1.6-6.8H6.4'/%3E%3C/svg%3E") center/28px no-repeat;
}
.sg-cart-empty{
	max-width:620px;width:100%;margin:0 auto;padding:0 24px 28px;border:1px solid var(--border);border-top:0;
	border-radius:0 0 16px 16px;background:var(--card);box-shadow:var(--card-shadow);text-align:center;
}
.sg-cart-empty-sub{margin:0 0 20px;color:var(--muted);font-size:.92rem}
.sg-cart-empty-games{display:grid;gap:10px;text-align:left}
.sg-cart-empty-game{
	display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;
	border:1px solid var(--border);border-left:4px solid var(--gold-light);border-radius:12px;background:var(--card2);
	font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
	color:var(--text);text-decoration:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;
}
.sg-cart-empty-game:hover{transform:translateY(-2px);border-color:var(--border-gold);border-left-color:var(--gold);box-shadow:var(--card-shadow-hover);color:var(--gold)}
.sg-cart-empty-go{font-size:1.4rem;line-height:1;color:var(--gold)}
.sg-cart-empty ~ .return-to-shop{display:none}

/* ---------- tablet ---------- */
@media (max-width:980px){
	.woocommerce-cart .sg-page .entry-content > .woocommerce{grid-template-columns:minmax(0,1fr)}
	.woocommerce-cart .entry-content > .woocommerce > .cart-collaterals{grid-column:1;position:static}
}

/* ---------- mobile ---------- */
@media (max-width:720px){
	.woocommerce-cart .sg-page{padding-bottom:110px} /* room for the sticky checkout bar */
	.woocommerce-cart table.shop_table.cart tr.cart_item{
		grid-template-columns:64px minmax(0,1fr) auto;
		grid-template-areas:
			"thumb name remove"
			"thumb unit unit"
			"qty   qty  sub";
		column-gap:12px;row-gap:4px;padding:12px;border-radius:12px;
	}
	.woocommerce-cart table.cart td.product-thumbnail img{width:64px !important;height:64px}
	.woocommerce-cart table.cart td.product-name{align-self:start;padding-right:4px !important}
	.woocommerce-cart table.cart td.product-name > a{font-size:1rem}
	.woocommerce-cart table.cart td.product-remove{align-self:start}
	.woocommerce-cart table.cart a.remove{width:32px;height:32px}
	.woocommerce-cart table.cart td.product-quantity{margin-top:8px}
	.woocommerce-cart table.cart td.product-subtotal{margin-top:8px;align-self:center;font-size:1.1rem}
	.sg-cart-qty{height:44px}
	.sg-cart-qty-btn{flex-basis:44px;width:44px;min-width:44px;font-size:1.2rem}
	.woocommerce-cart table.shop_table.cart td.actions{padding:12px !important}
	.woocommerce-cart table.cart td.actions .coupon{flex-basis:100%;max-width:none}
	.woocommerce-cart table.cart td.actions > .button{width:100%}
	.woocommerce-cart .cart-collaterals .cart_totals{padding:18px}
	/* Sticky checkout bar: total + button always in reach. */
	.woocommerce-cart .wc-proceed-to-checkout{
		position:fixed;left:0;right:0;bottom:0;z-index:150;display:flex;align-items:center;gap:14px;
		padding:12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
		background:var(--header-bg);border-top:1px solid var(--border);box-shadow:0 -6px 24px rgba(0,0,0,.12);
		-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
	}
	.woocommerce-cart .sg-cart-bar-total{display:flex;flex-direction:column;flex:0 0 auto;line-height:1.15}
	.woocommerce-cart .sg-cart-bar-total span{font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted2)}
	.woocommerce-cart .sg-cart-bar-total strong,.woocommerce-cart .sg-cart-bar-total strong *{font-size:1.2rem;font-weight:800;color:var(--price)}
	.woocommerce-cart .sg-cart-bar-total small{display:none}
	.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{flex:1 1 auto;width:auto;padding:14px 10px;font-size:.88rem;letter-spacing:.05em;white-space:nowrap}
	.woocommerce-cart .wc-empty-cart-message .cart-empty.woocommerce-info{padding:32px 18px 6px;font-size:1.2rem}
	.sg-cart-empty{padding:0 16px 22px}
}
