/* =========================================================
   VIVI Checkout Shell
   Version: 0.9.687
   Scope: VIVI-rendered /checkout/ shell only
   Safety: WooCommerce shortcode/core checkout handles wc-ajax, payment and order submission.
========================================================= */

body.vivi-checkout-shell-page {
	--vivi-checkout-shell-max: var(--vivi-container-wide, 1180px);
	--vivi-checkout-gap: var(--vivi-space-lg, 28px);
	--vivi-checkout-card-padding: var(--vivi-space-lg, 28px);
	--vivi-checkout-summary-width: 390px;
	background: var(--vivi-color-bg, #f7f8fa) !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-family: var(--vivi-font-main, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans TC", "Microsoft JhengHei", Arial, sans-serif) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-shell-main {
	width: min(var(--vivi-checkout-shell-max), calc(100vw - (var(--vivi-space-xl, 48px) * 2))) !important;
	max-width: var(--vivi-checkout-shell-max) !important;
	margin: 0 auto !important;
	padding: calc(var(--vivi-page-main-padding-top, var(--vivi-header-height, 76px)) + 40px) 0 calc(var(--vivi-space-xl, 48px) * 1.35) !important;
}

body.admin-bar.vivi-checkout-shell-page .vivi-checkout-shell-main {
	padding-top: calc(var(--vivi-page-main-padding-top, var(--vivi-header-height, 76px)) + 32px + 40px) !important;
}

/* Header area */
body.vivi-checkout-shell-page .vivi-checkout-shell-hero {
	max-width: 760px !important;
	margin: 0 0 var(--vivi-space-lg, 28px) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-shell-hero .vivi-section-kicker {
	margin: 0 0 var(--vivi-space-xs, 8px) !important;
	color: var(--vivi-color-orange, #996515) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
}

body.vivi-checkout-shell-page .vivi-checkout-shell-hero h1 {
	margin: 0 0 var(--vivi-space-xs, 8px) !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-h2, 34px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.18) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-shell-hero p:not(.vivi-section-kicker) {
	margin: 0 !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-body, 16px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
}

/* Outer container: clean canvas, not a heavy nested card */
body.vivi-checkout-shell-page .vivi-checkout-shell-card {
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	overflow: visible !important;
}

body.vivi-checkout-shell-page .woocommerce,
body.vivi-checkout-shell-page .woocommerce * {
	box-sizing: border-box !important;
}

/* Notices */
body.vivi-checkout-shell-page .woocommerce-notices-wrapper {
	margin: 0 0 var(--vivi-space-md, 20px) !important;
}

body.vivi-checkout-shell-page .woocommerce-message,
body.vivi-checkout-shell-page .woocommerce-info,
body.vivi-checkout-shell-page .woocommerce-error {
	display: flex !important;
	align-items: flex-start !important;
	gap: var(--vivi-space-sm, 12px) !important;
	margin: 0 0 var(--vivi-space-md, 20px) !important;
	padding: var(--vivi-space-sm, 12px) var(--vivi-space-md, 20px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-card, #fff) !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	box-shadow: none !important;
}

body.vivi-checkout-shell-page .woocommerce-message::before,
body.vivi-checkout-shell-page .woocommerce-info::before,
body.vivi-checkout-shell-page .woocommerce-error::before {
	content: "" !important;
	width: 8px !important;
	height: 8px !important;
	flex: 0 0 8px !important;
	margin-top: .55em !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-orange, #996515) !important;
}

/* Checkout main grid */
body.vivi-checkout-shell-page form.checkout,
body.vivi-checkout-shell-page form.checkout.woocommerce-checkout {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(340px, var(--vivi-checkout-summary-width)) !important;
	grid-template-areas:
		"customer review-title"
		"customer review" !important;
	gap: var(--vivi-checkout-gap) !important;
	align-items: start !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	float: none !important;
	clear: none !important;
}

body.vivi-checkout-shell-page form.checkout::before,
body.vivi-checkout-shell-page form.checkout::after,
body.vivi-checkout-shell-page .col2-set::before,
body.vivi-checkout-shell-page .col2-set::after {
	display: none !important;
	content: none !important;
}

/* Customer details */
body.vivi-checkout-shell-page #customer_details,
body.vivi-checkout-shell-page .col2-set {
	grid-area: customer !important;
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: var(--vivi-space-md, 20px) !important;
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 0 !important;
	min-width: 0 !important;
}

body.vivi-checkout-shell-page #customer_details .col-1,
body.vivi-checkout-shell-page #customer_details .col-2,
body.vivi-checkout-shell-page .col2-set .col-1,
body.vivi-checkout-shell-page .col2-set .col-2 {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.vivi-checkout-shell-page .woocommerce-billing-fields,
body.vivi-checkout-shell-page .woocommerce-shipping-fields,
body.vivi-checkout-shell-page .woocommerce-additional-fields {
	width: 100% !important;
	margin: 0 !important;
	padding: var(--vivi-checkout-card-padding) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-card, #fff) !important;
	box-shadow: var(--vivi-shadow-card, 0 18px 45px rgba(0,0,0,.06)) !important;
}

body.vivi-checkout-shell-page .woocommerce-billing-fields h3,
body.vivi-checkout-shell-page .woocommerce-shipping-fields h3,
body.vivi-checkout-shell-page .woocommerce-additional-fields h3 {
	margin: 0 0 var(--vivi-space-md, 20px) !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-h3, 22px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.18) !important;
}

/* Field layout: stable single column to avoid broken half-width fields */
body.vivi-checkout-shell-page .woocommerce-billing-fields__field-wrapper,
body.vivi-checkout-shell-page .woocommerce-shipping-fields__field-wrapper,
body.vivi-checkout-shell-page .woocommerce-additional-fields__field-wrapper {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	gap: var(--vivi-space-sm, 12px) !important;
	width: 100% !important;
	min-width: 0 !important;
}

body.vivi-checkout-shell-page .form-row,
body.vivi-checkout-shell-page p.form-row,
body.vivi-checkout-shell-page .form-row-first,
body.vivi-checkout-shell-page .form-row-last,
body.vivi-checkout-shell-page .form-row-wide {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: 0 !important;
	min-width: 0 !important;
}

/* Labels and inputs */
body.vivi-checkout-shell-page .form-row label {
	display: block !important;
	margin: 0 0 6px !important;
	padding: 0 !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.25) !important;
	letter-spacing: 0 !important;
}

body.vivi-checkout-shell-page .required {
	color: var(--vivi-color-orange, #996515) !important;
	text-decoration: none !important;
}

body.vivi-checkout-shell-page input[type="text"],
body.vivi-checkout-shell-page input[type="email"],
body.vivi-checkout-shell-page input[type="tel"],
body.vivi-checkout-shell-page input[type="number"],
body.vivi-checkout-shell-page input[type="password"],
body.vivi-checkout-shell-page input.input-text,
body.vivi-checkout-shell-page textarea,
body.vivi-checkout-shell-page select,
body.vivi-checkout-shell-page .select2-container--default .select2-selection--single {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	min-height: 46px !important;
	margin: 0 !important;
	padding: 0 14px !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-card, #fff) !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-body, 16px) !important;
	font-weight: var(--vivi-fw-regular, 400) !important;
	line-height: 46px !important;
	box-shadow: none !important;
	opacity: 1 !important;
	visibility: visible !important;
}

body.vivi-checkout-shell-page textarea {
	min-height: 128px !important;
	padding-top: 12px !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	resize: vertical !important;
}

body.vivi-checkout-shell-page input:focus,
body.vivi-checkout-shell-page textarea:focus,
body.vivi-checkout-shell-page select:focus,
body.vivi-checkout-shell-page .select2-container--open .select2-selection--single {
	border-color: var(--vivi-color-orange, #996515) !important;
	outline: 0 !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--vivi-color-orange, #996515) 18%, transparent) !important;
}

body.vivi-checkout-shell-page .select2-container {
	width: 100% !important;
}

body.vivi-checkout-shell-page .select2-container--default .select2-selection--single .select2-selection__rendered {
	padding-left: 0 !important;
	padding-right: 28px !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	line-height: 44px !important;
}

body.vivi-checkout-shell-page .select2-container--default .select2-selection--single .select2-selection__arrow {
	height: 44px !important;
	right: 8px !important;
}

/* Order review title and card */
body.vivi-checkout-shell-page #order_review_heading {
	grid-area: review-title !important;
	width: 100% !important;
	margin: 0 !important;
	padding: var(--vivi-space-xs, 8px) 0 0 !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-h3, 22px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.18) !important;
}

body.vivi-checkout-shell-page #order_review,
body.vivi-checkout-shell-page .woocommerce-checkout-review-order {
	grid-area: review !important;
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	clear: none !important;
	margin: 0 !important;
	padding: var(--vivi-checkout-card-padding) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-card, #fff) !important;
	box-shadow: var(--vivi-shadow-card, 0 18px 45px rgba(0,0,0,.06)) !important;
	position: sticky !important;
	top: calc(var(--vivi-header-height, 76px) + var(--vivi-space-md, 20px)) !important;
	overflow: hidden !important;
	min-width: 0 !important;
}

body.admin-bar.vivi-checkout-shell-page #order_review,
body.admin-bar.vivi-checkout-shell-page .woocommerce-checkout-review-order {
	top: calc(var(--vivi-header-height, 76px) + 32px + var(--vivi-space-md, 20px)) !important;
}

/* Order summary table */
body.vivi-checkout-shell-page table.shop_table,
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table {
	width: 100% !important;
	margin: 0 0 var(--vivi-space-md, 20px) !important;
	border: 0 !important;
	border-collapse: collapse !important;
	background: transparent !important;
	table-layout: fixed !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table thead th {
	padding: 0 0 var(--vivi-space-sm, 12px) !important;
	border: 0 !important;
	border-bottom: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.25) !important;
	text-align: left !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table thead th.product-total {
	text-align: right !important;
}

/* Product row: compact, readable, never huge. */
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table tbody tr.cart_item {
	border-bottom: 1px solid var(--vivi-color-border, #dfe3e8) !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table tbody tr.cart_item td {
	padding: var(--vivi-space-md, 20px) 0 !important;
	border: 0 !important;
	vertical-align: middle !important;
	background: transparent !important;
}

/* Product name cell may contain an image injected by ticket/product code. Keep it compact. */
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name {
	display: flex !important;
	align-items: center !important;
	gap: var(--vivi-space-sm, 12px) !important;
	width: 100% !important;
	min-width: 0 !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	text-align: left !important;
	overflow-wrap: anywhere !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name img,
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name .attachment-woocommerce_thumbnail,
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name .woocommerce-placeholder {
	display: block !important;
	width: 64px !important;
	height: 64px !important;
	min-width: 64px !important;
	max-width: 64px !important;
	max-height: 64px !important;
	object-fit: cover !important;
	border-radius: var(--vivi-radius, 8px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	background: var(--vivi-color-bg-soft, #f1f3f5) !important;
	flex: 0 0 64px !important;
}

/* Checkout is not cart: remove any delete link accidentally injected into order summary. */
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name a.remove,
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name .remove {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name .product-quantity {
	display: block !important;
	margin-top: 2px !important;
	color: var(--vivi-color-orange, #996515) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.25) !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-total {
	width: 34% !important;
	padding-left: var(--vivi-space-sm, 12px) !important;
	color: var(--vivi-color-orange, #996515) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	text-align: right !important;
	white-space: nowrap !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-total .amount {
	color: var(--vivi-color-orange, #996515) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
}

/* Totals */
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table tfoot th,
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table tfoot td {
	padding: var(--vivi-space-sm, 12px) 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	background: transparent !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	vertical-align: middle !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table tfoot th {
	color: var(--vivi-color-heading, #0e1116) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	text-align: left !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table tfoot td {
	font-weight: var(--vivi-fw-bold, 600) !important;
	text-align: right !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table tfoot tr.order-total th,
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table tfoot tr.order-total td,
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table tfoot tr.order-total .amount {
	border-bottom: 0 !important;
	color: var(--vivi-color-orange, #996515) !important;
	font-size: var(--vivi-fs-body-lg, 18px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
}

/* Payment */
body.vivi-checkout-shell-page #payment,
body.vivi-checkout-shell-page .woocommerce-checkout-payment {
	margin: var(--vivi-space-md, 20px) 0 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}

body.vivi-checkout-shell-page #payment ul.payment_methods {
	margin: 0 0 var(--vivi-space-md, 20px) !important;
	padding: 0 !important;
	border: 0 !important;
	list-style: none !important;
}

body.vivi-checkout-shell-page #payment ul.payment_methods li {
	margin: 0 0 var(--vivi-space-sm, 12px) !important;
	padding: var(--vivi-space-sm, 12px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-bg-soft, #f1f3f5) !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
}

body.vivi-checkout-shell-page #payment ul.payment_methods li label {
	color: var(--vivi-color-heading, #0e1116) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
}

body.vivi-checkout-shell-page #payment div.payment_box {
	margin: var(--vivi-space-sm, 12px) 0 0 !important;
	padding: var(--vivi-space-sm, 12px) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-card, #fff) !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
}

/* Terms and order button */
body.vivi-checkout-shell-page .woocommerce-privacy-policy-text,
body.vivi-checkout-shell-page .woocommerce-terms-and-conditions-wrapper {
	margin: var(--vivi-space-md, 20px) 0 !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-xs, 13px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
}

body.vivi-checkout-shell-page .woocommerce-terms-and-conditions-wrapper label {
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
}

body.vivi-checkout-shell-page #place_order,
body.vivi-checkout-shell-page button#place_order,
body.vivi-checkout-shell-page .place-order .button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 50px !important;
	margin: 0 !important;
	padding: 0 var(--vivi-button-padding-x, 22px) !important;
	border: 1px solid var(--vivi-color-black, #000) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-black, #000) !important;
	color: var(--vivi-color-text-inverse, #fff) !important;
	font-size: var(--vivi-fs-body, 16px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: 1 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	cursor: pointer !important;
}

body.vivi-checkout-shell-page #place_order:hover,
body.vivi-checkout-shell-page .place-order .button:hover {
	border-color: var(--vivi-color-orange, #996515) !important;
	background: var(--vivi-color-orange, #996515) !important;
	color: var(--vivi-color-text-inverse, #fff) !important;
}

/* Processing overlay */
body.vivi-checkout-shell-page .blockUI.blockOverlay {
	border-radius: var(--vivi-radius, 8px) !important;
	background: color-mix(in srgb, var(--vivi-color-card, #fff) 74%, transparent) !important;
}

/* Mobile */
@media (max-width: 900px) {
	body.vivi-checkout-shell-page {
		--vivi-checkout-card-padding: var(--vivi-space-md, 20px);
	}

	body.vivi-checkout-shell-page .vivi-checkout-shell-main {
		width: min(100%, calc(100vw - (var(--vivi-space-sm, 12px) * 2))) !important;
		padding-top: 40px !important;
		padding-bottom: calc(var(--vivi-mobile-bottom-nav-height, 70px) + var(--vivi-space-lg, 28px)) !important;
	}

	body.admin-bar.vivi-checkout-shell-page .vivi-checkout-shell-main {
		padding-top: calc(46px + 40px) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-shell-hero {
		margin-bottom: var(--vivi-space-md, 20px) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-shell-hero h1 {
		font-size: var(--vivi-fs-h3, 24px) !important;
	}

	body.vivi-checkout-shell-page form.checkout,
	body.vivi-checkout-shell-page form.checkout.woocommerce-checkout {
		grid-template-columns: minmax(0, 1fr) !important;
		grid-template-areas:
			"customer"
			"review-title"
			"review" !important;
		gap: var(--vivi-space-md, 20px) !important;
	}

	body.vivi-checkout-shell-page #order_review,
	body.vivi-checkout-shell-page .woocommerce-checkout-review-order {
		position: static !important;
		border-radius: var(--vivi-radius, 8px) !important;
	}

	body.vivi-checkout-shell-page .woocommerce-billing-fields,
	body.vivi-checkout-shell-page .woocommerce-shipping-fields,
	body.vivi-checkout-shell-page .woocommerce-additional-fields {
		border-radius: var(--vivi-radius, 8px) !important;
	}

	body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name {
		gap: var(--vivi-space-xs, 8px) !important;
	}

	body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name img,
	body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name .attachment-woocommerce_thumbnail,
	body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-name .woocommerce-placeholder {
		width: 56px !important;
		height: 56px !important;
		min-width: 56px !important;
		max-width: 56px !important;
		max-height: 56px !important;
		flex-basis: 56px !important;
	}

	body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table td.product-total {
		width: 30% !important;
	}
}

/* =========================================================
   v0.9.631 Checkout Product Rows Under Title
   Product data only. No totals, no payment, no delete, no quantity controls.
========================================================= */

body.vivi-checkout-shell-page .vivi-checkout-product-rows {
	margin: 0 0 var(--vivi-space-lg, 28px) !important;
	padding: var(--vivi-space-lg, 28px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-card, #fff) !important;
	box-shadow: var(--vivi-shadow-card, 0 18px 45px rgba(0,0,0,.06)) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-rows-head {
	display: flex !important;
	align-items: flex-end !important;
	justify-content: space-between !important;
	gap: var(--vivi-space-md, 20px) !important;
	margin: 0 0 var(--vivi-space-md, 20px) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-rows-title {
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-h3, 22px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.18) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-rows-meta {
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-regular, 400) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	text-align: right !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-table {
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-card, #fff) !important;
	overflow: hidden !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-table-head,
body.vivi-checkout-shell-page .vivi-checkout-product-row {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(96px, .28fr) minmax(92px, .22fr) minmax(108px, .28fr) !important;
	align-items: center !important;
	gap: var(--vivi-space-md, 20px) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-table-head {
	padding: var(--vivi-space-sm, 12px) var(--vivi-space-lg, 28px) !important;
	border-bottom: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	background: var(--vivi-color-bg-soft, #f1f3f5) !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.25) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-table-head > div:nth-child(n+2) {
	text-align: right !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-row {
	min-height: 98px !important;
	padding: var(--vivi-space-md, 20px) var(--vivi-space-lg, 28px) !important;
	border-bottom: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	background: var(--vivi-color-card, #fff) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-row:last-child {
	border-bottom: 0 !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-main {
	display: grid !important;
	grid-template-columns: 72px minmax(0, 1fr) !important;
	align-items: center !important;
	gap: var(--vivi-space-md, 20px) !important;
	min-width: 0 !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-thumb,
body.vivi-checkout-shell-page .vivi-checkout-product-thumb img {
	width: 72px !important;
	height: 72px !important;
	min-width: 72px !important;
	max-width: 72px !important;
	max-height: 72px !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-thumb img {
	display: block !important;
	object-fit: cover !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-bg-soft, #f1f3f5) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-info {
	min-width: 0 !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-name {
	display: block !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-body, 16px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	text-decoration: none !important;
	overflow-wrap: anywhere !important;
}

body.vivi-checkout-shell-page a.vivi-checkout-product-name:hover {
	color: var(--vivi-color-orange, #996515) !important;
	text-decoration: none !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-price,
body.vivi-checkout-shell-page .vivi-checkout-product-qty,
body.vivi-checkout-shell-page .vivi-checkout-product-subtotal {
	justify-content: flex-end !important;
	text-align: right !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-body, 16px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	white-space: nowrap !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-qty {
	color: var(--vivi-color-orange, #996515) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-product-subtotal,
body.vivi-checkout-shell-page .vivi-checkout-product-subtotal .amount {
	color: var(--vivi-color-orange, #996515) !important;
}

/* Right order summary now focuses on totals/payment; product data is shown above. */
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table thead,
body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table tbody {
	display: none !important;
}

body.vivi-checkout-shell-page table.woocommerce-checkout-review-order-table {
	margin-top: 0 !important;
}

@media (max-width: 900px) {
	body.vivi-checkout-shell-page .vivi-checkout-product-rows {
		padding: var(--vivi-space-md, 20px) !important;
		border-radius: var(--vivi-radius, 8px) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-product-rows-head {
		display: block !important;
		margin-bottom: var(--vivi-space-sm, 12px) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-product-rows-meta {
		margin-top: 4px !important;
		text-align: left !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-product-table-head {
		display: none !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-product-row {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: var(--vivi-space-xs, 8px) !important;
		min-height: 0 !important;
		padding: var(--vivi-space-md, 20px) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-product-main {
		grid-template-columns: 62px minmax(0, 1fr) !important;
		gap: var(--vivi-space-sm, 12px) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-product-thumb,
	body.vivi-checkout-shell-page .vivi-checkout-product-thumb img {
		width: 62px !important;
		height: 62px !important;
		min-width: 62px !important;
		max-width: 62px !important;
		max-height: 62px !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-product-price,
	body.vivi-checkout-shell-page .vivi-checkout-product-qty,
	body.vivi-checkout-shell-page .vivi-checkout-product-subtotal {
		display: flex !important;
		justify-content: space-between !important;
		width: 100% !important;
		text-align: left !important;
		white-space: normal !important;
		font-size: var(--vivi-fs-small, 14px) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-product-price::before {
		content: "價格" !important;
		color: var(--vivi-color-text, #4f5660) !important;
		font-weight: var(--vivi-fw-bold, 600) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-product-qty::before {
		content: "數量" !important;
		color: var(--vivi-color-text, #4f5660) !important;
		font-weight: var(--vivi-fw-bold, 600) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-product-subtotal::before {
		content: "小計" !important;
		color: var(--vivi-color-text, #4f5660) !important;
		font-weight: var(--vivi-fw-bold, 600) !important;
	}
}

/* =========================================================
   v0.9.632 Checkout Payment Card Alignment
   Hide "您的訂單" heading and align the payment/totals card with billing card top.
========================================================= */

body.vivi-checkout-shell-page form.checkout,
body.vivi-checkout-shell-page form.checkout.woocommerce-checkout {
	grid-template-areas: "customer review" !important;
	grid-template-rows: auto !important;
	align-items: start !important;
}

body.vivi-checkout-shell-page #order_review_heading {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
}

body.vivi-checkout-shell-page #order_review,
body.vivi-checkout-shell-page .woocommerce-checkout-review-order {
	grid-area: review !important;
	margin-top: 0 !important;
	align-self: start !important;
}

@media (max-width: 900px) {
	body.vivi-checkout-shell-page form.checkout,
	body.vivi-checkout-shell-page form.checkout.woocommerce-checkout {
		grid-template-areas:
			"customer"
			"review" !important;
	}
}

/* =========================================================
   v0.9.633 Checkout: hide empty WooCommerce shipping fields block
   Scope: visual only. Does not alter checkout data, wc-ajax, payment, or order submission.
========================================================= */

body.vivi-checkout-shell-page .woocommerce-shipping-fields {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
	box-shadow: none !important;
}

/* =========================================================
   v0.9.634 Checkout notice style
   Match cart page notice style. Visual only; checkout logic is untouched.
========================================================= */

/* Reserve a clean full-width row for WooCommerce checkout notices only when they exist. */
body.vivi-checkout-shell-page form.checkout,
body.vivi-checkout-shell-page form.checkout.woocommerce-checkout {
	grid-template-areas:
		"notice notice"
		"customer review" !important;
	grid-template-rows: auto auto !important;
	align-items: start !important;
}

/* Notice containers generated by WooCommerce checkout validation. */
body.vivi-checkout-shell-page .woocommerce-NoticeGroup,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout,
body.vivi-checkout-shell-page form.checkout > .woocommerce-notices-wrapper {
	grid-area: notice !important;
	grid-column: 1 / -1 !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 var(--vivi-space-md, 20px) !important;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

/* Empty notice wrappers should not create vertical gaps. */
body.vivi-checkout-shell-page .woocommerce-NoticeGroup:empty,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout:empty,
body.vivi-checkout-shell-page form.checkout > .woocommerce-notices-wrapper:empty,
body.vivi-checkout-shell-page .woocommerce-notices-wrapper:empty {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* Cart-style VIVI alert box. */
body.vivi-checkout-shell-page .woocommerce-error,
body.vivi-checkout-shell-page .woocommerce-info,
body.vivi-checkout-shell-page .woocommerce-message {
	position: relative !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	width: 100% !important;
	margin: 0 0 var(--vivi-space-md, 20px) !important;
	padding: var(--vivi-space-sm, 12px) var(--vivi-space-md, 20px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-bg-soft, #f1f3f5) !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-regular, 400) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	box-shadow: none !important;
	list-style: none !important;
}

/* WooCommerce often outputs ul.woocommerce-error > li. Make every line consistent. */
body.vivi-checkout-shell-page ul.woocommerce-error,
body.vivi-checkout-shell-page ul.woocommerce-info,
body.vivi-checkout-shell-page ul.woocommerce-message {
	padding-left: var(--vivi-space-md, 20px) !important;
}

body.vivi-checkout-shell-page .woocommerce-error li,
body.vivi-checkout-shell-page .woocommerce-info li,
body.vivi-checkout-shell-page .woocommerce-message li {
	position: relative !important;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--vivi-color-text, #4f5660) !important;
	list-style: none !important;
}

/* Orange dot like cart page notice. */
body.vivi-checkout-shell-page .woocommerce-error::before,
body.vivi-checkout-shell-page .woocommerce-info::before,
body.vivi-checkout-shell-page .woocommerce-message::before {
	content: "" !important;
	position: absolute !important;
	left: var(--vivi-space-sm, 12px) !important;
	top: calc(var(--vivi-space-sm, 12px) + .55em) !important;
	width: 8px !important;
	height: 8px !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-orange, #996515) !important;
}

body.vivi-checkout-shell-page .woocommerce-error li::before,
body.vivi-checkout-shell-page .woocommerce-info li::before,
body.vivi-checkout-shell-page .woocommerce-message li::before {
	content: none !important;
}

/* Links inside notices. */
body.vivi-checkout-shell-page .woocommerce-error a,
body.vivi-checkout-shell-page .woocommerce-info a,
body.vivi-checkout-shell-page .woocommerce-message a {
	color: var(--vivi-color-orange, #996515) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	text-decoration: none !important;
}

body.vivi-checkout-shell-page .woocommerce-error a:hover,
body.vivi-checkout-shell-page .woocommerce-info a:hover,
body.vivi-checkout-shell-page .woocommerce-message a:hover {
	text-decoration: underline !important;
}

/* Remove default WooCommerce alert icon/clearfix artifacts. */
body.vivi-checkout-shell-page .woocommerce-error::after,
body.vivi-checkout-shell-page .woocommerce-info::after,
body.vivi-checkout-shell-page .woocommerce-message::after {
	display: none !important;
	content: none !important;
}

/* Field-level validation message inside payment card should be small and aligned, not a broken red line. */
body.vivi-checkout-shell-page .woocommerce-terms-and-conditions-wrapper .woocommerce-error,
body.vivi-checkout-shell-page .woocommerce-terms-and-conditions-wrapper .woocommerce-info,
body.vivi-checkout-shell-page .woocommerce-terms-and-conditions-wrapper .woocommerce-message,
body.vivi-checkout-shell-page .validate-required.woocommerce-invalid .woocommerce-error,
body.vivi-checkout-shell-page .validate-required.woocommerce-invalid .woocommerce-info {
	margin-top: var(--vivi-space-xs, 8px) !important;
	margin-bottom: 0 !important;
	padding: var(--vivi-space-xs, 8px) var(--vivi-space-sm, 12px) var(--vivi-space-xs, 8px) calc(var(--vivi-space-sm, 12px) + 16px) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	font-size: var(--vivi-fs-xs, 13px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
}

/* Checkbox invalid state follows VIVI color instead of browser/default red block. */
body.vivi-checkout-shell-page .validate-required.woocommerce-invalid input[type="checkbox"],
body.vivi-checkout-shell-page .woocommerce-invalid #terms {
	border-color: var(--vivi-color-orange, #996515) !important;
	outline: 0 !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--vivi-color-orange, #996515) 18%, transparent) !important;
}

@media (max-width: 900px) {
	body.vivi-checkout-shell-page form.checkout,
	body.vivi-checkout-shell-page form.checkout.woocommerce-checkout {
		grid-template-areas:
			"notice"
			"customer"
			"review" !important;
	}

	body.vivi-checkout-shell-page .woocommerce-NoticeGroup,
	body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout,
	body.vivi-checkout-shell-page form.checkout > .woocommerce-notices-wrapper {
		margin-bottom: var(--vivi-space-sm, 12px) !important;
	}

	body.vivi-checkout-shell-page .woocommerce-error,
	body.vivi-checkout-shell-page .woocommerce-info,
	body.vivi-checkout-shell-page .woocommerce-message {
		padding: var(--vivi-space-sm, 12px) var(--vivi-space-sm, 12px) var(--vivi-space-sm, 12px) calc(var(--vivi-space-sm, 12px) + 16px) !important;
		font-size: var(--vivi-fs-small, 14px) !important;
	}
}

/* =========================================================
   v0.9.635 Checkout notice final fix
   Force WooCommerce checkout errors to match VIVI cart notice style.
   Visual only; checkout logic is untouched.
========================================================= */

/* Checkout validation notices must be a clean full-width VIVI alert. */
body.vivi-checkout-shell-page .woocommerce-NoticeGroup,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout,
body.vivi-checkout-shell-page form.checkout > .woocommerce-NoticeGroup,
body.vivi-checkout-shell-page form.checkout > .woocommerce-NoticeGroup-checkout {
	grid-area: notice !important;
	grid-column: 1 / -1 !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 var(--vivi-space-md, 20px) !important;
	padding: 0 !important;
	border: 0 !important;
	outline: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

/* Hard reset the actual WooCommerce error UL. */
body.vivi-checkout-shell-page .woocommerce-NoticeGroup ul.woocommerce-error,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout ul.woocommerce-error,
body.vivi-checkout-shell-page form.checkout ul.woocommerce-error,
body.vivi-checkout-shell-page ul.woocommerce-error {
	position: relative !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: var(--vivi-space-sm, 12px) var(--vivi-space-md, 20px) var(--vivi-space-sm, 12px) calc(var(--vivi-space-md, 20px) + 18px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-top: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-right: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-bottom: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-left: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	outline: 0 !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-bg-soft, #f1f3f5) !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-regular, 400) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	list-style: none !important;
	box-shadow: none !important;
}

/* Reset any WooCommerce theme pseudo icons and replace with one VIVI dot. */
body.vivi-checkout-shell-page .woocommerce-NoticeGroup ul.woocommerce-error::before,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout ul.woocommerce-error::before,
body.vivi-checkout-shell-page form.checkout ul.woocommerce-error::before,
body.vivi-checkout-shell-page ul.woocommerce-error::before {
	content: "" !important;
	position: absolute !important;
	left: var(--vivi-space-sm, 12px) !important;
	top: calc(var(--vivi-space-sm, 12px) + .55em) !important;
	display: block !important;
	width: 8px !important;
	height: 8px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-orange, #996515) !important;
	box-shadow: none !important;
}

body.vivi-checkout-shell-page .woocommerce-NoticeGroup ul.woocommerce-error::after,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout ul.woocommerce-error::after,
body.vivi-checkout-shell-page form.checkout ul.woocommerce-error::after,
body.vivi-checkout-shell-page ul.woocommerce-error::after {
	display: none !important;
	content: none !important;
}

/* Each error line. */
body.vivi-checkout-shell-page .woocommerce-NoticeGroup ul.woocommerce-error li,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout ul.woocommerce-error li,
body.vivi-checkout-shell-page form.checkout ul.woocommerce-error li,
body.vivi-checkout-shell-page ul.woocommerce-error li {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	outline: 0 !important;
	background: transparent !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-regular, 400) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	list-style: none !important;
	box-shadow: none !important;
}

body.vivi-checkout-shell-page .woocommerce-NoticeGroup ul.woocommerce-error li::before,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout ul.woocommerce-error li::before,
body.vivi-checkout-shell-page form.checkout ul.woocommerce-error li::before,
body.vivi-checkout-shell-page ul.woocommerce-error li::before,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup ul.woocommerce-error li::after,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout ul.woocommerce-error li::after,
body.vivi-checkout-shell-page form.checkout ul.woocommerce-error li::after,
body.vivi-checkout-shell-page ul.woocommerce-error li::after {
	display: none !important;
	content: none !important;
}

/* Error links/text highlight. */
body.vivi-checkout-shell-page ul.woocommerce-error a {
	color: var(--vivi-color-orange, #996515) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	text-decoration: none !important;
}

body.vivi-checkout-shell-page ul.woocommerce-error a:hover {
	text-decoration: underline !important;
}

/* Terms checkbox inline validation should not create a second large black box. */
body.vivi-checkout-shell-page .woocommerce-terms-and-conditions-wrapper ul.woocommerce-error,
body.vivi-checkout-shell-page .woocommerce-terms-and-conditions-wrapper .woocommerce-error {
	margin-top: var(--vivi-space-xs, 8px) !important;
	margin-bottom: 0 !important;
	padding: var(--vivi-space-xs, 8px) var(--vivi-space-sm, 12px) var(--vivi-space-xs, 8px) calc(var(--vivi-space-sm, 12px) + 16px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-bg-soft, #f1f3f5) !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-xs, 13px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
	box-shadow: none !important;
}

@media (max-width: 900px) {
	body.vivi-checkout-shell-page ul.woocommerce-error {
		padding: var(--vivi-space-sm, 12px) var(--vivi-space-sm, 12px) var(--vivi-space-sm, 12px) calc(var(--vivi-space-sm, 12px) + 18px) !important;
	}
}


/* =========================================================
   v0.9.637 Checkout: hide ECPay payment method display block
   Scope: visual only. Keeps payment input/value in form for WooCommerce/ECPay checkout.
========================================================= */

body.vivi-checkout-shell-page li.wc_payment_method.payment_method_ry_ecpay_credit {
	position: absolute !important;
	left: -9999px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

/* When only ECPay is available, remove the empty payment-methods wrapper spacing. */
body.vivi-checkout-shell-page ul.wc_payment_methods.payment_methods.methods {
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	min-height: 0 !important;
	background: transparent !important;
}

/* =========================================================
   v0.9.643 Checkout hero return cart button
   Visual only; checkout logic is untouched.
========================================================= */

body.vivi-checkout-shell-page .vivi-checkout-shell-hero {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	grid-template-areas:
		"kicker action"
		"title action"
		"desc action" !important;
	align-items: end !important;
	column-gap: var(--vivi-space-md, 20px) !important;
	max-width: none !important;
	width: 100% !important;
}

body.vivi-checkout-shell-page .vivi-checkout-shell-hero .vivi-section-kicker {
	grid-area: kicker !important;
}

body.vivi-checkout-shell-page .vivi-checkout-shell-hero h1 {
	grid-area: title !important;
}

body.vivi-checkout-shell-page .vivi-checkout-shell-hero p:not(.vivi-section-kicker) {
	grid-area: desc !important;
}

body.vivi-checkout-shell-page .vivi-checkout-shell-hero-actions {
	grid-area: action !important;
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	align-self: center !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.vivi-checkout-shell-page .vivi-checkout-return-cart-btn {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 42px !important;
	padding: 0 var(--vivi-button-padding-x, 22px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-card, #fff) !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: 1 !important;
	text-decoration: none !important;
	white-space: nowrap !important;
	box-shadow: none !important;
}

body.vivi-checkout-shell-page .vivi-checkout-return-cart-btn:hover {
	border-color: var(--vivi-color-orange, #996515) !important;
	background: var(--vivi-color-orange, #996515) !important;
	color: var(--vivi-color-text-inverse, #fff) !important;
	text-decoration: none !important;
}

@media (max-width: 900px) {
	body.vivi-checkout-shell-page .vivi-checkout-shell-hero {
		grid-template-columns: minmax(0, 1fr) !important;
		grid-template-areas:
			"kicker"
			"title"
			"desc"
			"action" !important;
		align-items: start !important;
		row-gap: var(--vivi-space-sm, 12px) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-shell-hero-actions {
		justify-content: flex-start !important;
		width: 100% !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-return-cart-btn {
		width: 100% !important;
	}
}

/* =========================================================
   v0.9.644 Checkout login required panel
   Visual only. When WooCommerce requires login before checkout,
   VIVI renders a clean guidance card instead of the raw core text.
========================================================= */

body.vivi-checkout-shell-page .vivi-checkout-auth-required {
	margin: 0 0 var(--vivi-space-lg, 28px) !important;
	padding: var(--vivi-space-lg, 28px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-card, #fff) !important;
	box-shadow: var(--vivi-shadow-card, 0 18px 45px rgba(0,0,0,.06)) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-auth-required-inner {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	align-items: center !important;
	gap: var(--vivi-space-lg, 28px) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-auth-required-kicker {
	margin: 0 0 var(--vivi-space-xs, 8px) !important;
	color: var(--vivi-color-orange, #996515) !important;
	font-size: var(--vivi-fs-xs, 12px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	letter-spacing: .14em !important;
	line-height: var(--vivi-lh-compact, 1.25) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-auth-required h2 {
	margin: 0 0 var(--vivi-space-xs, 8px) !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-h3, 22px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.18) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-auth-required-copy p:not(.vivi-checkout-auth-required-kicker) {
	max-width: 680px !important;
	margin: 0 !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-body, 16px) !important;
	font-weight: var(--vivi-fw-regular, 400) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
}

body.vivi-checkout-shell-page .vivi-checkout-auth-required-actions {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-end !important;
	gap: var(--vivi-space-sm, 12px) !important;
	min-width: 180px !important;
}

body.vivi-checkout-shell-page .vivi-checkout-auth-required-actions .vivi-btn {
	min-width: 160px !important;
}

@media (max-width: 900px) {
	body.vivi-checkout-shell-page .vivi-checkout-auth-required {
		padding: var(--vivi-space-md, 20px) !important;
		border-radius: var(--vivi-radius, 8px) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-auth-required-inner {
		grid-template-columns: minmax(0, 1fr) !important;
		align-items: stretch !important;
		gap: var(--vivi-space-md, 20px) !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-auth-required-actions {
		justify-content: stretch !important;
		min-width: 0 !important;
	}

	body.vivi-checkout-shell-page .vivi-checkout-auth-required-actions .vivi-btn {
		width: 100% !important;
		min-width: 0 !important;
	}
}

@media (max-width: 520px) {
	body.vivi-checkout-shell-page .vivi-checkout-auth-required-actions .vivi-btn {
		flex-basis: 100% !important;
		width: 100% !important;
	}
}


/* =========================================================
   v0.9.647 Checkout notices: keep WooCommerce alerts inside page flow.
   Alerts must never float above or cover the shared header submenu.
   Visual only; checkout/payment AJAX and WooCommerce core stay untouched.
========================================================= */
body.vivi-checkout-shell-page .woocommerce-notices-wrapper,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout,
body.vivi-checkout-shell-page form.checkout > .woocommerce-notices-wrapper {
	position: static !important;
	top: auto !important;
	left: auto !important;
	right: auto !important;
	z-index: auto !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 0 var(--vivi-space-md, 20px) !important;
	padding: 0 !important;
	background: transparent !important;
	transform: none !important;
	pointer-events: auto !important;
}

body.vivi-checkout-shell-page .woocommerce-notices-wrapper:empty,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup:empty,
body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout:empty,
body.vivi-checkout-shell-page form.checkout > .woocommerce-notices-wrapper:empty {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

body.vivi-checkout-shell-page .woocommerce-error,
body.vivi-checkout-shell-page .woocommerce-info,
body.vivi-checkout-shell-page .woocommerce-message {
	position: relative !important;
	z-index: 0 !important;
	width: 100% !important;
	margin: 0 0 var(--vivi-space-md, 20px) !important;
	box-shadow: none !important;
}

@media (max-width: 900px) {
	body.vivi-checkout-shell-page .woocommerce-notices-wrapper,
	body.vivi-checkout-shell-page .woocommerce-NoticeGroup,
	body.vivi-checkout-shell-page .woocommerce-NoticeGroup-checkout,
	body.vivi-checkout-shell-page form.checkout > .woocommerce-notices-wrapper {
		position: static !important;
		top: auto !important;
		width: 100% !important;
		margin: 0 0 var(--vivi-space-sm, 12px) !important;
	}
}


/* =========================================================
   VIVI Thank You Page
   Scope: /checkout/order-received/ display layer only
========================================================= */
body.vivi-thankyou-page .vivi-thankyou-main {
	padding-bottom: calc(var(--vivi-space-xl, 48px) * 1.5) !important;
}

body.vivi-thankyou-page .vivi-thankyou-hero {
	max-width: 760px !important;
	margin: 0 0 var(--vivi-space-lg, 28px) !important;
}

body.vivi-thankyou-page .vivi-thankyou-hero .vivi-section-kicker {
	margin: 0 0 var(--vivi-space-xs, 8px) !important;
	color: var(--vivi-color-orange, #996515) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
}

body.vivi-thankyou-page .vivi-thankyou-hero h1 {
	margin: 0 0 var(--vivi-space-xs, 8px) !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-h2, 34px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.18) !important;
}

body.vivi-thankyou-page .vivi-thankyou-hero p:not(.vivi-section-kicker) {
	margin: 0 !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-body, 16px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
}

body.vivi-thankyou-page .vivi-thankyou-card {
	width: 100% !important;
	padding: var(--vivi-space-lg, 28px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-card, #fff) !important;
	box-shadow: var(--vivi-shadow-card, 0 18px 45px rgba(0,0,0,.06)) !important;
}

body.vivi-thankyou-page .vivi-thankyou-status {
	display: flex !important;
	align-items: flex-start !important;
	gap: var(--vivi-space-sm, 12px) !important;
	padding: var(--vivi-space-md, 20px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: color-mix(in srgb, var(--vivi-color-orange, #996515) 7%, var(--vivi-color-card, #fff)) !important;
}

body.vivi-thankyou-page .vivi-thankyou-status-dot {
	width: 10px !important;
	height: 10px !important;
	flex: 0 0 10px !important;
	margin-top: .45em !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-status-success, #166534) !important;
}

body.vivi-thankyou-page .vivi-thankyou-status.is-pending .vivi-thankyou-status-dot {
	background: var(--vivi-color-orange, #996515) !important;
}

body.vivi-thankyou-page .vivi-thankyou-status strong,
body.vivi-thankyou-page .vivi-thankyou-status span {
	display: block !important;
}

body.vivi-thankyou-page .vivi-thankyou-status strong {
	margin: 0 0 2px !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-h3, 22px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.18) !important;
}

body.vivi-thankyou-page .vivi-thankyou-status span {
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-body, 16px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
}

body.vivi-thankyou-page .vivi-thankyou-summary {
	display: grid !important;
	grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
	gap: var(--vivi-space-sm, 12px) !important;
	margin: var(--vivi-space-lg, 28px) 0 !important;
}

body.vivi-thankyou-page .vivi-thankyou-summary > div {
	padding: var(--vivi-space-sm, 12px) !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-bg-soft, #f7f8fa) !important;
	min-width: 0 !important;
}

body.vivi-thankyou-page .vivi-thankyou-summary span,
body.vivi-thankyou-page .vivi-thankyou-summary strong {
	display: block !important;
}

body.vivi-thankyou-page .vivi-thankyou-summary span {
	margin: 0 0 4px !important;
	color: var(--vivi-color-muted, #7a828c) !important;
	font-size: var(--vivi-fs-xs, 12px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.25) !important;
}

body.vivi-thankyou-page .vivi-thankyou-summary strong {
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.25) !important;
	word-break: break-word !important;
}

body.vivi-thankyou-page .vivi-order-detail-section {
	margin-top: var(--vivi-space-lg, 28px) !important;
}

body.vivi-thankyou-page .vivi-order-detail-section h3 {
	margin: 0 0 var(--vivi-space-md, 20px) !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	font-size: var(--vivi-fs-h3, 22px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: var(--vivi-lh-compact, 1.25) !important;
}

body.vivi-thankyou-page .vivi-order-detail-table {
	width: 100% !important;
	border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	overflow: hidden !important;
	background: var(--vivi-color-card, #fff) !important;
}

body.vivi-thankyou-page .vivi-order-detail-row {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 120px 150px !important;
	align-items: center !important;
	gap: var(--vivi-space-md, 20px) !important;
	padding: var(--vivi-space-md, 20px) !important;
	border-bottom: 1px solid var(--vivi-color-border, #dfe3e8) !important;
}

body.vivi-thankyou-page .vivi-order-detail-row:last-child {
	border-bottom: 0 !important;
}

body.vivi-thankyou-page .vivi-order-detail-table--has-tickets .vivi-order-detail-row {
	grid-template-columns: minmax(0, 1fr) 100px 140px 190px !important;
}

body.vivi-thankyou-page .vivi-order-detail-head {
	padding-top: var(--vivi-space-sm, 12px) !important;
	padding-bottom: var(--vivi-space-sm, 12px) !important;
	background: var(--vivi-color-bg-soft, #f7f8fa) !important;
	color: var(--vivi-color-orange, #996515) !important;
	font-size: var(--vivi-fs-xs, 12px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
}

body.vivi-thankyou-page .vivi-order-detail-row > div:nth-child(2),
body.vivi-thankyou-page .vivi-order-detail-row > div:nth-child(3) {
	text-align: right !important;
}

body.vivi-thankyou-page .vivi-order-price-inline {
	white-space: nowrap !important;
}

body.vivi-thankyou-page .vivi-order-product-cell {
	display: flex !important;
	align-items: center !important;
	gap: var(--vivi-space-md, 20px) !important;
	min-width: 0 !important;
}

body.vivi-thankyou-page .vivi-order-product-image {
	flex: 0 0 86px !important;
	width: 86px !important;
	height: 86px !important;
	border-radius: var(--vivi-radius, 8px) !important;
	overflow: hidden !important;
	background: var(--vivi-color-bg-soft, #f7f8fa) !important;
}

body.vivi-thankyou-page .vivi-order-product-image img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
}

body.vivi-thankyou-page .vivi-order-product-text {
	display: block !important;
	min-width: 0 !important;
}

body.vivi-thankyou-page .vivi-order-product-text strong,
body.vivi-thankyou-page .vivi-order-product-name {
	display: block !important;
	color: var(--vivi-color-heading, #0e1116) !important;
	text-decoration: none !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: 1.5 !important;
}

body.vivi-thankyou-page .vivi-order-product-name:hover {
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
}

body.vivi-thankyou-page .vivi-order-brand-link,
body.vivi-thankyou-page .vivi-order-product-text em {
	display: block !important;
	margin-top: 4px !important;
	color: var(--vivi-color-orange, #996515) !important;
	font-size: var(--vivi-fs-xs, 12px) !important;
	font-style: normal !important;
	font-weight: var(--vivi-fw-bold, 600) !important;
	line-height: 1.5 !important;
	text-decoration: none !important;
}

body.vivi-thankyou-page .vivi-order-item-meta {
	display: grid !important;
	gap: 2px !important;
	margin-top: 5px !important;
}

body.vivi-thankyou-page .vivi-order-item-meta small {
	color: var(--vivi-color-muted, #7a828c) !important;
	font-size: var(--vivi-fs-xs, 12px) !important;
	line-height: 1.5 !important;
}

body.vivi-thankyou-page .vivi-order-ticket-action {
	display: flex !important;
	justify-content: flex-end !important;
	align-items: center !important;
	gap: var(--vivi-space-xs, 8px) !important;
	flex-wrap: wrap !important;
}

body.vivi-thankyou-page .vivi-ticket-download-wait {
	background: color-mix(in srgb, var(--vivi-color-orange, #996515) 10%, var(--vivi-color-card, #fff)) !important;
	color: var(--vivi-color-orange, #996515) !important;
}

body.vivi-thankyou-page .vivi-thankyou-note {
	margin: var(--vivi-space-md, 20px) 0 0 !important;
	padding: var(--vivi-space-sm, 12px) var(--vivi-space-md, 20px) !important;
	border-radius: var(--vivi-radius, 8px) !important;
	background: var(--vivi-color-bg-soft, #f7f8fa) !important;
}

body.vivi-thankyou-page .vivi-thankyou-note p {
	margin: 0 !important;
	color: var(--vivi-color-text, #4f5660) !important;
	font-size: var(--vivi-fs-small, 14px) !important;
	line-height: var(--vivi-lh-body, 1.7) !important;
}

body.vivi-thankyou-page .vivi-thankyou-actions {
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: var(--vivi-space-sm, 12px) !important;
	margin: var(--vivi-space-lg, 28px) 0 0 !important;
}

body.vivi-thankyou-page .vivi-thankyou-actions .vivi-btn {
	min-width: 150px !important;
	justify-content: center !important;
}


@media (max-width: 1080px) {
	body.vivi-thankyou-page .vivi-order-detail-table--has-tickets .vivi-order-detail-row {
		grid-template-columns: minmax(0, 1fr) 80px 120px 170px !important;
	}
}

@media (max-width: 980px) {
	body.vivi-thankyou-page .vivi-thankyou-summary {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 760px) {
	body.vivi-thankyou-page .vivi-thankyou-card {
		padding: var(--vivi-space-md, 20px) !important;
	}

	body.vivi-thankyou-page .vivi-thankyou-summary {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	body.vivi-thankyou-page .vivi-order-detail-table {
		border: 0 !important;
		border-radius: 0 !important;
		background: transparent !important;
		overflow: visible !important;
	}

	body.vivi-thankyou-page .vivi-order-detail-head {
		display: none !important;
	}

	body.vivi-thankyou-page .vivi-order-detail-row,
	body.vivi-thankyou-page .vivi-order-detail-table--has-tickets .vivi-order-detail-row {
		display: block !important;
		padding: var(--vivi-space-md, 20px) !important;
		margin-bottom: var(--vivi-space-sm, 12px) !important;
		border: 1px solid var(--vivi-color-border, #dfe3e8) !important;
		border-radius: var(--vivi-radius, 8px) !important;
		background: var(--vivi-color-card, #fff) !important;
	}

	body.vivi-thankyou-page .vivi-order-detail-row > div:nth-child(2),
	body.vivi-thankyou-page .vivi-order-detail-row > div:nth-child(3),
	body.vivi-thankyou-page .vivi-order-ticket-action {
		display: flex !important;
		justify-content: space-between !important;
		gap: var(--vivi-space-sm, 12px) !important;
		margin-top: var(--vivi-space-sm, 12px) !important;
		text-align: left !important;
	}

	body.vivi-thankyou-page .vivi-order-detail-row > div:nth-child(2)::before,
	body.vivi-thankyou-page .vivi-order-detail-row > div:nth-child(3)::before,
	body.vivi-thankyou-page .vivi-order-ticket-action::before {
		content: attr(data-label) !important;
		color: var(--vivi-color-orange, #996515) !important;
		font-weight: var(--vivi-fw-bold, 600) !important;
	}

	body.vivi-thankyou-page .vivi-order-product-cell {
		align-items: flex-start !important;
	}

	body.vivi-thankyou-page .vivi-order-product-image {
		flex-basis: 74px !important;
		width: 74px !important;
		height: 74px !important;
	}

	body.vivi-thankyou-page .vivi-order-ticket-action .vivi-ticket-download-wait {
		width: auto !important;
		min-width: 0 !important;
	}

	body.vivi-thankyou-page .vivi-thankyou-actions {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	}

	body.vivi-thankyou-page .vivi-thankyou-actions .vivi-btn {
		width: 100% !important;
		min-width: 0 !important;
	}
}

@media (max-width: 430px) {
	body.vivi-thankyou-page .vivi-thankyou-actions {
		grid-template-columns: minmax(0, 1fr) !important;
	}
}
