/* ============================================================
   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 {
	border-top: 1px solid var(--vt-border) !important;
	margin-top: 24px !important;
	margin-bottom: 24px !important;
	padding-top: 20px !important;
}

.woocommerce-privacy-policy-text p {
	font-family: var(--vt-font-body) !important;
	font-size: 13px !important;
	line-height: 1.6 !important;
	color: var(--vt-muted) !important;
	margin: 0 0 16px !important;
}

.woocommerce-privacy-policy-text a,
.woocommerce-terms-and-conditions-wrapper a {
	color: var(--vt-accent) !important;
	text-decoration: underline !important;
}

.woocommerce-terms-and-conditions-wrapper label {
	font-family: var(--vt-font-body) !important;
	font-size: 14px !important;
	line-height: 1.5 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	color: var(--vt-text) !important;
	display: flex !important;
	align-items: flex-start !important;
	gap: 10px !important;
	cursor: pointer;
	margin: 0 !important;
}

.woocommerce-terms-and-conditions-wrapper input[type="checkbox"] { width: 16px !important; height: 16px !important; flex-shrink: 0; margin-top: 2px; accent-color: var(--vt-accent); }

.woocommerce-terms-and-conditions-wrapper abbr.required {
	color: var(--vt-red-text) !important;
	text-decoration: none !important;
	border-bottom: none !important;
	margin-left: 2px;
	font-size: 14px;
	cursor: help;
}

/* The inline "expand terms" preview box WooCommerce toggles open when the
   Vilkår-link is clicked. Ships as raw wp:heading/wp:paragraph markup from
   the Handelsbetingelser page with no class of its own to hook -- style
   the tags directly, scoped to this box only, on a much smaller scale
   than .vt-entry-content since it renders inside a fixed 200px scroll
   area (WooCommerce sets that via inline style, not ours to change). */
.woocommerce-terms-and-conditions {
	background: var(--vt-surface) !important;
	border: 1px solid var(--vt-border) !important;
	padding: 16px !important;
	margin-top: 12px !important;
	font-family: var(--vt-font-body);
	font-size: 13px;
	line-height: 1.5;
	color: var(--vt-muted);
}

.woocommerce-terms-and-conditions h2 {
	font-family: var(--vt-font-mono);
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--vt-text);
	margin: 16px 0 6px;
	line-height: 1.3;
}

.woocommerce-terms-and-conditions h2:first-child { margin-top: 0; }

.woocommerce-terms-and-conditions p {
	font-family: var(--vt-font-body) !important;
	font-size: 13px !important;
	color: var(--vt-muted) !important;
	margin: 0 0 10px !important;
}

.woocommerce-terms-and-conditions 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; }

/* Order received / thank-you page: details table + customer address */
.woocommerce-order-details__title,
.woocommerce-column__title {
	margin: 0 0 20px;
	font-weight: 400;
	letter-spacing: 0.04em;
}

.woocommerce-table.woocommerce-table--order-details {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 32px;
}
.woocommerce-table--order-details thead tr { border-bottom: 1px solid var(--vt-border); }
.woocommerce-table--order-details th { font-family: var(--vt-font-mono); font-size: 9px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--vt-muted); font-weight: 400; padding: 12px 16px; text-align: left; background: var(--vt-surface); }
.woocommerce-table--order-details th.product-total { text-align: right; }
.woocommerce-table--order-details tbody td { padding: 16px; border-bottom: 1px solid var(--vt-border); font-family: var(--vt-font-body); font-size: 15px; color: var(--vt-text); vertical-align: top; }
.woocommerce-table--order-details tbody .product-name a { color: var(--vt-text); text-decoration: none; transition: var(--vt-transition-colour); }
.woocommerce-table--order-details tbody .product-name a:hover { color: var(--vt-accent); }
.woocommerce-table--order-details tbody .product-name .product-quantity { font-family: var(--vt-font-mono); font-size: 12px; font-weight: 400; color: var(--vt-muted); margin-left: 4px; }
.woocommerce-table--order-details tbody td.product-total { text-align: right; font-family: var(--vt-font-mono); font-size: 13px; white-space: nowrap; }

/* Totals footer: label/value rows, order total emphasised */
.woocommerce-table--order-details tfoot th,
.woocommerce-table--order-details tfoot td { padding: 12px 16px; border-bottom: 1px solid var(--vt-border); font-family: var(--vt-font-mono); font-size: 12px; }
.woocommerce-table--order-details tfoot th { color: var(--vt-muted); font-weight: 400; text-align: left; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; width: 1%; }
.woocommerce-table--order-details tfoot td { color: var(--vt-text); text-align: right; }
.woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-table--order-details tfoot tr:last-child td { border-bottom: none; }
.woocommerce-table--order-details tfoot tr.order_total th,
.woocommerce-table--order-details tfoot tr.order_total td { padding-top: 16px; padding-bottom: 16px; font-size: 13px; }
.woocommerce-table--order-details tfoot tr.order_total td { font-family: var(--vt-font-display); font-size: 28px; color: var(--vt-text); }
.woocommerce-table--order-details tfoot tr.order-actions td { text-align: left; }
.woocommerce-table--order-details tfoot tr.order-actions .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; text-decoration: none !important; display: inline-block; margin-right: 8px; }
.woocommerce-table--order-details tfoot tr.order-actions .button:hover { border-color: var(--vt-text) !important; color: var(--vt-text) !important; }
.woocommerce-table--order-details tr.product-purchase-note td { font-family: var(--vt-font-body); font-size: 13px; color: var(--vt-muted); }
p.order-again { margin: 0 0 32px; }
p.order-again .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; text-decoration: none !important; display: inline-block; transition: var(--vt-transition-opacity); }
p.order-again .button:hover { opacity: 0.85 !important; }

/* Info / error notices reachable on order-received (mismatched session,
   unverified guest email, failed payment) -- the success message
   (.woocommerce-notice--success / .woocommerce-thankyou-order-received)
   is deliberately left alone, it already inherits the correct plain
   muted-paragraph look from ".woocommerce-order p" above. */
.woocommerce-info,
.woocommerce-notice--error,
.woocommerce-thankyou-order-failed {
	margin: 0 0 24px;
	padding: 16px 20px;
	font-family: var(--vt-font-body);
	font-size: 14px;
	line-height: 1.5;
	background: var(--vt-surface);
	border: 1px solid var(--vt-border);
	border-left: 3px solid var(--vt-muted);
	color: var(--vt-text);
	list-style: none;
}
.woocommerce-notice--error,
.woocommerce-thankyou-order-failed { border-left-color: var(--vt-red); color: var(--vt-red-text); }
.woocommerce-info a,
.woocommerce-notice--error a { color: inherit; text-decoration: underline; }

.woocommerce-thankyou-order-failed-actions { margin: 0 0 24px; display: flex; gap: 12px; }
.woocommerce-thankyou-order-failed-actions .button { font-family: var(--vt-font-mono) !important; font-size: 10px !important; letter-spacing: 0.16em !important; text-transform: uppercase !important; text-decoration: none !important; padding: 12px 24px !important; display: inline-block; }
.woocommerce-thankyou-order-failed-actions .button.pay { background: var(--vt-accent) !important; color: #0a0a0a !important; border: none !important; }
.woocommerce-thankyou-order-failed-actions .button.pay:hover { opacity: 0.85; }
.woocommerce-thankyou-order-failed-actions .button:not(.pay) { background: none !important; border: 1px solid var(--vt-border) !important; color: var(--vt-text) !important; }
.woocommerce-thankyou-order-failed-actions .button:not(.pay):hover { border-color: var(--vt-text) !important; }

/* Login form shown when a logged-in session doesn't match the order owner */
.woocommerce-form-login,
form.login { max-width: 400px; margin-top: 8px; }
.woocommerce-form-login .form-row { margin-bottom: 14px; }
.woocommerce-form-login 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-form-login input.input-text,
.woocommerce-form-login input[type="password"] { 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; border-radius: 0 !important; }
.woocommerce-form-login input.input-text:focus,
.woocommerce-form-login input[type="password"]:focus { border-color: var(--vt-accent) !important; outline: none !important; }
.woocommerce-form-login .woocommerce-form-login__submit { 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: 14px 24px !important; cursor: pointer !important; }
.woocommerce-form-login .woocommerce-form-login__submit:hover { opacity: 0.85 !important; }
.woocommerce-form-login__rememberme { font-family: var(--vt-font-body) !important; font-size: 13px !important; text-transform: none !important; color: var(--vt-muted) !important; display: flex !important; align-items: center; gap: 8px; }
.woocommerce-form-login input[type="checkbox"] { accent-color: var(--vt-accent); width: 14px; height: 14px; }
.woocommerce-form-login .lost_password a { color: var(--vt-muted); font-family: var(--vt-font-body); font-size: 13px; }
.woocommerce-form-login .lost_password a:hover { color: var(--vt-accent); }

/* Billing / shipping address */
.woocommerce-customer-details { padding-top: var(--vt-gap-xl); border-top: 1px solid var(--vt-border); }
.woocommerce-customer-details .woocommerce-column__title { font-size: clamp(24px, 3vw, 40px); }
.woocommerce-columns--addresses { display: grid; grid-template-columns: 1fr 1fr; gap: var(--vt-gap-xl); }
.woocommerce-customer-details address { font-style: normal; font-family: var(--vt-font-body); font-size: 15px; line-height: 1.6; color: var(--vt-text); }
.woocommerce-customer-details address p { margin: 4px 0 0; color: var(--vt-muted); }

@media (max-width: 640px) {
	.woocommerce-columns--addresses { grid-template-columns: 1fr; gap: var(--vt-gap-lg); }
}

@media (max-width: 768px) {
	.vt-cart-wrap table.shop_table, .woocommerce-table--order-details { display: block; }
	.vt-cart-wrap table.shop_table thead, .woocommerce-table--order-details 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%; }
	.woocommerce-table--order-details tbody, .woocommerce-table--order-details tfoot, .woocommerce-table--order-details tr, .woocommerce-table--order-details th, .woocommerce-table--order-details td { display: block; width: 100%; text-align: left !important; }
	.woocommerce-table--order-details tbody td.product-total { text-align: left !important; }
	.woocommerce-table--order-details tfoot th { padding-bottom: 2px; }
	.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); }
}
