/*!
Package: cart styles
Purpose: The Petland cart-page layout. Extracted 2026-04 from a 346-line
inline <style> block in /woocommerce/cart/cart.php so cart styles can be
browser-cached and maintained as a first-class stylesheet. Enqueued only
on the cart page by /add-ons/utils/cart-badge.php (which also handles the
header-badge fragments).

Scope prefix: .petland-cart (all rules are nested under this class so they
only affect the custom cart markup, not other WC pages).
*/
	.petland-cart {
		--pc-ink:          #0f172a;
		--pc-ink-soft:     #475569;
		--pc-ink-faint:    #94a3b8;
		--pc-surface:      #ffffff;
		--pc-sunken:       #f8fafc;
		--pc-muted:        #f1f5f9;
		--pc-border:       #e2e8f0;
		--pc-border-strong:#cbd5e1;
		--pc-primary:      var( --bs-primary, #dc3545 );
		--pc-primary-soft: rgba( 220, 53, 69, .08 );
		--pc-radius:       14px;
		--pc-radius-sm:    8px;
		--pc-shadow-sm:    0 1px 2px rgba( 15, 23, 42, .06 ), 0 1px 3px rgba( 15, 23, 42, .08 );
	}

	/* Hide the stock WC table — we render our own card layout below. */
	.petland-cart .woocommerce-cart-form__contents { display: none; }

	.petland-cart { color: var( --pc-ink ); }

	.petland-cart-title {
		font-size: 1.75rem;
		font-weight: 700;
		letter-spacing: -.01em;
		margin: 0 0 1.5rem;
	}

	/* ---------- Item rows ---------- */

	.petland-cart-items {
		display: flex;
		flex-direction: column;
		gap: .75rem;
		margin-bottom: 1.5rem;
	}

	.petland-cart-item {
		display: grid;
		grid-template-columns: 96px 1fr auto;
		gap: 1rem;
		align-items: center;
		padding: 1rem;
		background: var( --pc-surface );
		border: 1px solid var( --pc-border );
		border-radius: var( --pc-radius );
		box-shadow: var( --pc-shadow-sm );
	}

	.petland-cart-item-img {
		width: 96px;
		height: 96px;
		border-radius: var( --pc-radius-sm );
		object-fit: cover;
		background: var( --pc-muted );
	}

	.petland-cart-item-body { min-width: 0; }

	.petland-cart-item-name {
		font-size: 1rem;
		font-weight: 600;
		color: var( --pc-ink );
		margin: 0 0 .2rem;
		text-decoration: none;
	}

	.petland-cart-item-name:hover { color: var( --pc-primary ); }

	.petland-cart-item-meta {
		font-size: .82rem;
		color: var( --pc-ink-faint );
		margin: .1rem 0;
	}

	.petland-cart-item-price {
		font-size: .95rem;
		color: var( --pc-ink-soft );
		margin-top: .4rem;
		font-weight: 500;
	}

	.petland-cart-item-qty {
		display: flex;
		align-items: center;
		gap: .5rem;
		margin-top: .4rem;
	}

	.petland-cart-item-qty .quantity { margin: 0; }

	.petland-cart-item-qty input.qty {
		width: 56px;
		height: 36px;
		padding: 0 .4rem;
		text-align: center;
		border: 1.5px solid var( --pc-border );
		border-radius: var( --pc-radius-sm );
		font-weight: 600;
	}

	.petland-cart-item-right {
		display: flex;
		flex-direction: column;
		align-items: flex-end;
		gap: .5rem;
		min-width: 120px;
	}

	.petland-cart-item-subtotal {
		font-size: 1.05rem;
		font-weight: 700;
		color: var( --pc-primary );
	}

	.petland-cart-item-remove {
		display: inline-flex;
		align-items: center;
		gap: .3rem;
		padding: .35rem .65rem;
		font-size: .78rem;
		color: var( --pc-ink-faint );
		background: transparent;
		border: 1px solid var( --pc-border );
		border-radius: 999px;
		text-decoration: none;
		transition: all 200ms ease;
		font-weight: 500;
	}

	.petland-cart-item-remove:hover {
		color: var( --pc-primary );
		border-color: var( --pc-primary );
		background: var( --pc-primary-soft );
	}

	.petland-cart-item-remove::before {
		content: '×';
		font-size: 1.1rem;
		line-height: 1;
	}

	/* Badge for required/included items */
	.petland-cart-item-required {
		display: inline-block;
		font-size: .7rem;
		font-weight: 600;
		letter-spacing: .04em;
		text-transform: uppercase;
		padding: 2px 8px;
		border-radius: 999px;
		background: var( --pc-primary );
		color: #fff;
		margin-left: .4rem;
	}

	/* ---------- Coupon + actions row ---------- */

	.petland-cart-actions {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: .75rem;
		padding: 1rem 1.25rem;
		background: var( --pc-sunken );
		border: 1px solid var( --pc-border );
		border-radius: var( --pc-radius );
		margin-bottom: 1.5rem;
	}

	.petland-cart-coupon {
		display: flex;
		gap: .5rem;
		flex: 1;
		max-width: 380px;
	}

	.petland-cart-coupon input.input-text {
		flex: 1;
		height: 40px;
		padding: 0 .85rem;
		border: 1.5px solid var( --pc-border );
		border-radius: 999px;
		outline: none;
	}

	.petland-cart-coupon input.input-text:focus {
		border-color: var( --pc-primary );
	}

	.petland-cart .button,
	.petland-cart .btn-pc {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		padding: .55rem 1.1rem;
		border-radius: 999px;
		font-weight: 600;
		font-size: .88rem;
		border: 1.5px solid var( --pc-border );
		background: var( --pc-surface );
		color: var( --pc-ink );
		cursor: pointer;
		transition: all 200ms ease;
		font-family: inherit;
	}

	.petland-cart .button[name="update_cart"] {
		border-color: var( --pc-border-strong );
	}

	.petland-cart .button[name="update_cart"]:hover {
		background: var( --pc-sunken );
	}

	.petland-cart .button[name="apply_coupon"] {
		background: var( --pc-ink );
		color: #fff;
		border-color: var( --pc-ink );
	}

	/* ---------- Totals column ---------- */

	.petland-cart-totals {
		background: var( --pc-surface );
		border: 1px solid var( --pc-border );
		border-radius: var( --pc-radius );
		padding: 1.75rem 1.75rem 1.5rem;
		box-shadow: var( --pc-shadow-sm );
		position: sticky;
		top: 1rem;
	}

	.petland-cart-totals h2 {
		font-size: 1.15rem;
		font-weight: 700;
		margin: 0 0 1.25rem;
		padding-bottom: .85rem;
		border-bottom: 1px solid var( --pc-border );
		color: var( --pc-ink );
		letter-spacing: -.01em;
	}

	.petland-cart-totals table {
		width: 100%;
		margin: 0;
		border-collapse: separate;
		border-spacing: 0;
	}
	.petland-cart-totals table tr { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
	.petland-cart-totals table th,
	.petland-cart-totals table td {
		padding: .7rem .15rem;
		border: 0;
		font-size: .92rem;
		vertical-align: baseline;
		line-height: 1.4;
	}
	.petland-cart-totals table tr:not( :last-child ) {
		border-bottom: 1px dashed var( --pc-border );
	}
	.petland-cart-totals table th {
		color: var( --pc-ink-soft );
		font-weight: 500;
		text-align: left;
	}
	.petland-cart-totals table td {
		color: var( --pc-ink );
		text-align: right;
		font-weight: 600;
		white-space: nowrap;
	}
	.petland-cart-totals tr.order-total {
		border-bottom: 0 !important;
		margin-top: .5rem;
	}
	.petland-cart-totals tr.order-total th,
	.petland-cart-totals tr.order-total td {
		padding-top: 1rem;
		font-size: 1.2rem;
		font-weight: 800;
	}
	.petland-cart-totals tr.order-total td { color: var( --pc-primary ); }

	.petland-cart-totals .wc-proceed-to-checkout {
		margin-top: 1.25rem;
		padding: 0;
	}

	.petland-cart-totals .checkout-button {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: .5rem;
		width: 100%;
		padding: .95rem 1.25rem;
		font-size: 1rem;
		font-weight: 700;
		border-radius: 999px;
		background: linear-gradient( 135deg, var( --pc-primary ) 0%, #b91c2e 100%);
		color: #fff;
		text-decoration: none;
		border: 0;
		cursor: pointer;
		box-shadow: 0 4px 14px rgba( 220, 53, 69, .3 );
		transition: transform 180ms ease, box-shadow 180ms ease;
	}
	.petland-cart-totals .checkout-button:hover {
		transform: translateY( -1px );
		box-shadow: 0 6px 20px rgba( 220, 53, 69, .42 );
		color: #fff;
	}

	/* Empty cart illustration */
	.petland-cart-empty {
		text-align: center;
		padding: 3rem 1.5rem;
		background: var( --pc-sunken );
		border: 1px dashed var( --pc-border );
		border-radius: var( --pc-radius );
		color: var( --pc-ink-soft );
	}

	/* ---------- Mobile ---------- */

	@media (max-width: 768px) {
		.petland-cart-item {
			grid-template-columns: 72px 1fr;
			gap: .75rem;
			padding: .85rem;
		}
		.petland-cart-item-img { width: 72px; height: 72px; }
		.petland-cart-item-right {
			grid-column: 1 / -1;
			flex-direction: row;
			justify-content: space-between;
			align-items: center;
			padding-top: .5rem;
			border-top: 1px dashed var( --pc-border );
			margin-top: .25rem;
		}
		.petland-cart-totals {
			position: static;
			margin-top: 1.5rem;
		}
	}
