/* Cart-only presentation. Native WooCommerce forms, nonces, totals and hooks remain intact. */
.vs360-cart-page .site-main { overflow-x: clip; }
.vs360-cart-page .entry-header, .vs360-cart-page .page-title { display: none; }
.vs360-cart-page .site-main > :where(.ct-container, .ct-container-full, .content-area) { display: block !important; inline-size: 100% !important; max-inline-size: none !important; }
.vs360-cart-page .site-main :where(article, .entry-content) { inline-size: 100% !important; max-inline-size: none !important; min-inline-size: 0 !important; }
.vs360-cart-page .site-main :where(.woocommerce, .wp-block-woocommerce-cart) { box-sizing: border-box; inline-size: min(100% - 2rem, var(--vs360-container-lg)) !important; max-inline-size: var(--vs360-container-lg) !important; margin-inline: auto !important; }
.vs360-cart-page .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.vs360-cart-intro { margin-block: 1rem 2rem; }
.vs360-cart-breadcrumbs { display: flex; gap: .7rem; margin-block-end: 1rem; }
.vs360-cart-breadcrumbs a { color: var(--vs360-color-primary); }
.vs360-cart-progress { display: grid; grid-template-columns: repeat(3, minmax(0, 9rem)); justify-content: center; list-style: none; margin: 0 auto 2rem; padding: 0; }
.vs360-cart-progress li { align-items: center; color: var(--vs360-color-primary); display: flex; flex-direction: column; font-weight: 700; gap: .4rem; position: relative; text-align: center; }
.vs360-cart-progress li:not(:last-child)::after { background: var(--vs360-color-border); block-size: 1px; content: ""; inset-block-start: 1.35rem; inset-inline-start: calc(50% + 1.35rem); position: absolute; inline-size: calc(100% - 2.7rem); }
.vs360-cart-progress span { align-items: center; background: #fff; border: 1px solid var(--vs360-color-border); border-radius: 50%; display: flex; block-size: 2.75rem; inline-size: 2.75rem; justify-content: center; position: relative; z-index: 1; }
.vs360-cart-progress [aria-current="step"] { color: var(--vs360-color-secondary); }
.vs360-cart-progress [aria-current="step"] span { background: var(--vs360-color-secondary); border-color: var(--vs360-color-secondary); color: #fff; }
.vs360-cart-title { align-items: end; display: flex; justify-content: space-between; gap: 1rem; }
.vs360-cart-title h1 { color: var(--vs360-color-primary); font-size: clamp(2rem, 4vw, 2.75rem); margin: 0; }
.vs360-cart-title p { color: var(--vs360-color-muted); margin: .35rem 0 0; }
.vs360-cart-title > a { align-items: center; border: 1px solid var(--vs360-color-primary); border-radius: .5rem; color: var(--vs360-color-primary); display: inline-flex; font-weight: 750; justify-content: center; min-block-size: 44px; padding: .6rem 1.2rem; text-decoration: none; }

/* Classic shortcode cart. */
.vs360-cart-page .woocommerce > form.woocommerce-cart-form { box-sizing: border-box; float: left !important; inline-size: calc(100% - 25.5rem) !important; margin: 0 !important; max-inline-size: none !important; min-inline-size: 0 !important; }
.vs360-cart-page .woocommerce > .cart-collaterals { box-sizing: border-box; float: right !important; inline-size: 24rem !important; margin: 0 !important; max-inline-size: 24rem !important; min-inline-size: 20rem !important; }
.vs360-cart-page .woocommerce > .cart-collaterals .cart_totals { float: none !important; inline-size: 100% !important; margin: 0 !important; max-inline-size: none !important; }
.vs360-cart-page .woocommerce::after { clear: both; content: ""; display: table; }
.vs360-cart-page .woocommerce-cart-form, .vs360-cart-page .cart_totals { border: 1px solid var(--vs360-color-border); border-radius: .75rem; padding: 1rem; }
.vs360-cart-page table.shop_table { border: 0; border-collapse: collapse; margin: 0; }
.vs360-cart-page table.shop_table th { color: var(--vs360-color-primary); padding: 1rem .75rem; }
.vs360-cart-page table.shop_table td { border-block-start: 1px solid var(--vs360-color-border); padding: 1rem .75rem; vertical-align: middle; }
.vs360-cart-page td.product-thumbnail img { aspect-ratio: 1; inline-size: 7rem; object-fit: contain; }
.vs360-cart-page td.product-name a { color: var(--vs360-color-primary); font-weight: 750; overflow-wrap: anywhere; }
.vs360-cart-page .variation { font-size: .875rem; }
.vs360-cart-page .quantity { display: inline-flex; }
.vs360-cart-page .quantity .qty { border: 1px solid var(--vs360-color-border); border-radius: .4rem; min-block-size: 44px; min-inline-size: 4rem; }
.vs360-cart-page a.remove { align-items: center; color: var(--vs360-color-discount) !important; display: inline-flex; justify-content: center; min-block-size: 44px; min-inline-size: 44px; }
.vs360-cart-page .actions { padding-block-start: 1rem !important; }
.vs360-cart-page .actions > button[name="update_cart"] { min-block-size: 44px; }
.vs360-cart-page .coupon { border: 1px solid var(--vs360-color-border); border-radius: .65rem; display: block !important; margin-block: .75rem; padding: .75rem; text-align: start; }
.vs360-cart-coupon-toggle { align-items: center; background: transparent; border: 0; color: var(--vs360-color-primary); display: flex; font-size: 1.05rem; font-weight: 800; inline-size: 100%; justify-content: space-between; min-block-size: 44px; padding: 0; }
.vs360-cart-coupon-fields { display: flex; gap: .75rem; padding-block-start: .5rem; }
.vs360-cart-coupon-fields[hidden] { display: none; }
.vs360-cart-page .coupon input { border: 1px solid var(--vs360-color-border); border-radius: .4rem; min-block-size: 44px; min-inline-size: 0; }
.vs360-cart-page :where(button.button, .checkout-button) { border-radius: .45rem !important; min-block-size: 44px; }
.vs360-cart-page .checkout-button { background: var(--vs360-color-secondary) !important; color: #fff !important; }
.vs360-cart-page .cart_totals h2 { color: var(--vs360-color-primary); font-size: 1.35rem; }
.vs360-cart-page .cart_totals table th, .vs360-cart-page .cart_totals table td { padding: .8rem .4rem; }
.vs360-cart-page .cart_totals .order-total strong { color: var(--vs360-color-primary); font-size: 1.35rem; }

/* WooCommerce Cart Block: presentation only; Store API remains authoritative. */
.vs360-cart-page .wp-block-woocommerce-cart { margin-block-end: 2rem; }
.vs360-cart-page .wp-block-woocommerce-cart .wc-block-cart { box-sizing: border-box; display: block !important; inline-size: 100% !important; max-inline-size: none !important; }
.vs360-cart-page .wp-block-woocommerce-cart .wc-block-cart::after { clear: both; content: ""; display: table; }
.vs360-cart-page .wp-block-woocommerce-cart .wc-block-cart__main { box-sizing: border-box !important; float: left !important; inline-size: calc(100% - 25.5rem) !important; margin: 0 !important; max-inline-size: none !important; min-inline-size: 0 !important; padding-inline: 0 !important; }
.vs360-cart-page .wc-block-cart-items, .vs360-cart-page .wc-block-cart__totals-title, .vs360-cart-page .wc-block-components-sidebar, .vs360-cart-page .wc-block-cart__sidebar { border-color: var(--vs360-color-border) !important; }
.vs360-cart-page .wp-block-woocommerce-cart .wc-block-cart__sidebar { border: 1px solid var(--vs360-color-border); border-radius: .75rem; box-sizing: border-box !important; float: right !important; inline-size: 24rem !important; margin: 0 !important; max-inline-size: 24rem !important; min-inline-size: 20rem !important; padding: 1rem !important; }
.vs360-cart-page .wp-block-woocommerce-cart .wc-block-cart__sidebar > * { inline-size: 100% !important; margin-inline: 0 !important; max-inline-size: none !important; }
.vs360-cart-page .wc-block-components-product-name { color: var(--vs360-color-primary); font-weight: 750; }
.vs360-cart-page :where(.wc-block-cart-item__wrap, .wc-block-components-product-name, .wc-block-components-product-details) { min-inline-size: 0; overflow-wrap: anywhere; word-break: normal; }
.vs360-cart-page .wc-block-components-quantity-selector { min-block-size: 44px; }
.vs360-cart-page .wc-block-cart__submit-button { background: var(--vs360-color-secondary); border-radius: .45rem; color: #fff; min-block-size: 48px; }

.vs360-cart-page .cross-sells { clear: both; padding-block: 2rem 1rem; }
.vs360-cart-page .cross-sells > h2 { color: var(--vs360-color-primary); text-align: center; }
.vs360-cart-page .cross-sells ul.products { display: grid; gap: 1rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vs360-cart-page .cross-sells li.product { border: 1px solid var(--vs360-color-border); border-radius: .75rem; inline-size: auto !important; margin: 0 !important; padding: 1rem; }
.vs360-cart-page .vs360-home-benefits { background: var(--vs360-color-primary); border-radius: .75rem; clear: both; color: #fff; inline-size: min(100% - 2rem, var(--vs360-container-lg)); margin: 1.5rem auto; overflow: hidden; }
.vs360-cart-page .vs360-benefit-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vs360-cart-page .vs360-benefit { align-items: center; display: flex; gap: .75rem; min-block-size: 5rem; min-inline-size: 0; padding: 1rem; }
.vs360-cart-page .vs360-benefit + .vs360-benefit { border-inline-start: 1px solid rgb(255 255 255 / 28%); }
.vs360-cart-page .vs360-benefit svg { block-size: 2.25rem !important; fill: none; flex: 0 0 2.25rem; inline-size: 2.25rem !important; max-block-size: 2.25rem; max-inline-size: 2.25rem; stroke: #32d46b; stroke-linecap: round; stroke-linejoin: round; stroke-width: 2; }
.vs360-cart-page .vs360-benefit strong { color: #fff; font-size: .9rem; overflow-wrap: anywhere; }
.vs360-cart-help { align-items: center; background: #eef8f1; border-radius: .75rem; clear: both; display: flex; gap: 1rem; justify-content: space-between; margin: 1rem auto 2rem; max-inline-size: var(--vs360-container-lg); padding: 1rem 1.5rem; }
.vs360-cart-help div, .vs360-cart-help span { display: block; }
.vs360-cart-help strong { color: var(--vs360-color-primary); font-size: 1.1rem; }
.vs360-cart-help a { align-items: center; border: 1px solid var(--vs360-color-secondary); border-radius: .45rem; color: var(--vs360-color-secondary); display: inline-flex; font-weight: 750; justify-content: center; min-block-size: 44px; padding: .55rem 1rem; text-decoration: none; }
.vs360-cart-page .cart-empty { border: 1px solid var(--vs360-color-border); border-radius: .75rem; color: var(--vs360-color-primary); padding: 2rem; text-align: center; }
.vs360-cart-page .return-to-shop { text-align: center; }
.vs360-cart-page :where(a, button, input, select, textarea):focus-visible { outline: 3px solid var(--vs360-color-discount); outline-offset: 3px; }

@media (min-width: 64rem) {
	.vs360-cart-page .site-main :where(.woocommerce, .wp-block-woocommerce-cart) {
		inline-size: min(100% - 3rem, 68rem) !important;
		max-inline-size: 68rem !important;
	}
}
@media (max-width: 63.9375rem) {
	.vs360-cart-page .woocommerce > form.woocommerce-cart-form,
	.vs360-cart-page .woocommerce > .cart-collaterals { float: none !important; inline-size: 100% !important; margin: 0 !important; max-inline-size: none !important; min-inline-size: 0 !important; }
	.vs360-cart-page .woocommerce > .cart-collaterals { margin-block-start: 1rem !important; }
	.vs360-cart-page .cross-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vs360-cart-page .wp-block-woocommerce-cart .wc-block-cart__main,
	.vs360-cart-page .wp-block-woocommerce-cart .wc-block-cart__sidebar { float: none !important; inline-size: 100% !important; margin: 0 !important; max-inline-size: none !important; min-inline-size: 0 !important; }
	.vs360-cart-page .wp-block-woocommerce-cart .wc-block-cart__sidebar { margin-block-start: 1rem !important; }
}
@media (max-width: 47.9375rem) {
	body.vs360-cart-page { inline-size: 100%; max-inline-size: 100%; overflow-x: hidden !important; }
	.vs360-cart-page :where(.site-main, .ct-container, .ct-container-full, .content-area, article, .entry-content, .woocommerce, form.woocommerce-cart-form) { box-sizing: border-box !important; inline-size: 100% !important; max-inline-size: 100% !important; min-inline-size: 0 !important; margin-inline: 0 !important; }
	.vs360-cart-page .site-main :where(.woocommerce, .wp-block-woocommerce-cart) { inline-size: calc(100% - 1.25rem) !important; }
	.vs360-cart-intro { margin-block-end: 1rem; }
	.vs360-cart-title { align-items: stretch; flex-direction: column; }
	.vs360-cart-title > a { inline-size: 100%; }
	.vs360-cart-progress { grid-template-columns: repeat(3, 1fr); }
	.vs360-cart-page .woocommerce-cart-form { border: 0; padding: 0; }
	.vs360-cart-page .woocommerce-cart-form table,
	.vs360-cart-page .woocommerce-cart-form tbody,
	.vs360-cart-page .woocommerce-cart-form tr,
	.vs360-cart-page .woocommerce-cart-form td { box-sizing: border-box; inline-size: 100% !important; max-inline-size: 100% !important; min-inline-size: 0 !important; }
	.vs360-cart-page .woocommerce-cart-form table { display: block !important; table-layout: fixed; }
	.vs360-cart-page table.shop_table_responsive thead { display: none; }
	.vs360-cart-page table.shop_table_responsive tbody { display: block !important; }
	.vs360-cart-page form.woocommerce-cart-form table.shop_table > tbody {
		display: block !important;
		inline-size: 100% !important;
		max-inline-size: 100% !important;
		min-inline-size: 0 !important;
	}
	.vs360-cart-page .woocommerce table.shop_table_responsive tr.cart_item { align-items: center; border: 1px solid var(--vs360-color-border); border-radius: .75rem; display: grid !important; grid-template-columns: minmax(0, 1fr) !important; inline-size: 100% !important; margin-block: .75rem; padding: 1rem; text-align: center; }
	.vs360-cart-page .woocommerce table.shop_table_responsive tr.cart_item > td { border: 0; clear: both !important; display: flex !important; float: none !important; grid-column: 1 !important; grid-row: auto !important; inset: auto !important; inline-size: 100% !important; justify-content: center; margin: 0 !important; max-inline-size: 100% !important; min-inline-size: 0 !important; padding: .35rem !important; position: static !important; text-align: center !important; transform: none !important; }
	.vs360-cart-page .woocommerce-cart-form .cart_item { align-items: center !important; box-sizing: border-box !important; display: flex !important; flex-direction: column !important; inline-size: 100% !important; max-inline-size: 100% !important; min-inline-size: 0 !important; }
	.vs360-cart-page .woocommerce-cart-form .cart_item > :where(.product-remove, .product-thumbnail, .product-name, .product-price, .product-quantity, .product-subtotal) { align-items: center !important; clear: both !important; display: flex !important; float: none !important; inline-size: 100% !important; inset: auto !important; justify-content: center !important; margin: 0 !important; max-inline-size: 100% !important; min-inline-size: 0 !important; padding: .35rem !important; position: static !important; text-align: center !important; transform: none !important; }
	.vs360-cart-page table.shop_table_responsive tr.cart_item td::before { display: none; }
	.vs360-cart-page td.product-remove { order: 6; }
	.vs360-cart-page td.product-thumbnail { order: 1; }
	.vs360-cart-page td.product-thumbnail::before { display: none !important; }
	.vs360-cart-page td.product-thumbnail a { display: block; margin-inline: auto; }
	.vs360-cart-page td.product-thumbnail img { block-size: auto; display: block; inline-size: min(11rem, 60vw) !important; margin-inline: auto; max-inline-size: 100% !important; }
	.vs360-cart-page td.product-name { flex-direction: column; order: 2; }
	.vs360-cart-page td.product-name a { font-size: 1.05rem; line-height: 1.35; margin-inline: auto; max-inline-size: 20rem; overflow-wrap: anywhere; }
	.vs360-cart-page td.product-price { order: 3; }
	.vs360-cart-page td.product-quantity { order: 4; }
	.vs360-cart-page td.product-subtotal { align-items: center; order: 5; }
	.vs360-cart-page td.product-subtotal::before { content: attr(data-title); display: inline; font-weight: 700; margin-inline-end: .4rem; }
	.vs360-cart-page tr:not(.cart_item) { display: block !important; inline-size: 100% !important; }
	.vs360-cart-page tr:not(.cart_item) .actions { align-items: center; display: flex !important; flex-direction: column; inline-size: 100% !important; padding: 0 !important; }
	.vs360-cart-page .actions > button[name="update_cart"] { display: block; float: none !important; inline-size: min(100%, 30rem) !important; margin: .75rem auto 0 !important; }
	.vs360-cart-page .actions .coupon { box-sizing: border-box; clear: both; float: none !important; inline-size: min(100%, 30rem) !important; margin: 0 auto !important; padding: 1rem !important; text-align: center; }
	.vs360-cart-page .actions .vs360-cart-coupon-toggle { inline-size: 100% !important; text-align: start; }
	.vs360-cart-coupon-fields { align-items: stretch; flex-direction: row; }
	.vs360-cart-page .actions .vs360-cart-coupon-fields { inline-size: 100% !important; }
	.vs360-cart-page .actions .vs360-cart-coupon-fields input { box-sizing: border-box; flex: 1 1 auto; float: none !important; inline-size: auto !important; margin: 0 !important; max-inline-size: none !important; min-inline-size: 0 !important; }
	.vs360-cart-page .actions .vs360-cart-coupon-fields button { box-sizing: border-box; flex: 0 0 auto; float: none !important; inline-size: auto !important; margin: 0 !important; max-inline-size: 10rem !important; white-space: normal; }
	.vs360-cart-page :where(.vs360-cart-title, .vs360-cart-progress, .cart-collaterals, .cart_totals, .vs360-home-benefits, .vs360-cart-help) { box-sizing: border-box; max-inline-size: 100% !important; }
	.vs360-cart-page .wc-block-cart-items { table-layout: fixed; inline-size: 100% !important; }
	.vs360-cart-page .wc-block-cart-items__row { grid-template-columns: 6.25rem minmax(0, 1fr) !important; }
	.vs360-cart-page .wc-block-cart-item__image { inline-size: 6.25rem !important; padding-inline-end: .75rem !important; }
	.vs360-cart-page .wc-block-cart-item__image img { block-size: auto; inline-size: 100%; object-fit: contain; }
	.vs360-cart-page .wc-block-components-product-name { font-size: 1rem; line-height: 1.35; }
	.vs360-cart-page .wc-block-components-product-price, .vs360-cart-page .wc-block-cart-item__total { font-size: .95rem; }
	.vs360-cart-page .wc-block-components-quantity-selector { max-inline-size: 9rem; }
	.vs360-cart-page .wc-block-components-totals-coupon__form { align-items: stretch; display: grid !important; gap: .5rem; grid-template-columns: minmax(0, 1fr) auto; inline-size: 100%; }
	.vs360-cart-page .wc-block-components-totals-coupon__form :where(input, button) { min-inline-size: 0; }
	.vs360-cart-page .vs360-benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.vs360-cart-page .vs360-benefit + .vs360-benefit { border-inline-start: 0; }
	.vs360-cart-page .vs360-benefit:nth-child(even) { border-inline-start: 1px solid rgb(255 255 255 / 28%); }
	.vs360-cart-page .vs360-benefit:nth-child(n+3) { border-block-start: 1px solid rgb(255 255 255 / 28%); }
	.vs360-cart-page .cross-sells ul.products { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
	.vs360-cart-page .cross-sells li.product { flex: 0 0 min(78vw, 19rem); scroll-snap-align: start; }
	.vs360-cart-help { align-items: stretch; flex-direction: column; margin-inline: .625rem; padding: 1rem; }
	.vs360-cart-help a { inline-size: 100%; }
}
@media (prefers-reduced-motion: reduce) { .vs360-cart-page * { scroll-behavior: auto !important; transition: none !important; } }
