/* ============================================================
   CART + CHECKOUT
   ============================================================ */

.vt-cart-wrap { max-width: 1440px; margin: 0 auto; }
.vt-cart-wrap table.shop_table { width: 100%; border-collapse: collapse; border: none; }
.vt-cart-wrap table.shop_table thead tr { border-bottom: 1px solid var(--vt-border); }
.vt-cart-wrap table.shop_table th { font-family: var(--vt-font-mono); font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--vt-muted); padding: 12px 16px; font-weight: 400; text-align: left; background: var(--vt-surface); }
.vt-cart-wrap table.shop_table th.product-price,
.vt-cart-wrap table.shop_table th.product-subtotal { text-align: right; }
.vt-cart-wrap table.shop_table td { padding: 16px; border-bottom: 1px solid var(--vt-border); vertical-align: middle; background: var(--vt-bg); }

/* Remove */
.vt-cart-wrap .product-remove { width: 40px; }
.vt-cart-wrap .product-remove a.remove { font-size: 20px; color: var(--vt-muted) !important; line-height: 1; display: block; text-align: center; transition: color 0.1s; }
.vt-cart-wrap .product-remove a.remove:hover { color: var(--vt-red) !important; background: none !important; }

/* Thumbnail */
.vt-cart-wrap .product-thumbnail { width: 88px; }
.vt-cart-wrap .product-thumbnail img { width: 80px; height: 80px; object-fit: cover; display: block; border: 1px solid var(--vt-border); }

/* Product name cell — artist + title stacked */
.vt-cart-artist { font-family: var(--vt-font-mono); font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--vt-muted); display: block; margin-bottom: 3px; }
.vt-cart-product-name { font-family: var(--vt-font-body); font-size: 15px; font-weight: 600; letter-spacing: 0.02em; color: var(--vt-text); display: block; text-decoration: none; line-height: 1.3; }
a.vt-cart-product-name:hover { color: var(--vt-accent); }

/* Price + subtotal */
.vt-cart-wrap .product-price,
.vt-cart-wrap .product-subtotal { font-family: var(--vt-font-mono); font-size: 13px; color: var(--vt-text); text-align: right; white-space: nowrap; }
.vt-cart-wrap .product-quantity .quantity input { font-family: var(--vt-font-mono) !important; background: var(--vt-surface2) !important; border: 1px solid var(--vt-border) !important; color: var(--vt-text) !important; padding: 8px !important; width: 52px !important; text-align: center !important; font-size: 13px !important; }
.vt-cart-wrap .product-quantity .quantity input:focus { border-color: var(--vt-accent) !important; outline: none !important; }
.vt-cart-wrap td.actions { border-top: 1px solid var(--vt-border); padding: 16px; }
.vt-cart-wrap td.actions .coupon { display: flex; gap: 0; align-items: center; float: left; }
.vt-cart-wrap td.actions .coupon input { font-family: var(--vt-font-mono) !important; background: var(--vt-surface2) !important; border: 1px solid var(--vt-border) !important; border-right: none !important; color: var(--vt-text) !important; padding: 10px 14px !important; font-size: 12px !important; width: 200px !important; }
.vt-cart-wrap td.actions .coupon input:focus { border-color: var(--vt-accent) !important; outline: none !important; }
.vt-cart-wrap td.actions .coupon .button { font-family: var(--vt-font-mono) !important; font-size: 10px !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; background: none !important; border: 1px solid var(--vt-border) !important; color: var(--vt-muted) !important; padding: 10px 16px !important; cursor: pointer !important; }
.vt-cart-wrap td.actions .coupon .button:hover { border-color: var(--vt-text) !important; color: var(--vt-text) !important; }
.vt-btn-update-cart { font-family: var(--vt-font-mono) !important; font-size: 10px !important; letter-spacing: 0.14em !important; text-transform: uppercase !important; background: none !important; border: 1px solid var(--vt-border) !important; color: var(--vt-muted) !important; padding: 10px 16px !important; cursor: pointer !important; float: right !important; }
.vt-btn-update-cart:hover { border-color: var(--vt-text) !important; color: var(--vt-text) !important; }
.vt-cart-wrap .cart-collaterals { display: flex; justify-content: flex-end; border-top: 1px solid var(--vt-border); padding: 0; }
.vt-cart-wrap .cross-sells { display: none; }
.cart_totals { width: 360px; background: var(--vt-surface) !important; border-left: 1px solid var(--vt-border) !important; padding: 0 !important; }
.cart_totals h2 { font-family: var(--vt-font-mono) !important; font-size: 9px !important; letter-spacing: 0.22em !important; text-transform: uppercase !important; color: var(--vt-muted) !important; font-weight: 400 !important; padding: 12px 16px !important; margin: 0 !important; border-bottom: 1px solid var(--vt-border) !important; }
.cart_totals table { width: 100%; border-collapse: collapse; font-family: var(--vt-font-mono); font-size: 12px; }
.cart_totals table tr { border-bottom: 1px solid var(--vt-border); }
.cart_totals table th, .cart_totals table td { padding: 12px 16px; text-align: left; vertical-align: top; }
.cart_totals table th { color: var(--vt-muted); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 400; width: 40%; }
.cart_totals table td { color: var(--vt-text); text-align: right; }
.cart_totals table .order-total th, .cart_totals table .order-total td { font-size: 13px; padding-top: 16px; padding-bottom: 16px; }
.cart_totals table .order-total td .woocommerce-Price-amount { font-family: var(--vt-font-display); font-size: 28px; color: var(--vt-text); }
.cart_totals .wc-proceed-to-checkout { padding: 16px; border-top: 1px solid var(--vt-border); }
.cart_totals .wc-proceed-to-checkout .checkout-button { display: block !important; font-family: var(--vt-font-mono) !important; font-size: 11px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; background: var(--vt-accent) !important; color: #0a0a0a !important; border: none !important; padding: 16px !important; text-align: center !important; cursor: pointer !important; transition: opacity 0.15s ease !important; }
.cart_totals .wc-proceed-to-checkout .checkout-button:hover { opacity: 0.85 !important; }
.cart-empty { font-family: var(--vt-font-display); font-size: 32px; letter-spacing: 0.06em; color: var(--vt-muted); padding: 60px 24px; text-align: center; }
.return-to-shop .button { font-family: var(--vt-font-mono) !important; font-size: 10px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; background: none !important; border: 1px solid var(--vt-accent) !important; color: var(--vt-accent) !important; padding: 12px 24px !important; }

/* Checkout */
.vt-checkout-wrap { max-width: 1440px; margin: 0 auto; }

/* Two-column layout */
.vt-checkout-form { max-width: 1440px; margin: 0 auto; }

.vt-checkout-layout {
	display: grid;
	grid-template-columns: 1fr 440px;
	align-items: start;
	min-height: 60vh;
}

.vt-checkout-left {
	border-right: 1px solid var(--vt-border);
	padding: var(--vt-gap-xl) var(--vt-gap-xl) var(--vt-gap-xl) var(--vt-gap-lg);
}

.vt-checkout-right {
	padding: var(--vt-gap-xl) var(--vt-gap-lg);
	position: sticky;
	top: var(--vt-header-height, 56px);
}

/* Section titles */
.vt-checkout-section-title,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3 {
	font-family: var(--vt-font-display) !important;
	font-size: clamp(20px, 2.5vw, 28px) !important;
	letter-spacing: 0.06em !important;
	color: var(--vt-text) !important;
	margin: 0 0 var(--vt-gap-lg) !important;
	padding: 0 !important;
	border: none !important;
	font-weight: 400 !important;
}

/* Shipping section — add top spacing + divider */
.woocommerce-shipping-fields {
	margin-top: var(--vt-gap-xl) !important;
	padding-top: var(--vt-gap-xl) !important;
	border-top: 1px solid var(--vt-border) !important;
}

/* Hide coupon notice — cleaner without it */
.woocommerce-form-coupon-toggle {
	display: none !important;
}

/* Ship to different address toggle */
#ship-to-different-address {
	margin-bottom: var(--vt-gap-lg) !important;
}
.woocommerce-checkout .form-row { margin-bottom: 14px; }
.woocommerce-checkout label { font-family: var(--vt-font-mono) !important; font-size: 9px !important; letter-spacing: 0.2em !important; text-transform: uppercase !important; color: var(--vt-muted) !important; margin-bottom: 6px !important; display: block !important; font-weight: 400 !important; }
.woocommerce-checkout label .required { color: var(--vt-red-text) !important; }
.woocommerce-checkout input.input-text, .woocommerce-checkout select, .woocommerce-checkout textarea { background: var(--vt-surface2) !important; border: 1px solid var(--vt-border) !important; color: var(--vt-text) !important; font-family: var(--vt-font-body) !important; font-size: 14px !important; padding: 10px 14px !important; width: 100% !important; height: auto !important; box-shadow: none !important; border-radius: 0 !important; }
.woocommerce-checkout input.input-text:focus, .woocommerce-checkout select:focus, .woocommerce-checkout textarea:focus { border-color: var(--vt-accent) !important; outline: none !important; box-shadow: none !important; }
.woocommerce-checkout select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236e6a63'/%3E%3C/svg%3E") !important; background-repeat: no-repeat !important; background-position: right 14px center !important; padding-right: 36px !important; }
.woocommerce-checkout .woocommerce-validated input.input-text { border-color: var(--vt-grade-nm-border) !important; }
.woocommerce-checkout .woocommerce-invalid input.input-text { border-color: var(--vt-red-text) !important; }
.woocommerce-checkout .form-row .woocommerce-validated::after, .woocommerce-checkout .form-row .woocommerce-invalid::after { display: none; }
#ship-to-different-address label { font-family: var(--vt-font-body) !important; font-size: 14px !important; text-transform: none !important; color: var(--vt-text) !important; cursor: pointer; display: flex; align-items: center; gap: 10px; }
#ship-to-different-address input[type="checkbox"] { width: 14px !important; height: 14px !important; accent-color: var(--vt-accent); }
.vt-checkout-review { padding: 0 0 24px; }
#order_review table.shop_table { width: 100%; border-collapse: collapse; }
#order_review table.shop_table th { font-family: var(--vt-font-mono); font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vt-muted); padding: 12px 28px; font-weight: 400; border-bottom: 1px solid var(--vt-border); text-align: left; }
#order_review table.shop_table td { padding: 14px 28px; border-bottom: 1px solid var(--vt-border); font-family: var(--vt-font-body); font-size: 14px; color: var(--vt-text); vertical-align: middle; }
#order_review table.shop_table td.product-total, #order_review table.shop_table th.product-total { text-align: right; }
#order_review table.shop_table .woocommerce-Price-amount { font-family: var(--vt-font-mono); font-size: 13px; color: var(--vt-text); }

/* Artist above product name in checkout order review */
.vt-checkout-artist { font-family: var(--vt-font-mono); font-size: 9px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--vt-muted); display: block; margin-bottom: 3px; }
#order_review table.shop_table td.product-name { white-space: normal; }
#order_review table.shop_table .vt-checkout-album { white-space: nowrap; display: block; }

/* Quantity inline below price */
.vt-checkout-qty { font-family: var(--vt-font-mono); font-size: 10px; letter-spacing: 0.1em; color: var(--vt-muted); display: block; margin-top: 2px; }
#order_review table.shop_table .order-total td .woocommerce-Price-amount { font-family: var(--vt-font-display); font-size: 28px; }
/* Shipping methods in order review */
#order_review .shipping th { font-family: var(--vt-font-mono); font-size: 9px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--vt-muted); font-weight: 400; vertical-align: top; padding-top: 4px; }
#order_review .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
#order_review .woocommerce-shipping-methods li { display: flex; align-items: center; gap: 8px; }
#order_review .woocommerce-shipping-methods li label { font-family: var(--vt-font-body) !important; font-size: 13px !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--vt-text) !important; cursor: pointer; margin: 0 !important; display: flex !important; align-items: center !important; gap: 8px !important; }
#order_review .woocommerce-shipping-methods li input[type="radio"] { accent-color: var(--vt-accent); width: 14px; height: 14px; flex-shrink: 0; margin: 0; }

#payment { background: var(--vt-surface) !important; border-radius: 0 !important; border-top: 1px solid var(--vt-border); }
#payment ul.payment_methods { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--vt-border) !important; }
#payment ul.payment_methods li { padding: 14px 28px; border-bottom: 1px solid var(--vt-border); display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
#payment ul.payment_methods li:last-child { border-bottom: none; }
#payment ul.payment_methods li label { font-family: var(--vt-font-body) !important; font-size: 14px !important; text-transform: none !important; color: var(--vt-text) !important; cursor: pointer; display: flex; align-items: center; gap: 10px; margin: 0 !important; }
#payment ul.payment_methods li input[type="radio"] { accent-color: var(--vt-accent); width: 14px; height: 14px; flex-shrink: 0; }
#payment ul.payment_methods li img { height: 20px; width: auto; display: inline-block; vertical-align: middle; margin-left: 4px; opacity: 0.8; }
.payment_box.payment_method_pensopay_gateway { display: none !important; }
#payment .payment_box { background: var(--vt-surface2) !important; border: none !important; padding: 12px 28px !important; font-family: var(--vt-font-body) !important; font-size: 13px !important; color: var(--vt-muted) !important; border-radius: 0 !important; margin: 0 !important; }
#payment .payment_box::before { display: none !important; }
#payment .place-order { padding: 20px 28px !important; background: none !important; }
.woocommerce-terms-and-conditions-wrapper { display: none !important; }
.woocommerce-terms-and-conditions-wrapper label { font-family: var(--vt-font-body) !important; font-size: 13px !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--vt-muted) !important; display: flex !important; align-items: flex-start !important; gap: 10px !important; cursor: pointer; }
.woocommerce-terms-and-conditions-wrapper input[type="checkbox"] { width: 14px !important; height: 14px !important; flex-shrink: 0; margin-top: 2px; accent-color: var(--vt-accent); }
.woocommerce-terms-and-conditions-wrapper a { color: var(--vt-accent); }
#place_order { font-family: var(--vt-font-mono) !important; font-size: 12px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; background: var(--vt-accent) !important; color: #0a0a0a !important; border: none !important; padding: 18px 32px !important; width: 100% !important; cursor: pointer !important; transition: opacity 0.15s ease !important; display: block !important; }
#place_order:hover { opacity: 0.85 !important; }
.woocommerce-order { max-width: 1440px; margin: 0 auto; padding: 40px 28px; }
.woocommerce-order .woocommerce-order-overview { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; list-style: none; margin: 0 0 32px; padding: 0; border: 1px solid var(--vt-border); }
.woocommerce-order .woocommerce-order-overview li { padding: 16px 20px; border-right: 1px solid var(--vt-border); font-family: var(--vt-font-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vt-muted); }
.woocommerce-order .woocommerce-order-overview li:last-child { border-right: none; }
.woocommerce-order .woocommerce-order-overview li strong { display: block; font-family: var(--vt-font-display); font-size: 20px; color: var(--vt-text); letter-spacing: 0.04em; margin-top: 4px; font-weight: 400; }
.woocommerce-order p { font-family: var(--vt-font-body); font-size: 15px; color: var(--vt-muted); margin-bottom: 24px; }

@media (max-width: 768px) {
	.vt-cart-wrap table.shop_table { display: block; }
	.vt-cart-wrap table.shop_table thead { display: none; }
	.vt-cart-wrap table.shop_table tbody, .vt-cart-wrap table.shop_table tr, .vt-cart-wrap table.shop_table td { display: block; width: 100%; }
	.vt-cart-wrap table.shop_table td { text-align: right; padding: 8px 16px; }
	.vt-cart-wrap table.shop_table td::before { content: attr(data-title); font-family: var(--vt-font-mono); font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--vt-muted); float: left; }
	.vt-cart-wrap table.shop_table td.product-remove { text-align: right; border-bottom: none; padding-bottom: 0; }
	.vt-cart-wrap table.shop_table td.product-thumbnail { display: none; }
	.vt-cart-wrap .cart-collaterals { justify-content: stretch; }
	.cart_totals { width: 100%; }
	.vt-cart-wrap td.actions .coupon { float: none; margin-bottom: 12px; }
	.vt-btn-update-cart { float: none !important; width: 100% !important; text-align: center !important; }
}

@media (max-width: 1024px) {
	.vt-checkout-layout { grid-template-columns: 1fr; }
	.vt-checkout-left { border-right: none; border-bottom: 1px solid var(--vt-border); }
	.vt-checkout-right { position: static; padding-top: var(--vt-gap-lg); }
	.woocommerce-order .woocommerce-order-overview { grid-template-columns: repeat(2, 1fr); }
	.woocommerce-order .woocommerce-order-overview li:nth-child(2n) { border-right: none; }
	.woocommerce-order .woocommerce-order-overview li:nth-child(1), .woocommerce-order .woocommerce-order-overview li:nth-child(2) { border-bottom: 1px solid var(--vt-border); }
}

@media (max-width: 640px) {
	.vt-checkout-col { padding: 24px 20px; }
	#order_review table.shop_table th, #order_review table.shop_table td { padding: 12px 20px; }
	#payment .place-order { padding: 16px 20px !important; }
	.woocommerce-order .woocommerce-order-overview { grid-template-columns: 1fr; }
	.woocommerce-order .woocommerce-order-overview li { border-right: none; border-bottom: 1px solid var(--vt-border); }
}
