/* ════════════════════════════════════════════════════════════════════
   BioCode — Cart (/cart/)  ·  "Field-guide editorial"
   Reskins the classic [woocommerce_cart] shortcode to match the Courses,
   Single-course and Membership pages. Two-column layout (items + sticky
   summary) on a warm bone field, green/clay accents, Newsreader display.
   Scoped to body.woocommerce-cart.
   ════════════════════════════════════════════════════════════════════ */

body.woocommerce-cart {
	--g-deep:#154d37; --g:#1d6b4f; --g-soft:#2f8a67; --g-tint:#eef4ef;
	--clay:#bd6a36; --clay-dk:#9a5125;
	--ink:#1a1c16; --ink-2:#33372c; --muted:#6a6f60; --faint:#9a9e8d;
	--bone:#f6f2e9; --paper:#fffdf8; --cream:#f3eee2; --line:#e6e0d2; --line-2:#efeadd;
	--serif:"Newsreader",Georgia,serif;
	--sans:"Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
	--r-sm:10px; --r:16px; --r-lg:22px;
	--sh-sm:0 1px 2px rgba(26,28,22,.05);
	--sh-md:0 8px 26px rgba(26,28,22,.07),0 2px 8px rgba(26,28,22,.05);
	--ease:cubic-bezier(.22,.61,.36,1); --tr:.3s var(--ease);
	background:var(--bone);
	font-family:var(--sans);
	color:var(--ink);
}
body.woocommerce-cart .entry-content,
body.woocommerce-cart .site-main { max-width:none; }
body.woocommerce-cart .woocommerce { max-width:1180px; margin:0 auto; padding:8px 0 40px; }

/* ── Branded header ─────────────────────────────────────────────────── */
.bc-cart-head { text-align:center; padding:30px 0 26px; }
.bc-cart-eyebrow {
	display:inline-flex; align-items:center; gap:9px; margin:0 0 14px;
	font-size:.78rem; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--g);
}
.bc-cart-eyebrow-dot { width:7px; height:7px; border-radius:50%; background:var(--clay); }
.bc-cart-title {
	font-family:var(--serif); font-weight:500; font-size:clamp(2rem,4vw,2.9rem);
	line-height:1.05; letter-spacing:-.015em; color:var(--ink); margin:0 0 14px;
}
.bc-cart-title em { font-style:italic; color:var(--g); }
.bc-cart-trust {
	display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:center;
	font-size:.9rem; color:var(--muted); margin:0;
}
.bc-cart-trust svg { color:var(--g); }

/* ── Two-column layout (only when the cart has items) ───────────────── */
body.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) {
	display:grid;
	grid-template-columns:minmax(0,1fr) 360px;
	gap:30px;
	align-items:start;
}
body.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > *:not(.woocommerce-cart-form):not(.cart-collaterals) { grid-column:1 / -1; }
body.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > .woocommerce-cart-form { grid-column:1; }
body.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > .cart-collaterals { grid-column:2; position:sticky; top:90px; }

/* ── Notices ─────────────────────────────────────────────────────────── */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
	background:var(--paper); border:1px solid var(--line); border-left:3px solid var(--g);
	border-radius:var(--r); color:var(--ink-2); box-shadow:var(--sh-sm);
	font-family:var(--sans); padding:14px 18px;
}
body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before { color:var(--g); }
body.woocommerce-cart .woocommerce-message .button,
body.woocommerce-cart .woocommerce-info .button { float:none; }

/* -- Cart items: each row becomes an item CARD via grid-areas -- */
body.woocommerce-cart .woocommerce-cart-form {
	background:var(--paper); border:1px solid var(--line);
	border-radius:var(--r-lg); padding:20px; box-shadow:var(--sh-sm);
}
body.woocommerce-cart table.cart.shop_table,
body.woocommerce-cart .woocommerce-cart-form table { border:none; margin:0; background:transparent; display:block; }
body.woocommerce-cart table.cart thead { display:none; }
body.woocommerce-cart table.cart tbody { display:block; }
body.woocommerce-cart table.cart tr:not(.cart_item) { display:block; }

/* the item card */
body.woocommerce-cart tr.cart_item {
	display:grid;
	grid-template-columns:92px minmax(0,1fr) 104px 116px 100px 32px;
	grid-template-areas:"thumb name price qty subtotal remove";
	align-items:center;
	gap:4px 18px;
	padding:16px;
	margin-bottom:14px;
	background:var(--cream);
	border:1px solid var(--line);
	border-radius:var(--r);
	transition:border-color var(--tr), box-shadow var(--tr), transform var(--tr);
}
body.woocommerce-cart tr.cart_item:hover { border-color:rgba(29,107,79,.32); box-shadow:var(--sh-sm); transform:translateY(-1px); }
body.woocommerce-cart tr.cart_item > td {
	border:none !important; padding:0 !important; background:transparent !important; width:auto !important;
}
body.woocommerce-cart td.product-thumbnail { grid-area:thumb; }
body.woocommerce-cart td.product-name     { grid-area:name; }
body.woocommerce-cart td.product-price    { grid-area:price; text-align:center; }
body.woocommerce-cart td.product-quantity { grid-area:qty; text-align:center; }
body.woocommerce-cart td.product-subtotal { grid-area:subtotal; text-align:center; }
body.woocommerce-cart td.product-remove   { grid-area:remove; text-align:right; }

/* mini column labels (the thead is hidden) */
body.woocommerce-cart td.product-price::before,
body.woocommerce-cart td.product-quantity::before,
body.woocommerce-cart td.product-subtotal::before {
	content:attr(data-title);
	display:block; font-size:.6rem; font-weight:700; letter-spacing:.08em;
	text-transform:uppercase; color:var(--faint); margin-bottom:6px;
}

/* thumbnail */
body.woocommerce-cart td.product-thumbnail img {
	width:84px; height:84px; object-fit:cover; border-radius:var(--r-sm);
	border:1px solid var(--line); box-shadow:var(--sh-sm); display:block;
}
/* name */
body.woocommerce-cart td.product-name a {
	font-family:var(--serif); font-weight:600; font-size:1.14rem; line-height:1.25;
	color:var(--ink); text-decoration:none;
}
body.woocommerce-cart td.product-name a:hover { color:var(--g); }
body.woocommerce-cart td.product-name .variation,
body.woocommerce-cart td.product-name dl { font-size:.82rem; color:var(--muted); margin-top:5px; }
body.woocommerce-cart td.product-name .backorder_notification { font-size:.78rem; color:var(--clay-dk); }
/* price + subtotal */
body.woocommerce-cart td.product-price  { color:var(--ink-2); font-weight:600; font-size:.98rem; }
body.woocommerce-cart td.product-subtotal { font-weight:700; color:var(--g-deep); font-size:1.05rem; }
body.woocommerce-cart .amount { font-variant-numeric:tabular-nums; }

/* quantity stepper */
body.woocommerce-cart td.product-quantity .quantity { display:inline-flex; }
body.woocommerce-cart .quantity input.qty {
	width:62px; height:42px; text-align:center; font-family:var(--sans); font-weight:600;
	color:var(--ink); background:var(--paper); border:1px solid var(--line);
	border-radius:var(--r-sm); -moz-appearance:textfield;
}
body.woocommerce-cart .quantity input.qty:focus { outline:2px solid var(--g-soft); outline-offset:1px; border-color:var(--g); }

/* remove (x) button */
body.woocommerce-cart a.remove {
	display:inline-flex; align-items:center; justify-content:center;
	width:28px; height:28px; border-radius:50%; font-size:18px; line-height:1;
	color:var(--muted) !important; background:var(--paper); border:1px solid var(--line);
	text-decoration:none; transition:var(--tr);
}
body.woocommerce-cart a.remove:hover { background:#b3402f !important; color:#fff !important; border-color:#b3402f; transform:rotate(90deg); }

/* phone: re-flow the card into a tidy 2-D stack */
@media (max-width:640px) {
	body.woocommerce-cart tr.cart_item {
		grid-template-columns:68px minmax(0,1fr) auto;
		grid-template-areas:
			"thumb name     remove"
			"thumb price    subtotal"
			"thumb qty      qty";
		gap:8px 14px;
		padding:14px;
	}
	body.woocommerce-cart td.product-thumbnail { align-self:start; }
	body.woocommerce-cart td.product-thumbnail img { width:64px; height:64px; }
	body.woocommerce-cart td.product-name a { font-size:1.04rem; }
	body.woocommerce-cart td.product-price,
	body.woocommerce-cart td.product-subtotal { text-align:left; }
	body.woocommerce-cart td.product-subtotal { align-self:end; text-align:right; }
	body.woocommerce-cart td.product-quantity { text-align:left; margin-top:2px; }
	body.woocommerce-cart td.product-quantity::before { margin-bottom:4px; }
}

/* ── Actions row (coupon + update) ───────────────────────────────────── */
body.woocommerce-cart td.actions {
	padding:22px 0 8px !important; border-bottom:none !important;
}
body.woocommerce-cart .coupon { display:inline-flex; gap:10px; align-items:center; float:none; }
body.woocommerce-cart .coupon label { display:none; }
body.woocommerce-cart #coupon_code,
body.woocommerce-cart .coupon .input-text {
	height:46px; min-width:170px; padding:0 16px; font-family:var(--sans);
	background:var(--cream); border:1px solid var(--line); border-radius:var(--r-sm);
	color:var(--ink);
}
body.woocommerce-cart #coupon_code:focus { outline:2px solid var(--g-soft); border-color:var(--g); }

/* ── Buttons ─────────────────────────────────────────────────────────── */
body.woocommerce-cart .woocommerce a.button,
body.woocommerce-cart .woocommerce button.button,
body.woocommerce-cart .woocommerce input.button,
body.woocommerce-cart .woocommerce .button {
	font-family:var(--sans); font-weight:600; font-size:.95rem; line-height:1;
	border-radius:var(--r-sm); padding:14px 22px; border:1px solid transparent;
	background:var(--g); color:#fff; cursor:pointer; transition:var(--tr);
	text-transform:none; letter-spacing:0;
}
body.woocommerce-cart .woocommerce a.button:hover,
body.woocommerce-cart .woocommerce button.button:hover,
body.woocommerce-cart .woocommerce .button:hover { background:var(--g-deep); color:#fff; transform:translateY(-2px); }
/* secondary buttons: Update cart, Apply coupon */
body.woocommerce-cart button[name="update_cart"],
body.woocommerce-cart .coupon button.button {
	background:transparent; color:var(--ink) !important; border-color:rgba(26,28,22,.22);
}
body.woocommerce-cart button[name="update_cart"]:hover,
body.woocommerce-cart .coupon button.button:hover {
	background:transparent; color:var(--g) !important; border-color:var(--g); transform:translateY(-2px);
}
body.woocommerce-cart button[name="update_cart"]:disabled { opacity:.5; }

/* ── Cart totals (sticky summary card) ───────────────────────────────── */
body.woocommerce-cart .cart_totals {
	background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg);
	padding:26px 26px 28px; box-shadow:var(--sh-md);
}
body.woocommerce-cart .cart_totals > h2 {
	font-family:var(--serif); font-weight:600; font-size:1.4rem; color:var(--ink);
	margin:0 0 18px; padding-bottom:14px; border-bottom:1px solid var(--line);
}
body.woocommerce-cart .cart_totals table { border:none; margin:0; width:100%; }
body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
	border:none; border-bottom:1px solid var(--line-2); padding:13px 0;
	font-size:.96rem; color:var(--ink-2); background:transparent;
}
body.woocommerce-cart .cart_totals table th { font-weight:600; color:var(--muted); text-align:left; }
body.woocommerce-cart .cart_totals table td { text-align:right; }
body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td { border-bottom:none; padding-top:16px; }
body.woocommerce-cart .cart_totals .order-total th { font-family:var(--serif); font-size:1.05rem; color:var(--ink); }
body.woocommerce-cart .cart_totals .order-total td .amount,
body.woocommerce-cart .cart_totals .order-total .amount {
	font-family:var(--serif); font-weight:700; font-size:1.5rem; color:var(--g-deep);
}
body.woocommerce-cart .cart_totals .woocommerce-shipping-destination { color:var(--muted); font-size:.85rem; }

/* proceed to checkout */
body.woocommerce-cart .wc-proceed-to-checkout { padding:20px 0 0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display:block; width:100%; text-align:center; font-size:1.02rem; font-weight:700;
	padding:16px 22px; background:var(--g); color:#fff !important;
	box-shadow:0 10px 26px rgba(29,107,79,.22); border-radius:var(--r-sm);
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background:var(--g-deep); transform:translateY(-2px); }

/* a little reassurance under the summary */
body.woocommerce-cart .cart_totals::after {
	content:"30-day access guarantee · Pay securely via Stripe";
	display:block; margin-top:16px; text-align:center;
	font-size:.78rem; color:var(--faint); line-height:1.5;
}

/* currency switcher */
body.woocommerce-cart .woocommerce-multi-currency.shortcode { margin:8px 0 0; }
body.woocommerce-cart .woocommerce-multi-currency select,
body.woocommerce-cart .wmc-currency-wrapper select {
	font-family:var(--sans); border:1px solid var(--line); border-radius:var(--r-sm);
	padding:8px 12px; background:var(--cream); color:var(--ink);
}

/* ── After-cart: continue + membership upsell ────────────────────────── */
.bc-cart-after { margin:34px auto 0; max-width:1180px; }
.bc-cart-back {
	display:inline-block; margin-bottom:22px; font-weight:600; font-size:.95rem;
	color:var(--g) !important; text-decoration:none;
}
.bc-cart-back:hover { color:var(--g-deep) !important; }
.bc-cart-upsell {
	display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
	background:linear-gradient(160deg,var(--g) 0%,var(--g-deep) 80%);
	color:#f4efe2; border-radius:var(--r-lg); padding:26px 32px; box-shadow:var(--sh-md);
}
.bc-cart-upsell-k { margin:0 0 6px; font-size:.74rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:#9fe0c0; }
.bc-cart-upsell-t { margin:0; font-family:var(--serif); font-size:1.4rem; line-height:1.2; color:#fff; }
.bc-cart-upsell-t em { font-style:italic; color:#9fe0c0; }
.bc-cart-upsell-btn {
	flex:0 0 auto; background:var(--cream); color:var(--g-deep) !important; font-weight:600;
	padding:14px 24px; border-radius:var(--r-sm); text-decoration:none; transition:var(--tr); white-space:nowrap;
}
.bc-cart-upsell-btn:hover { background:#fff; transform:translateY(-2px); }

/* ── Empty cart state ────────────────────────────────────────────────── */
body.woocommerce-cart .cart-empty.woocommerce-info {
	text-align:center; font-family:var(--serif); font-size:1.4rem; color:var(--ink);
	background:var(--paper); border:1px solid var(--line); border-left:1px solid var(--line);
	border-radius:var(--r-lg); padding:40px 30px 30px; max-width:560px; margin:10px auto 0; box-shadow:var(--sh-sm);
}
body.woocommerce-cart .cart-empty.woocommerce-info::before { display:none; }
body.woocommerce-cart .return-to-shop { text-align:center; margin:18px auto 40px; }
body.woocommerce-cart .return-to-shop .button {
	display:inline-block; background:var(--g); color:#fff !important; font-weight:600;
	padding:15px 28px; border-radius:var(--r-sm);
}
body.woocommerce-cart .return-to-shop .button:hover { background:var(--g-deep); transform:translateY(-2px); }

/* ── Cross-sells (if any) ────────────────────────────────────────────── */
body.woocommerce-cart .cross-sells h2 {
	font-family:var(--serif); font-weight:600; color:var(--ink); font-size:1.4rem;
}

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width:980px) {
	body.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) { grid-template-columns:1fr; }
	body.woocommerce-cart .woocommerce:has(.woocommerce-cart-form) > .cart-collaterals { grid-column:1; position:static; }
}
@media (max-width:600px) {
	body.woocommerce-cart .woocommerce-cart-form { padding:6px 16px 10px; }
	body.woocommerce-cart table.cart thead { display:none; }
	body.woocommerce-cart table.cart td { padding:12px 6px; }
	body.woocommerce-cart .coupon { display:flex; width:100%; }
	body.woocommerce-cart #coupon_code { flex:1 1 auto; min-width:0; }
	.bc-cart-upsell { flex-direction:column; align-items:flex-start; }
}
