/* Cart and Checkout presentation only. Native WooCommerce forms, tables, hooks,
   calculations, fragments, validation and submission controls remain intact. */
body.vm-commerce { background: var(--vm-white) !important; }
body.vm-commerce .vm-header-bg { display: none !important; }
body.vm-commerce #content { padding-top: 0 !important; background: var(--vm-white) !important; }
body.vm-commerce #content > .ast-container { display: block !important; width: 100% !important; max-width: calc(var(--vm-width-page) + 2 * var(--vm-gutter)) !important; margin-inline: auto !important; padding: 32px var(--vm-gutter) 48px !important; }
body.vm-commerce #primary { float: none !important; width: 100% !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; }
body.vm-commerce #primary article.page { margin: 0 !important; padding: 0 !important; }
body.vm-commerce #primary .entry-header { margin: 0 0 28px !important; }
body.vm-commerce #primary .entry-title { margin: 0 !important; color: var(--vm-ink) !important; font-size: 2rem !important; line-height: 1.2 !important; font-weight: 700 !important; letter-spacing: -.02em !important; }
body.vm-commerce #primary .entry-content { max-width: none !important; margin: 0 !important; color: var(--vm-body) !important; font-size: 1rem !important; line-height: 1.6 !important; overflow-wrap: anywhere !important; }
body.vm-commerce #primary :is(a,button,input,select,textarea):focus-visible { outline: 3px solid var(--vm-blue) !important; outline-offset: 2px !important; box-shadow: 0 0 0 2px white !important; }
body.vm-commerce #primary :is(.woocommerce-error,.woocommerce-info,.woocommerce-message) { margin: 0 0 24px !important; padding: 14px 16px 14px 44px !important; border: 0 !important; border-left: 3px solid var(--vm-blue) !important; border-radius: 0 !important; background: var(--vm-surface) !important; color: var(--vm-body) !important; box-shadow: none !important; }
body.vm-commerce #primary .woocommerce-error { border-left-color: var(--vm-error) !important; }
body.vm-commerce #primary :is(.button,button.button,input.button) { min-height: 44px !important; padding: 10px 16px !important; border: 1px solid var(--vm-blue) !important; border-radius: 2px !important; background: var(--vm-blue) !important; color: white !important; font-size: .9375rem !important; line-height: 1.4 !important; font-weight: 600 !important; box-shadow: none !important; white-space: normal !important; }
body.vm-commerce #primary :is(.button,button.button,input.button):hover { border-color: var(--vm-blue-hover) !important; background: var(--vm-blue-hover) !important; color: white !important; }
body.vm-commerce #primary :is(.button,button.button,input.button):disabled { opacity: .5 !important; }

/* Cart: quiet product rows, integrated controls and a deliberate totals panel. */
body.vm-commerce-cart #primary .woocommerce { width: 100% !important; }
body.vm-commerce-cart #primary .woocommerce-cart-form { margin: 0 0 32px !important; }
body.vm-commerce-cart #primary table.shop_table { width: 100% !important; margin: 0 !important; border: 1px solid var(--vm-border) !important; border-collapse: collapse !important; border-radius: 0 !important; background: white !important; }
body.vm-commerce-cart #primary table.shop_table :is(th,td) { padding: 16px !important; border: 0 !important; border-bottom: 1px solid var(--vm-border) !important; background: white !important; color: var(--vm-body) !important; text-align: start !important; vertical-align: middle !important; }
body.vm-commerce-cart #primary table.shop_table th { padding-block: 12px !important; background: var(--vm-surface) !important; color: var(--vm-ink) !important; font-size: .8125rem !important; line-height: 1.4 !important; font-weight: 650 !important; letter-spacing: .04em !important; text-transform: uppercase !important; }
body.vm-commerce-cart #primary table.shop_table td.product-name a { color: var(--vm-ink) !important; font-weight: 600 !important; text-decoration: none !important; }
body.vm-commerce-cart #primary table.shop_table td.product-name a:hover { color: var(--vm-blue-hover) !important; text-decoration: underline !important; }
body.vm-commerce-cart #primary table.shop_table .product-thumbnail { width: 96px !important; }
body.vm-commerce-cart #primary table.shop_table .product-thumbnail img { display: block !important; width: 72px !important; height: 72px !important; margin: 0 !important; padding: 4px !important; border: 1px solid var(--vm-border) !important; border-radius: 0 !important; background: white !important; object-fit: contain !important; }
body.vm-commerce-cart #primary table.shop_table .product-remove { width: 56px !important; }
body.vm-commerce-cart #primary table.shop_table a.remove { display: inline-grid !important; place-items: center !important; width: 44px !important; height: 44px !important; border: 1px solid var(--vm-control-border) !important; border-radius: 2px !important; color: var(--vm-muted) !important; font-size: 1.25rem !important; line-height: 1 !important; text-decoration: none !important; }
body.vm-commerce-cart #primary table.shop_table a.remove:hover { border-color: var(--vm-error) !important; background: white !important; color: var(--vm-error) !important; }
body.vm-commerce-cart #primary .quantity .qty { width: 68px !important; min-height: 44px !important; margin: 0 !important; padding: 8px !important; border: 1px solid var(--vm-control-border) !important; border-radius: 2px !important; background: white !important; color: var(--vm-ink) !important; font-size: 1rem !important; }
body.vm-commerce-cart #primary table.shop_table td.actions { padding: 16px !important; text-align: end !important; }
body.vm-commerce-cart #primary .cart-collaterals { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(320px,420px) !important; gap: 32px !important; width: 100% !important; }
body.vm-commerce-cart #primary .cart-collaterals::before,
body.vm-commerce-cart #primary .cart-collaterals::after { display: none !important; }
body.vm-commerce-cart #primary .cart_totals { float: none !important; grid-column: 2 !important; width: 100% !important; margin: 0 !important; padding: 24px !important; border: 1px solid var(--vm-border) !important; background: var(--vm-surface) !important; }
body.vm-commerce-cart #primary .cart_totals h2 { margin: 0 0 20px !important; color: var(--vm-ink) !important; font-size: 1.5rem !important; line-height: 1.3 !important; }
body.vm-commerce-cart #primary .cart_totals table { border: 0 !important; }
body.vm-commerce-cart #primary .cart_totals table :is(th,td) { padding: 14px 0 !important; border-bottom: 1px solid var(--vm-border) !important; background: transparent !important; vertical-align: top !important; }
body.vm-commerce-cart #primary .cart_totals table th { width: 38% !important; color: var(--vm-ink) !important; font-weight: 600 !important; }
body.vm-commerce-cart #primary .cart_totals .order-total td { color: var(--vm-ink) !important; font-size: 1.125rem !important; }
body.vm-commerce-cart #primary .wc-proceed-to-checkout { padding: 20px 0 0 !important; }
body.vm-commerce-cart #primary .wc-proceed-to-checkout .checkout-button { display: flex !important; justify-content: center !important; width: 100% !important; margin: 0 !important; }
body.vm-commerce-cart #primary .shipping-calculator-button { display: inline-flex !important; align-items: center !important; min-height: 44px !important; color: var(--vm-blue) !important; }
body.vm-commerce-cart #primary .return-to-shop { margin: 20px 0 0 !important; }

/* Checkout: native form on the left, sticky-looking but non-sticky order card. */
body.vm-commerce-checkout #primary form.checkout { display: grid !important; grid-template-columns: minmax(0,1.25fr) minmax(340px,.75fr) !important; column-gap: 48px !important; align-items: start !important; }
body.vm-commerce-checkout #primary form.checkout::before,
body.vm-commerce-checkout #primary form.checkout::after { display: none !important; }
body.vm-commerce-checkout #primary form.checkout > .col2-set { float: none !important; grid-column: 1 !important; grid-row: 1 / 3 !important; width: 100% !important; min-width: 0 !important; margin: 0 !important; }
body.vm-commerce-checkout #primary form.checkout > .col2-set :is(.col-1,.col-2) { float: none !important; width: 100% !important; margin: 0 !important; }
body.vm-commerce-checkout #primary form.checkout > #order_review_heading { grid-column: 2 !important; grid-row: 1 !important; width: 100% !important; margin: 0 !important; padding: 24px 24px 16px !important; border: 1px solid var(--vm-border) !important; border-bottom: 0 !important; background: var(--vm-surface) !important; }
body.vm-commerce-checkout #primary form.checkout > #order_review { float: none !important; grid-column: 2 !important; grid-row: 2 !important; width: 100% !important; min-width: 0 !important; margin: 0 !important; padding: 0 24px 24px !important; border: 1px solid var(--vm-border) !important; border-top: 0 !important; background: var(--vm-surface) !important; }
body.vm-commerce-checkout #primary .woocommerce-billing-fields > h3,
body.vm-commerce-checkout #primary #ship-to-different-address,
body.vm-commerce-checkout #primary #order_review_heading { color: var(--vm-ink) !important; font-size: 1.375rem !important; line-height: 1.3 !important; font-weight: 650 !important; }
body.vm-commerce-checkout #primary .woocommerce-billing-fields > h3 { margin: 0 0 20px !important; padding-bottom: 14px !important; border-bottom: 1px solid var(--vm-border) !important; }
body.vm-commerce-checkout #primary #ship-to-different-address { margin: 28px 0 16px !important; padding-top: 24px !important; border-top: 1px solid var(--vm-border) !important; }
body.vm-commerce-checkout #primary .form-row { float: none !important; width: 100% !important; margin: 0 0 18px !important; padding: 0 !important; }
body.vm-commerce-checkout #primary .form-row-first,
body.vm-commerce-checkout #primary .form-row-last { display: inline-block !important; width: calc(50% - 8px) !important; vertical-align: top !important; }
body.vm-commerce-checkout #primary .form-row-first { margin-right: 12px !important; }
body.vm-commerce-checkout #primary .form-row label { display: block !important; margin: 0 0 6px !important; color: var(--vm-ink) !important; font-size: .875rem !important; line-height: 1.5 !important; font-weight: 600 !important; }
body.vm-commerce-checkout #primary .form-row :is(input.input-text,textarea,select:not(.select2-hidden-accessible)) { width: 100% !important; min-height: 44px !important; margin: 0 !important; padding: 9px 11px !important; border: 1px solid var(--vm-control-border) !important; border-radius: 2px !important; background: white !important; color: var(--vm-ink) !important; font-size: 1rem !important; line-height: 1.5 !important; box-shadow: none !important; }
body.vm-commerce-checkout #primary .form-row textarea { min-height: 112px !important; resize: vertical !important; }
body.vm-commerce-checkout #primary .select2-container { width: 100% !important; }
body.vm-commerce-checkout #primary .select2-container .select2-selection--single { min-height: 44px !important; border: 1px solid var(--vm-control-border) !important; border-radius: 2px !important; background: white !important; }
body.vm-commerce-checkout #primary .select2-container .select2-selection__rendered { padding: 7px 36px 7px 11px !important; color: var(--vm-ink) !important; line-height: 28px !important; }
body.vm-commerce-checkout #primary .select2-container .select2-selection__arrow { height: 42px !important; }
body.vm-commerce-checkout #primary .form-row.woocommerce-invalid :is(input.input-text,textarea,.select2-selection) { border-color: var(--vm-error) !important; }
body.vm-commerce-checkout #primary .form-row.woocommerce-validated :is(input.input-text,textarea,.select2-selection) { border-color: var(--vm-control-border) !important; }
body.vm-commerce-checkout #primary table.shop_table { width: 100% !important; margin: 0 0 20px !important; border: 0 !important; border-collapse: collapse !important; border-radius: 0 !important; background: transparent !important; }
body.vm-commerce-checkout #primary table.shop_table :is(th,td) { padding: 12px 0 !important; border: 0 !important; border-bottom: 1px solid var(--vm-border) !important; background: transparent !important; color: var(--vm-body) !important; text-align: start !important; vertical-align: top !important; }
body.vm-commerce-checkout #primary table.shop_table :is(th,td):last-child { width: 34% !important; padding-left: 12px !important; text-align: end !important; font-variant-numeric: tabular-nums !important; }
body.vm-commerce-checkout #primary table.shop_table thead th { color: var(--vm-ink) !important; font-size: .8125rem !important; letter-spacing: .04em !important; text-transform: uppercase !important; }
body.vm-commerce-checkout #primary table.shop_table .order-total :is(th,td) { color: var(--vm-ink) !important; font-size: 1.0625rem !important; }
body.vm-commerce-checkout #primary #payment { margin: 0 !important; border-radius: 0 !important; background: white !important; }
body.vm-commerce-checkout #primary #payment ul.payment_methods { padding: 16px !important; border-bottom: 1px solid var(--vm-border) !important; }
body.vm-commerce-checkout #primary #payment div.form-row { margin: 0 !important; padding: 16px !important; }
body.vm-commerce-checkout #primary #payment .place-order { padding: 16px !important; }
body.vm-commerce-checkout #primary #payment #place_order { float: none !important; width: 100% !important; margin: 16px 0 0 !important; }
body.vm-commerce-checkout #primary .woocommerce-terms-and-conditions-wrapper { font-size: .875rem !important; line-height: 1.5 !important; }

@media (max-width: 767px) {
	body.vm-commerce #content > .ast-container { padding-top: 24px !important; padding-bottom: 40px !important; }
	body.vm-commerce #primary .entry-header { margin-bottom: 20px !important; }
	body.vm-commerce #primary .entry-title { font-size: 1.75rem !important; }
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive tr { display: block !important; margin: 0 0 20px !important; padding: 16px !important; border: 1px solid var(--vm-border) !important; background: white !important; }
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive thead tr { display: none !important; }
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive tr.cart_item td { display: grid !important; grid-template-columns: minmax(88px,40%) minmax(0,1fr) !important; align-items: center !important; gap: 12px !important; width: 100% !important; min-height: 44px !important; padding: 10px 0 !important; border-bottom: 1px solid var(--vm-border) !important; text-align: end !important; }
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive tr.cart_item td::before { color: var(--vm-muted) !important; font-size: .8125rem !important; line-height: 1.4 !important; font-weight: 600 !important; text-align: start !important; }
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-remove { display: flex !important; justify-content: flex-end !important; width: 100% !important; padding-top: 0 !important; }
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-remove::before,
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-thumbnail::before { display: none !important; }
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-thumbnail { display: flex !important; justify-content: flex-start !important; }
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive tr.cart_item td.product-thumbnail img { width: 88px !important; height: 88px !important; }
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive tr td.actions { display: block !important; margin: 0 !important; padding: 0 !important; border: 0 !important; text-align: stretch !important; }
	body.vm-commerce-cart #primary .woocommerce-cart-form table.shop_table_responsive tr td.actions .button { width: 100% !important; }
	body.vm-commerce-cart #primary .cart-collaterals { display: block !important; }
	body.vm-commerce-cart #primary .cart_totals { width: 100% !important; padding: 20px !important; }
	body.vm-commerce-cart #primary .cart_totals table.shop_table_responsive tr { display: table-row !important; }
	body.vm-commerce-cart #primary .cart_totals table.shop_table_responsive th { display: table-cell !important; width: 38% !important; padding-right: 12px !important; }
	body.vm-commerce-cart #primary .cart_totals table.shop_table_responsive td { display: table-cell !important; width: 62% !important; text-align: end !important; }
	body.vm-commerce-cart #primary .cart_totals table.shop_table_responsive td::before { display: none !important; }
	body.vm-commerce-cart #primary .cart_totals #shipping_method li { text-align: start !important; }
	body.vm-commerce-checkout #primary form.checkout { display: block !important; }
	body.vm-commerce-checkout #primary form.checkout > :is(.col2-set,#order_review_heading,#order_review) { width: 100% !important; margin: 0 !important; }
	body.vm-commerce-checkout #primary form.checkout > #order_review_heading { margin-top: 28px !important; padding: 18px 16px 12px !important; }
	body.vm-commerce-checkout #primary form.checkout > #order_review { padding: 0 16px 16px !important; }
	body.vm-commerce-checkout #primary #order_review table.shop_table tr { display: grid !important; grid-template-columns: minmax(0,1fr) minmax(80px,40%) !important; gap: 8px !important; }
	body.vm-commerce-checkout #primary #order_review table.shop_table :is(th,td) { display: block !important; width: auto !important; min-width: 0 !important; }
	body.vm-commerce-checkout #primary #order_review table.shop_table :is(th,td):last-child { width: auto !important; padding-left: 4px !important; }
	body.vm-commerce-checkout #primary #order_review table.shop_table thead th { letter-spacing: .02em !important; white-space: nowrap !important; }
	body.vm-commerce-checkout #primary #order_review #shipping_method li { text-align: start !important; }
	body.vm-commerce-checkout #primary .form-row-first,
	body.vm-commerce-checkout #primary .form-row-last { display: block !important; width: 100% !important; margin-right: 0 !important; }
}
