/**
 * Cart + checkout polish — hierarchy only; do not touch Yoco / payment scripts.
 * Cart qty / CTAs aligned with PDP (buttons.css + product-single WhatsApp outline).
 */

/* ---- Cart ---- */

/*
 * Fluid cart shell — Ecomall uses form calc(100%-450px) + sidebar 410px which
 * leaves a dead gap / fails to stretch on the --gv-main-width band at 100% zoom.
 * Fill the content band with a fluid 2-col grid instead.
 */
body.woocommerce-cart .site-content .container,
body.woocommerce-cart #main > .container,
body.woocommerce-cart article > .container,
body.woocommerce-cart .content-wrapper > .container {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  box-sizing: border-box !important;
}

/*
 * Mobile-first cart shell — single column by default.
 * Desktop (≥992) only: form | totals. Never set grid-column:2 outside
 * that MQ — an unmatched column-2 placement creates an implicit second
 * track and crushes the form to ~57px on phone widths.
 *
 * Exclude .cart-dropdown-form — ThemeSky mini-cart also has class
 * .woocommerce; a bare .woocommerce-cart .woocommerce { display:grid }
 * overrides theme display:none and flashes the side/dropdown cart on load.
 */
body.woocommerce-cart article > .woocommerce,
.woocommerce-cart .woocommerce:not(.cart-dropdown-form):not(.dropdown-container) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  column-gap: clamp(1.25rem, 3vw, 2.5rem) !important;
  row-gap: var(--gv-space-5) !important;
  align-items: start !important;
  justify-content: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin-bottom: var(--gv-space-6) !important;
  padding-bottom: var(--gv-space-4) !important;
}

body.woocommerce-cart article > .woocommerce > *:not(.woocommerce-cart-form):not(.cart-collaterals),
.woocommerce-cart .woocommerce:not(.cart-dropdown-form):not(.dropdown-container) > *:not(.woocommerce-cart-form):not(.cart-collaterals) {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}

.woocommerce-cart .woocommerce-cart-form,
.woocommerce-cart article .woocommerce form.woocommerce-cart-form,
.woocommerce .woocommerce-cart-form,
.woocommerce-cart .woocommerce .cart-collaterals,
.woocommerce-cart article .woocommerce .cart-collaterals,
.woocommerce-cart .cart-collaterals {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  float: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.woocommerce-cart .woocommerce .cart-collaterals,
.woocommerce-cart article .woocommerce .cart-collaterals,
.woocommerce-cart .cart-collaterals {
  position: static;
  top: auto;
  z-index: 2;
  align-self: stretch;
  max-height: none;
  overflow: visible;
}

/* Desktop: 2-col + sticky totals */
@media (min-width: 992px) {
  body.woocommerce-cart article > .woocommerce,
  body.woocommerce-cart .woocommerce:not(.cart-dropdown-form):not(.dropdown-container),
  .woocommerce-cart .woocommerce:not(.cart-dropdown-form):not(.dropdown-container) {
    grid-template-columns: minmax(0, 1fr) minmax(260px, min(34%, 22rem)) !important;
    overflow: visible !important;
  }

  .woocommerce-cart .woocommerce-cart-form,
  .woocommerce-cart article .woocommerce form.woocommerce-cart-form,
  .woocommerce .woocommerce-cart-form {
    grid-column: 1 !important;
  }

  .woocommerce-cart .woocommerce .cart-collaterals,
  .woocommerce-cart article .woocommerce .cart-collaterals,
  .woocommerce-cart .cart-collaterals {
    grid-column: 2 !important;
    position: sticky;
    top: calc(var(--gv-touch, 44px) + 1.5rem);
    align-self: start;
    max-height: calc(100vh - (var(--gv-touch, 44px) + 2.5rem));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}

.woocommerce-cart table.cart,
.woocommerce-cart table.shop_table.cart {
  border-collapse: collapse !important;
  border-spacing: 0 !important;
  border-color: var(--gv-color-border);
  width: 100% !important;
  max-width: 100% !important;
  table-layout: auto !important;
}

/* ≤991 leftovers — keep sticky off; column placement owned by mobile-first rules */
@media (max-width: 991px) {
  .woocommerce-cart .woocommerce .cart-collaterals,
  .woocommerce-cart article .woocommerce .cart-collaterals,
  .woocommerce-cart .cart-collaterals {
    position: static !important;
    top: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

/*
 * Column headings — brand blue text.
 * Do NOT put border-bottom on each th (fragmented dashes under PRODUCT/PRICE/…).
 * One continuous rule on thead tr; never target .cart_totals th (that made the
 * short Subtotal/Total stub lines).
 */
.woocommerce-cart table.cart thead th,
.woocommerce-cart table.shop_table.cart thead th {
  font-size: var(--gv-text-sm) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.06em !important;
  color: var(--gv-color-blue) !important;
  font-weight: var(--gv-font-weight-bold) !important;
  border: 0 !important;
  border-bottom: 0 !important;
  padding-top: var(--gv-space-3) !important;
  padding-bottom: var(--gv-space-3) !important;
  background: transparent !important;
  vertical-align: bottom !important;
  box-shadow: none !important;
}

.woocommerce-cart table.cart thead tr,
.woocommerce-cart table.shop_table.cart thead tr {
  border-bottom: 2px solid var(--gv-color-blue) !important;
  box-shadow: none !important;
}

/*
 * Row separators on tr only — per-td borders fragment under html zoom
 * (short stubs under remove/thumb/price/qty).
 */
.woocommerce-cart table.cart td,
.woocommerce-cart table.shop_table.cart td {
  border: 0 !important;
  border-bottom: 0 !important;
  color: var(--gv-color-text);
  vertical-align: middle;
  padding-top: var(--gv-space-4) !important;
  padding-bottom: var(--gv-space-4) !important;
  box-shadow: none !important;
}

.woocommerce-cart table.cart tbody tr.cart_item,
.woocommerce-cart table.shop_table.cart tbody tr.cart_item {
  border: 0 !important;
  border-bottom: 1px solid var(--gv-color-border) !important;
  box-shadow: none !important;
}

/* Avoid double line: last product row + actions border-top */
.woocommerce-cart table.cart tbody tr.cart_item:has(+ tr td.actions),
.woocommerce-cart table.shop_table.cart tbody tr.cart_item:has(+ tr td.actions) {
  border-bottom: 0 !important;
}

/* Sample row: x | thumb | name | price | qty | subtotal — fluid columns */
.woocommerce-cart table.cart td.product-thumbnail img,
.woocommerce-cart table.shop_table td.product-thumbnail img {
  width: 72px !important;
  max-width: 72px !important;
  height: auto !important;
  border-radius: var(--gv-radius-sm);
}

.woocommerce-cart table.cart td.product-name {
  width: auto !important;
  max-width: none !important;
}

.woocommerce-cart table.cart td.product-name a {
  color: var(--gv-color-blue);
  font-weight: var(--gv-font-weight-medium);
  text-decoration: none;
  line-height: 1.35;
}

.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal {
  white-space: nowrap;
  text-align: left;
}

.woocommerce-cart table.cart td.product-name a:hover {
  color: var(--gv-color-blue);
  text-decoration: underline;
}

.woocommerce-cart table.cart .product-remove a.remove {
  color: var(--gv-color-text-muted) !important;
  border-color: transparent !important;
  background: transparent !important;
}

.woocommerce-cart table.cart .product-remove a.remove:hover {
  color: var(--gv-color-blue) !important;
  background: transparent !important;
}

.woocommerce-cart table.cart .product-price .amount,
.woocommerce-cart table.cart .product-subtotal .amount {
  color: var(--gv-color-blue);
  font-weight: var(--gv-font-weight-medium);
}

/*
 * Quantity — Ecomall uses absolute +/- inside a 60px .quantity box
 * (table.shop_table .product-quantity .quantity { width: 60px }), which
 * clips our flex control so only “−” remains visible. Beat that rule and
 * rebuild a clear [−][n][+] stepper.
 */
.woocommerce-cart table.shop_table td.product-quantity,
.woocommerce-cart table.cart td.product-quantity {
  width: 140px !important;
  min-width: 140px !important;
  max-width: none !important;
  text-align: left !important;
  /* Kill orphan underline under the stepper only (theme / cell artifacts) */
  background: transparent !important;
  box-shadow: none !important;
}

.woocommerce-cart table.cart td.product-quantity::before,
.woocommerce-cart table.cart td.product-quantity::after,
.woocommerce-cart table.shop_table td.product-quantity::before,
.woocommerce-cart table.shop_table td.product-quantity::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
}

.woocommerce-cart table.shop_table .product-quantity .quantity,
.woocommerce-cart table.cart .product-quantity .quantity,
.woocommerce-cart .quantity {
  display: inline-block !important;
  width: 124px !important;
  min-width: 124px !important;
  max-width: 124px !important;
  height: var(--gv-touch) !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  position: relative !important;
  vertical-align: middle;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  overflow: visible !important;
}

/*
 * One outer frame only — clip children to radius.
 * Dividers via inset box-shadow (not cell borders) so zoom doesn’t open
 * corner gaps between outer blue border and internal rules.
 */
.woocommerce-cart table.shop_table .product-quantity .quantity .number-button,
.woocommerce-cart table.cart .product-quantity .quantity .number-button,
.woocommerce-cart .quantity .number-button {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  gap: 0 !important;
  width: 124px !important;
  min-width: 124px !important;
  max-width: 124px !important;
  height: var(--gv-touch) !important;
  min-height: var(--gv-touch) !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  border: 1px solid var(--gv-color-blue) !important;
  border-radius: var(--gv-radius-sm) !important;
  background: #ffffff !important;
  overflow: hidden !important;
  float: none !important;
  position: relative !important;
  box-shadow: none !important;
  outline: none !important;
}

.woocommerce-cart table.shop_table .product-quantity .quantity .minus,
.woocommerce-cart table.shop_table .product-quantity .quantity .plus,
.woocommerce-cart table.cart .product-quantity .quantity .minus,
.woocommerce-cart table.cart .product-quantity .quantity .plus,
.woocommerce-cart .quantity .minus,
.woocommerce-cart .quantity .plus {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 36px !important;
  width: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--gv-color-bg-subtle) !important;
  background-image: none !important;
  color: var(--gv-color-blue) !important;
  font-size: 1.2rem !important;
  font-weight: var(--gv-font-weight-bold) !important;
  line-height: 1 !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  float: none !important;
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  z-index: 1 !important;
  opacity: 1 !important;
  visibility: visible !important;
  outline: none !important;
}

.woocommerce-cart table.shop_table .product-quantity .quantity .minus:hover,
.woocommerce-cart table.shop_table .product-quantity .quantity .plus:hover,
.woocommerce-cart .quantity .minus:hover,
.woocommerce-cart .quantity .plus:hover,
.woocommerce-cart .quantity .minus:focus-visible,
.woocommerce-cart .quantity .plus:focus-visible {
  background: var(--gv-color-blue) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}

.woocommerce-cart table.shop_table .product-quantity .quantity .minus,
.woocommerce-cart .quantity .minus {
  /* Divider toward qty — same blue as outer frame */
  box-shadow: inset -1px 0 0 var(--gv-color-blue) !important;
}

.woocommerce-cart table.shop_table .product-quantity .quantity .plus,
.woocommerce-cart .quantity .plus {
  box-shadow: inset 1px 0 0 var(--gv-color-blue) !important;
}

.woocommerce-cart table.shop_table .product-quantity .quantity .minus:hover,
.woocommerce-cart .quantity .minus:hover,
.woocommerce-cart .quantity .minus:focus-visible {
  box-shadow: inset -1px 0 0 var(--gv-color-blue) !important;
}

.woocommerce-cart table.shop_table .product-quantity .quantity .plus:hover,
.woocommerce-cart .quantity .plus:hover,
.woocommerce-cart .quantity .plus:focus-visible {
  box-shadow: inset 1px 0 0 var(--gv-color-blue) !important;
}

.woocommerce-cart table.shop_table .product-quantity .quantity input.qty,
.woocommerce-cart table.cart .product-quantity .quantity input.qty,
.woocommerce-cart .quantity input.qty,
.woocommerce-cart .quantity .qty {
  display: block !important;
  flex: 1 1 auto !important;
  width: 50px !important;
  min-width: 0 !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 2px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #ffffff !important;
  color: var(--gv-color-blue) !important;
  font-size: var(--gv-text-md) !important;
  font-weight: var(--gv-font-weight-bold) !important;
  line-height: var(--gv-touch) !important;
  text-align: center !important;
  box-shadow: none !important;
  appearance: textfield !important;
  -moz-appearance: textfield !important;
  float: none !important;
  position: static !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  opacity: 1 !important;
  visibility: visible !important;
  z-index: 1 !important;
}

.woocommerce-cart .quantity .qty::-webkit-outer-spin-button,
.woocommerce-cart .quantity .qty::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

/*
 * Actions row (sample): [Chat with Sales] …… [Update cart] [Empty cart]
 * JS moves Chat into td.actions; margin-right:auto keeps it left.
 */
.woocommerce-cart table.shop_table.cart td.actions,
.woocommerce-cart table.cart td.actions,
.woocommerce-cart td.actions {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: var(--gv-space-3) !important;
  width: 100% !important;
  text-align: left !important;
  float: none !important;
  padding: var(--gv-space-4) 0 var(--gv-space-2) !important;
  margin: 0 !important;
  border: 0 !important;
  border-top: 1px solid var(--gv-color-border) !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

/* Breath between cart CTAs / totals and the site footer */
body.woocommerce-cart #primary.site-content,
body.woocommerce-cart #primary,
body.woocommerce-cart .site-content,
body.woocommerce-cart article.type-page,
body.woocommerce-cart article.page {
  padding-bottom: var(--gv-section-y) !important;
  margin-bottom: 0 !important;
}

.woocommerce-cart table.shop_table.cart td.actions .button,
.woocommerce-cart table.cart td.actions .button,
.woocommerce-cart td.actions .button,
.woocommerce-cart .actions .button,
.woocommerce-cart .actions button.button {
  float: none !important;
  margin: 0 !important;
}

.woocommerce-cart td.actions .coupon {
  float: none !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: var(--gv-space-2) !important;
  margin: 0 !important;
  width: auto !important;
  order: 0;
}

/* Chat left; Update then Empty on the right */
.woocommerce-cart td.actions .div_evowap_btn,
.woocommerce-cart td.actions .woo-order-on-whatsapp,
.woocommerce-cart td.actions [class*='order-on-whatsapp'],
.woocommerce-cart td.actions .omw_whatsapp_button,
.woocommerce-cart td.actions > a.evowap_btn,
.woocommerce-cart td.actions > a[href*='wa.me'] {
  order: 1 !important;
  margin: 0 auto 0 0 !important;
  flex: 0 0 auto !important;
}

.woocommerce-cart td.actions button[name='update_cart'],
.woocommerce-cart td.actions .button[name='update_cart'] {
  order: 2 !important;
}

.woocommerce-cart td.actions .empty-cart-button,
.woocommerce-cart td.actions button.empty-cart-button,
.woocommerce-cart td.actions button[name='ts_empty_cart'] {
  order: 3 !important;
}

.woocommerce-cart .actions .button,
.woocommerce-cart .actions button.button,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: var(--gv-touch) !important;
  padding: 0 var(--gv-space-5) !important;
  border-radius: var(--gv-radius-sm) !important;
  font-weight: var(--gv-font-weight-medium) !important;
  font-size: var(--gv-text-md) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  transition: background-color var(--gv-transition, 150ms ease),
    color var(--gv-transition, 150ms ease),
    border-color var(--gv-transition, 150ms ease);
}

/* Empty cart + Update cart — outline (PDP secondary / WA pattern) */
.woocommerce-cart .actions .empty-cart-button,
.woocommerce-cart .actions button.empty-cart-button,
.woocommerce-cart .actions button[name='ts_empty_cart'],
.woocommerce-cart .actions button[name='update_cart'],
.woocommerce-cart .actions .button[name='update_cart'] {
  background-color: #ffffff !important;
  background-image: none !important;
  color: var(--gv-color-blue) !important;
  border: 1px solid var(--gv-color-blue) !important;
  opacity: 1 !important;
}

/* WC keeps Update cart disabled until qty changes — don't paint it as active. */
.woocommerce-cart .actions button[name='update_cart']:disabled,
.woocommerce-cart .actions .button[name='update_cart']:disabled,
.woocommerce-cart .actions button[name='update_cart'][disabled],
.woocommerce-cart .actions .button[name='update_cart'][disabled] {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

.woocommerce-cart .actions .empty-cart-button:hover,
.woocommerce-cart .actions .empty-cart-button:focus-visible,
.woocommerce-cart .actions button[name='ts_empty_cart']:hover,
.woocommerce-cart .actions button[name='update_cart']:hover,
.woocommerce-cart .actions button[name='update_cart']:focus-visible {
  background-color: var(--gv-color-blue) !important;
  color: #ffffff !important;
  border: 1px solid var(--gv-color-blue) !important;
  filter: none !important;
}

/* Proceed to checkout — solid primary (PDP ATC) */
.woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.woocommerce-cart a.checkout-button.button.alt {
  width: 100% !important;
  background-color: var(--gv-color-blue) !important;
  background-image: none !important;
  color: #ffffff !important;
  border: 1px solid var(--gv-color-blue) !important;
  opacity: 1 !important;
}

.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:focus-visible,
.woocommerce-cart a.checkout-button.button.alt:hover,
.woocommerce-cart a.checkout-button.button.alt:focus-visible {
  background-color: #ffffff !important;
  color: var(--gv-color-blue) !important;
  border: 1px solid var(--gv-color-blue) !important;
  filter: none !important;
}

/*
 * Cart totals panel chrome (width/float owned by fluid grid above).
 */
.woocommerce-cart .woocommerce .cart-collaterals,
.woocommerce-cart .cart-collaterals {
  border: 1px solid var(--gv-color-blue) !important;
  border-radius: var(--gv-radius-md) !important;
  padding: var(--gv-space-4) !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
  align-self: start !important;
}

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .cart_totals {
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.woocommerce-cart .cart_totals > h2,
.woocommerce-cart .cart-collaterals .cart_totals > h2 {
  color: var(--gv-color-blue) !important;
  font-size: var(--gv-text-lg) !important;
  font-weight: var(--gv-font-weight-bold) !important;
  margin: 0 0 var(--gv-space-3) !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  border: 0 !important;
  box-shadow: none !important;
}

.woocommerce-cart .cart_totals table.shop_table,
.woocommerce-cart .cart_totals .shop_table {
  border: 0 !important;
  border-collapse: collapse !important;
  width: 100% !important;
}

/* Kill cell borders — flex th was only label-wide → short stub lines */
.woocommerce-cart .cart_totals .shop_table th,
.woocommerce-cart .cart_totals .shop_table td,
.woocommerce-cart .cart_totals .shop_table tr {
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
}

.woocommerce-cart .cart_totals .shop_table th {
  color: var(--gv-color-blue) !important;
  font-weight: var(--gv-font-weight-medium) !important;
  font-size: var(--gv-text-sm) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}

.woocommerce-cart .cart_totals .shop_table td,
.woocommerce-cart .cart_totals .order-total .amount {
  color: var(--gv-color-blue) !important;
  font-weight: var(--gv-font-weight-bold) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* Full-width separator above TOTAL (on the flex row, not the short th) */
.woocommerce-cart .cart_totals .shop_table tr.order-total {
  border-top: 1px solid var(--gv-color-border) !important;
  margin-top: var(--gv-space-2) !important;
  padding-top: var(--gv-space-2) !important;
}

.woocommerce-cart .cart_totals .shop_table tr.order-total th,
.woocommerce-cart .cart_totals .shop_table tr.order-total td {
  padding-top: var(--gv-space-3) !important;
  padding-bottom: var(--gv-space-3) !important;
  vertical-align: middle !important;
}

/* Keep “R998 (includes R130 Tax)” on one line */
.woocommerce-cart .cart_totals .shop_table tr.order-total td {
  white-space: nowrap !important;
}

.woocommerce-cart .cart_totals .order-total strong,
.woocommerce-cart .cart_totals .order-total .includes_tax,
.woocommerce-cart .cart_totals .order-total small {
  color: var(--gv-color-text-secondary);
  font-weight: var(--gv-font-weight-regular);
  white-space: nowrap !important;
  display: inline !important;
}

/* Stray hairline above checkout CTA */
.woocommerce-cart .wc-proceed-to-checkout,
.woocommerce-cart .wc-proceed-to-checkout::before,
.woocommerce-cart .wc-proceed-to-checkout::after {
  border: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
}

/*
 * Chat with Sales on cart — same outline blue as PDP (not WhatsApp green).
 * When inside td.actions (after JS relocate), sit inline on the sample row.
 */
.woocommerce-cart .woo-order-on-whatsapp,
.woocommerce-cart [class*='order-on-whatsapp'],
.woocommerce-cart .div_evowap_btn,
.woocommerce-cart .omw_whatsapp_button {
  display: block !important;
  width: auto !important;
  max-width: 100% !important;
  margin: var(--gv-space-4) 0 0 !important;
  box-sizing: border-box !important;
}

.woocommerce-cart td.actions .woo-order-on-whatsapp,
.woocommerce-cart td.actions [class*='order-on-whatsapp'],
.woocommerce-cart td.actions .div_evowap_btn,
.woocommerce-cart td.actions .omw_whatsapp_button {
  display: inline-flex !important;
  margin: 0 auto 0 0 !important;
}

.woocommerce-cart .omw-btn,
.woocommerce-cart .wa-order-button,
.woocommerce-cart a.button.omw_send_order,
.woocommerce-cart .woo-order-on-whatsapp a,
.woocommerce-cart [class*='order-on-whatsapp'] a,
.woocommerce-cart .omw_whatsapp_button a,
.woocommerce-cart .div_evowap_btn a,
.woocommerce-cart .div_evowap_btn .button,
.woocommerce-cart .div_evowap_btn a.evowap_btn,
.woocommerce-cart a.evowap_btn,
.woocommerce-cart a.button[href*='wa.me'],
.woocommerce-cart a.button[href*='whatsapp'],
.woocommerce-cart a[href*='wa.me'].button,
.woocommerce-cart .div_evowap_btn a[href*='wa.me'] {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.55rem !important;
  width: auto !important;
  max-width: 100% !important;
  min-height: var(--gv-touch) !important;
  padding: 0 var(--gv-space-5) !important;
  margin: 0 !important;
  border-radius: var(--gv-radius-sm) !important;
  background-color: #ffffff !important;
  background-image: none !important;
  color: var(--gv-color-blue, #1f2a7c) !important;
  border: 1px solid var(--gv-color-blue, #1f2a7c) !important;
  box-shadow: none !important;
  outline: none !important;
  font-weight: var(--gv-font-weight-medium) !important;
  text-transform: none !important;
  text-decoration: none !important;
  line-height: 1.2 !important;
  fill: var(--gv-color-blue, #1f2a7c) !important;
  opacity: 1 !important;
}

.woocommerce-cart .omw-btn:hover,
.woocommerce-cart .wa-order-button:hover,
.woocommerce-cart a.button.omw_send_order:hover,
.woocommerce-cart .woo-order-on-whatsapp a:hover,
.woocommerce-cart .div_evowap_btn a:hover,
.woocommerce-cart a.evowap_btn:hover,
.woocommerce-cart a.button[href*='wa.me']:hover,
.woocommerce-cart .div_evowap_btn a[href*='wa.me']:hover {
  background-color: var(--gv-color-blue, #1f2a7c) !important;
  color: #ffffff !important;
  border-color: var(--gv-color-blue, #1f2a7c) !important;
  fill: #ffffff !important;
  filter: none !important;
}

.woocommerce-cart .div_evowap_btn a img,
.woocommerce-cart a.evowap_btn img,
.woocommerce-cart a.button[href*='wa.me'] img {
  display: inline-block !important;
  width: 1.125rem !important;
  height: 1.125rem !important;
  margin: 0 !important;
  object-fit: contain !important;
  filter: brightness(0) saturate(100%) invert(14%) sepia(60%) saturate(2500%) hue-rotate(220deg) brightness(0.85) !important;
}

.woocommerce-cart .div_evowap_btn a:hover img,
.woocommerce-cart a.evowap_btn:hover img,
.woocommerce-cart a.button[href*='wa.me']:hover img {
  filter: brightness(0) invert(1) !important;
}

.woocommerce-cart .div_evowap_btn a svg,
.woocommerce-cart a.evowap_btn svg,
.woocommerce-cart a.button[href*='wa.me'] svg,
.woocommerce-cart .div_evowap_btn a svg *,
.woocommerce-cart a.evowap_btn svg *,
.woocommerce-cart a.button[href*='wa.me'] svg * {
  width: 1.125rem !important;
  height: 1.125rem !important;
  color: var(--gv-color-blue, #1f2a7c) !important;
  fill: var(--gv-color-blue, #1f2a7c) !important;
}

.woocommerce-cart .div_evowap_btn a:hover svg,
.woocommerce-cart .div_evowap_btn a:hover svg *,
.woocommerce-cart a.evowap_btn:hover svg,
.woocommerce-cart a.evowap_btn:hover svg *,
.woocommerce-cart a.button[href*='wa.me']:hover svg,
.woocommerce-cart a.button[href*='wa.me']:hover svg * {
  color: #ffffff !important;
  fill: #ffffff !important;
}

@media (max-width: 767px) {
  /*
   * Mobile cart polish (1.0.386):
   * - Item card: thumb+name row, aligned PRICE / QTY / SUBTOTAL rows
   * - Compact CTAs (not 48px towers)
   * - Light actions strip (no heavy card chrome)
   * Keep ProductAnker / TotalR / 2-col crush fixes from 1.0.378.
   */
  body.woocommerce-cart article > .woocommerce,
  .woocommerce-cart .woocommerce:not(.cart-dropdown-form):not(.dropdown-container) {
    row-gap: var(--gv-space-3) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .woocommerce-cart table.cart,
  .woocommerce-cart table.shop_table_responsive,
  .woocommerce-cart table.shop_table.cart {
    border: 0 !important;
    width: 100% !important;
  }

  .woocommerce-cart table.shop_table_responsive thead,
  .woocommerce-cart table.cart thead {
    display: none !important;
  }

  /*
   * Product rows — compact card.
   * Desktop zeros border-bottom on cart_item:has(+ actions); that beats a
   * plain mobile `border:` shorthand and drops the card’s bottom edge.
   */
  .woocommerce-cart table.shop_table.cart tbody tr.cart_item,
  .woocommerce-cart table.shop_table_responsive.cart tbody tr.cart_item,
  .woocommerce-cart table.shop_table_responsive tr.cart_item,
  .woocommerce-cart table.cart tbody tr.cart_item,
  .woocommerce-cart table.shop_table.cart tbody tr.cart_item:has(+ tr td.actions),
  .woocommerce-cart table.shop_table_responsive.cart tbody tr.cart_item:has(+ tr td.actions),
  .woocommerce-cart table.shop_table_responsive tr.cart_item:has(+ tr td.actions),
  .woocommerce-cart table.cart tbody tr.cart_item:has(+ tr td.actions) {
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) !important;
    column-gap: 0.75rem !important;
    row-gap: 0 !important;
    align-items: start !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 var(--gv-space-3) !important;
    padding: 0.75rem 2.5rem 0.75rem 0.75rem !important;
    background: #ffffff !important;
    border-style: solid !important;
    border-width: 1px !important;
    border-color: var(--gv-color-border, #e5e7eb) !important;
    border-top: 1px solid var(--gv-color-border, #e5e7eb) !important;
    border-right: 1px solid var(--gv-color-border, #e5e7eb) !important;
    border-bottom: 1px solid var(--gv-color-border, #e5e7eb) !important;
    border-left: 1px solid var(--gv-color-border, #e5e7eb) !important;
    border-radius: var(--gv-radius-md, 8px) !important;
    box-shadow: none !important;
    outline: none !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: visible !important;
  }

  .woocommerce-cart table.shop_table.cart tbody tr.cart_item:has(+ tr td.actions),
  .woocommerce-cart table.shop_table_responsive tr.cart_item:has(+ tr td.actions),
  .woocommerce-cart table.cart tbody tr.cart_item:has(+ tr td.actions) {
    margin-bottom: var(--gv-space-2) !important;
    border-bottom: 1px solid var(--gv-color-border, #e5e7eb) !important;
  }

  .woocommerce-cart table.shop_table_responsive td,
  .woocommerce-cart table.cart td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0.3rem 0 !important;
    text-align: left !important;
  }

  /* Remove — corner control, never inline with product title (“Whitex”) */
  .woocommerce-cart table.shop_table_responsive td.product-remove,
  .woocommerce-cart table.cart td.product-remove {
    position: absolute !important;
    top: 0.4rem !important;
    right: 0.4rem !important;
    left: auto !important;
    float: none !important;
    grid-column: unset !important;
    grid-row: unset !important;
    width: 2rem !important;
    height: 2rem !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 3 !important;
    text-align: center !important;
    pointer-events: auto !important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-remove a,
  .woocommerce-cart table.shop_table_responsive td.product-remove a.remove,
  .woocommerce-cart table.cart td.product-remove a,
  .woocommerce-cart table.cart td.product-remove a.remove {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 2rem !important;
    height: 2rem !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 1.35rem !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    color: var(--gv-color-text-muted, #6b7280) !important;
    text-decoration: none !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  /* ThemeSky icon-font ::before + text “×” stacked → one glyph only */
  .woocommerce-cart table.shop_table_responsive td.product-remove a::before,
  .woocommerce-cart table.shop_table_responsive td.product-remove a::after,
  .woocommerce-cart table.shop_table_responsive td.product-remove a.remove::before,
  .woocommerce-cart table.shop_table_responsive td.product-remove a.remove::after,
  .woocommerce-cart table.cart td.product-remove a::before,
  .woocommerce-cart table.cart td.product-remove a::after,
  .woocommerce-cart table.cart td.product-remove a.remove::before,
  .woocommerce-cart table.cart td.product-remove a.remove::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Thumb + name share the top row */
  .woocommerce-cart table.shop_table_responsive td.product-thumbnail,
  .woocommerce-cart table.cart td.product-thumbnail {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 56px !important;
    max-width: 56px !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .woocommerce-cart table.cart td.product-thumbnail img,
  .woocommerce-cart table.shop_table td.product-thumbnail img {
    width: 56px !important;
    max-width: 56px !important;
    height: auto !important;
    display: block !important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-name,
  .woocommerce-cart table.cart td.product-name {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: auto !important;
    max-width: 100% !important;
    min-width: 0 !important;
    /* Reserve corner for remove × so title never reads as “Whitex” */
    padding: 0 0.25rem 0.35rem 0 !important;
    padding-right: 0.25rem !important;
    margin-right: 1.75rem !important;
    align-self: center !important;
    box-sizing: border-box !important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-name a,
  .woocommerce-cart table.cart td.product-name a {
    font-size: var(--gv-text-sm) !important;
    line-height: 1.35 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    padding-right: 0 !important;
    margin-right: 0 !important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-price,
  .woocommerce-cart table.shop_table_responsive td.product-quantity,
  .woocommerce-cart table.shop_table_responsive td.product-subtotal,
  .woocommerce-cart table.cart td.product-price,
  .woocommerce-cart table.cart td.product-quantity,
  .woocommerce-cart table.cart td.product-subtotal {
    grid-column: 1 / -1 !important;
  }

  /*
   * Woo/theme data-title ::before — label never concatenates into value
   * (ProductAnker / TotalR249).
   */
  .woocommerce-cart table.shop_table_responsive td::before,
  .woocommerce-cart table.cart td::before,
  .woocommerce-cart .cart_totals table td::before,
  .woocommerce-cart .cart_totals .shop_table td::before {
    content: attr(data-title) !important;
    display: block !important;
    float: none !important;
    width: auto !important;
    margin: 0 0 0.2rem !important;
    padding: 0 !important;
    font-size: var(--gv-text-xs, 0.75rem) !important;
    font-weight: var(--gv-font-weight-medium) !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: var(--gv-color-text-muted, #6b7280) !important;
    line-height: 1.3 !important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-remove::before,
  .woocommerce-cart table.shop_table_responsive td.product-thumbnail::before,
  .woocommerce-cart table.cart td.product-remove::before,
  .woocommerce-cart table.cart td.product-thumbnail::before,
  .woocommerce-cart table.shop_table_responsive td.actions::before,
  .woocommerce-cart table.cart td.actions::before,
  .woocommerce-cart table.shop_table_responsive td.product-name::before,
  .woocommerce-cart table.cart td.product-name::before {
    content: none !important;
    display: none !important;
  }

  /* PRICE / QTY / SUBTOTAL — same one-line rhythm: label left, value right */
  .woocommerce-cart table.shop_table_responsive td.product-price,
  .woocommerce-cart table.shop_table_responsive td.product-quantity,
  .woocommerce-cart table.shop_table_responsive td.product-subtotal,
  .woocommerce-cart table.cart td.product-price,
  .woocommerce-cart table.cart td.product-quantity,
  .woocommerce-cart table.cart td.product-subtotal {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.75rem !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0.4rem 0 !important;
    margin: 0 !important;
    border-top: 1px solid rgba(31, 42, 124, 0.08) !important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-price::before,
  .woocommerce-cart table.shop_table_responsive td.product-quantity::before,
  .woocommerce-cart table.shop_table_responsive td.product-subtotal::before,
  .woocommerce-cart table.cart td.product-price::before,
  .woocommerce-cart table.cart td.product-quantity::before,
  .woocommerce-cart table.cart td.product-subtotal::before {
    display: block !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    content: attr(data-title) !important;
  }

  .woocommerce-cart table.shop_table_responsive td.product-price .amount,
  .woocommerce-cart table.shop_table_responsive td.product-subtotal .amount,
  .woocommerce-cart table.cart td.product-price .amount,
  .woocommerce-cart table.cart td.product-subtotal .amount {
    margin-left: auto !important;
    text-align: right !important;
    white-space: nowrap !important;
    font-weight: var(--gv-font-weight-bold) !important;
    color: var(--gv-color-blue, #1f2a7c) !important;
  }

  /* Compact qty stepper — sits on the right of the QTY row */
  .woocommerce-cart table.shop_table .product-quantity .quantity,
  .woocommerce-cart table.cart .product-quantity .quantity,
  .woocommerce-cart table.shop_table .product-quantity .quantity .number-button,
  .woocommerce-cart table.cart .product-quantity .quantity .number-button,
  .woocommerce-cart .quantity .number-button {
    width: 108px !important;
    min-width: 108px !important;
    max-width: 108px !important;
    height: 36px !important;
    min-height: 36px !important;
    margin-left: auto !important;
    border-color: var(--gv-color-blue, #1f2a7c) !important;
    box-shadow: none !important;
    outline: none !important;
  }

  .woocommerce-cart table.shop_table .product-quantity .quantity .minus,
  .woocommerce-cart table.shop_table .product-quantity .quantity .plus,
  .woocommerce-cart table.cart .product-quantity .quantity .minus,
  .woocommerce-cart table.cart .product-quantity .quantity .plus {
    flex: 0 0 32px !important;
    width: 32px !important;
    min-width: 32px !important;
    max-width: 32px !important;
  }

  .woocommerce-cart table.shop_table .product-quantity .quantity input.qty,
  .woocommerce-cart table.cart .product-quantity .quantity input.qty,
  .woocommerce-cart .quantity input.qty {
    height: 100% !important;
    min-height: 0 !important;
    font-size: var(--gv-text-sm) !important;
  }

  /* Actions — flat strip (no padded card); compact full-width buttons */
  .woocommerce-cart table.shop_table.cart tbody tr:has(td.actions),
  .woocommerce-cart table.shop_table_responsive.cart tbody tr:has(td.actions),
  .woocommerce-cart table.shop_table_responsive tr:has(td.actions),
  .woocommerce-cart table.cart tbody tr:has(td.actions),
  .woocommerce-cart table.shop_table_responsive tr.cart-actions,
  .woocommerce-cart table.cart tbody > tr:last-child {
    display: block !important;
    width: 100% !important;
    margin: 0 0 var(--gv-space-3) !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
  }

  .woocommerce-cart .actions,
  .woocommerce-cart td.actions,
  .woocommerce-cart table.shop_table.cart td.actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0.35rem !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-top: 0 !important;
    box-shadow: none !important;
  }

  .woocommerce-cart td.actions .coupon {
    width: 100% !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .woocommerce-cart td.actions .div_evowap_btn,
  .woocommerce-cart td.actions .woo-order-on-whatsapp,
  .woocommerce-cart td.actions [class*='order-on-whatsapp'],
  .woocommerce-cart td.actions .omw_whatsapp_button,
  .woocommerce-cart td.actions button[name='update_cart'],
  .woocommerce-cart td.actions .button[name='update_cart'],
  .woocommerce-cart td.actions .empty-cart-button,
  .woocommerce-cart td.actions button.empty-cart-button,
  .woocommerce-cart td.actions button[name='ts_empty_cart'] {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    order: unset !important;
    flex: none !important;
  }

  .woocommerce-cart .actions .button,
  .woocommerce-cart .actions button.button,
  .woocommerce-cart td.actions .button,
  .woocommerce-cart td.actions button.button,
  .woocommerce-cart td.actions button[name='update_cart'],
  .woocommerce-cart td.actions .button[name='update_cart'],
  .woocommerce-cart td.actions .empty-cart-button,
  .woocommerce-cart td.actions button.empty-cart-button,
  .woocommerce-cart td.actions button[name='ts_empty_cart'],
  .woocommerce-cart .wc-proceed-to-checkout .checkout-button,
  .woocommerce-cart a.checkout-button.button.alt {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 32px !important;
    height: 32px !important;
    padding: 0 0.75rem !important;
    font-size: var(--gv-text-xs, 0.75rem) !important;
    line-height: 1.2 !important;
    border-radius: var(--gv-radius-sm, 4px) !important;
    box-sizing: border-box !important;
  }

  .woocommerce-cart .div_evowap_btn,
  .woocommerce-cart .woo-order-on-whatsapp,
  .woocommerce-cart [class*='order-on-whatsapp'],
  .woocommerce-cart .omw_whatsapp_button {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
  }

  .woocommerce-cart .div_evowap_btn a,
  .woocommerce-cart a.evowap_btn,
  .woocommerce-cart a.button[href*='wa.me'],
  .woocommerce-cart td.actions .div_evowap_btn a,
  .woocommerce-cart td.actions a.evowap_btn,
  .woocommerce-cart td.actions a.button[href*='wa.me'],
  .woocommerce-cart .woo-order-on-whatsapp a,
  .woocommerce-cart [class*='order-on-whatsapp'] a {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 32px !important;
    height: 32px !important;
    padding: 0 0.75rem !important;
    font-size: var(--gv-text-xs, 0.75rem) !important;
    line-height: 1.2 !important;
    gap: 0.35rem !important;
    box-sizing: border-box !important;
  }

  .woocommerce-cart td.actions .div_evowap_btn a img,
  .woocommerce-cart td.actions a.evowap_btn img,
  .woocommerce-cart td.actions a.button[href*='wa.me'] img {
    width: 0.95rem !important;
    height: 0.95rem !important;
  }

  /* Cart totals — full-width section under line items / actions */
  .woocommerce-cart .woocommerce .cart-collaterals,
  .woocommerce-cart article .woocommerce .cart-collaterals,
  .woocommerce-cart .cart-collaterals {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0.9rem 0.95rem !important;
    border: 1px solid var(--gv-color-blue, #1f2a7c) !important;
    border-radius: var(--gv-radius-md, 8px) !important;
    background: #ffffff !important;
    box-shadow: none !important;
    outline: none !important;
  }

  .woocommerce-cart .cart-collaterals .cart_totals,
  .woocommerce-cart .cart_totals {
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
  }

  .woocommerce-cart .cart_totals > h2,
  .woocommerce-cart .cart-collaterals .cart_totals > h2 {
    margin: 0 0 var(--gv-space-2) !important;
    padding-bottom: var(--gv-space-2) !important;
    font-size: var(--gv-text-md) !important;
    border-bottom: 1px solid var(--gv-color-border, #e5e7eb) !important;
  }

  /* Money rows: label left / amount right (Woo hides th; uses td::before) */
  .woocommerce-cart .cart_totals table.shop_table,
  .woocommerce-cart .cart_totals .shop_table,
  .woocommerce-cart .cart_totals table.shop_table tbody,
  .woocommerce-cart .cart_totals table.shop_table tfoot {
    display: block !important;
    width: 100% !important;
  }

  .woocommerce-cart .cart_totals .shop_table tr,
  .woocommerce-cart .cart_totals table tfoot tr {
    display: block !important;
    width: 100% !important;
    padding: 0.4rem 0 !important;
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .woocommerce-cart .cart_totals .shop_table th {
    display: none !important;
  }

  .woocommerce-cart .cart_totals .shop_table td,
  .woocommerce-cart .cart_totals table tfoot tr td {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
    justify-content: space-between !important;
    gap: 0.35rem 0.75rem !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    text-align: right !important;
    box-sizing: border-box !important;
  }

  .woocommerce-cart .cart_totals .shop_table td::before {
    content: attr(data-title) !important;
    display: block !important;
    float: none !important;
    flex: 0 0 auto !important;
    order: -1 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    font-size: var(--gv-text-xs, 0.75rem) !important;
    font-weight: var(--gv-font-weight-medium) !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
    color: var(--gv-color-text-muted, #6b7280) !important;
    line-height: 1.3 !important;
  }

  .woocommerce-cart .cart_totals .shop_table td .amount,
  .woocommerce-cart .cart_totals .shop_table td strong,
  .woocommerce-cart .cart_totals .shop_table td .woocommerce-Price-amount {
    margin-left: auto !important;
    text-align: right !important;
  }

  .woocommerce-cart .cart_totals .shop_table tr.order-total {
    border-top: 1px solid var(--gv-color-border, #e5e7eb) !important;
    margin-top: 0.15rem !important;
    padding-top: 0.55rem !important;
  }

  .woocommerce-cart .cart_totals .shop_table tr.order-total td {
    white-space: normal !important;
    line-height: 1.35 !important;
  }

  .woocommerce-cart .wc-proceed-to-checkout {
    margin-top: var(--gv-space-2) !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  .woocommerce-cart .wc-proceed-to-checkout .checkout-button,
  .woocommerce-cart a.checkout-button.button.alt {
    width: 100% !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 0 0.75rem !important;
    font-size: var(--gv-text-sm) !important;
    border-radius: var(--gv-radius-sm, 4px) !important;
    font-weight: var(--gv-font-weight-bold) !important;
  }

  /* Clear Click-to-Chat FAB from cart CTAs / totals card */
  body.woocommerce-cart #ht-ctc-chat,
  body.woocommerce-cart .ht-ctc.ht-ctc-chat {
    bottom: 100px !important;
  }

  body.woocommerce-cart .site-content,
  body.woocommerce-cart #main-content {
    padding-bottom: 80px !important;
  }

  body.woocommerce-cart .woocommerce .cart-collaterals,
  body.woocommerce-cart .cart-collaterals {
    padding-bottom: calc(0.9rem + 48px) !important;
  }
}

/* ---- Checkout ----
 * Wider shell, denser fields, two-col billing | order card (no sticky/inner scroll).
 */

@media (min-width: 992px) {
  /*
   * Theme .page-container pads 50px each side — clear it so width % is true.
   * 70% left too much side whitespace; use content-band-ish ~90%/1280.
   */
  body.woocommerce-checkout .page-container {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.woocommerce-checkout #main-content {
    width: min(1280px, 92%) !important;
    max-width: 1280px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    float: none !important;
    box-sizing: border-box !important;
  }

  body.woocommerce-checkout #primary.site-content,
  body.woocommerce-checkout #primary,
  body.woocommerce-checkout article.type-page,
  body.woocommerce-checkout article.page,
  body.woocommerce-checkout article > .woocommerce,
  body.woocommerce-checkout .woocommerce,
  body.woocommerce-checkout form.checkout {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
    box-sizing: border-box !important;
  }

  body.woocommerce-checkout #primary,
  body.woocommerce-checkout .site-content {
    padding-bottom: var(--gv-section-y) !important;
  }

  body.woocommerce-checkout article > .woocommerce,
  body.woocommerce-checkout .woocommerce {
    padding-bottom: var(--gv-space-5) !important;
    margin-bottom: var(--gv-space-5) !important;
  }

  /* Theme adds margin-top:44px on form.checkout — tighten */
  body.woocommerce-checkout .woocommerce > form.checkout,
  body.woocommerce-checkout form.checkout {
    margin-top: 16px !important;
  }

  /*
   * Billing | Your order — tighter two-col; beat theme floats.
   */
  body.woocommerce-checkout form.checkout.woocommerce-checkout,
  body.woocommerce-checkout form.checkout,
  body.woocommerce-checkout .woocommerce > form.checkout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.25fr) minmax(300px, 380px) !important;
    column-gap: clamp(1.5rem, 2.5vw, 2.25rem) !important;
    row-gap: var(--gv-space-4) !important;
    align-items: start !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
  }

  /*
   * Validation notices are form children. Without a grid slot they auto-place
   * into the same cell as #customer_details and paint over BILLING & SHIPPING.
   * Reserve row 1 full-width for notices; billing + order card share row 2.
   * Empty row 1 collapses when no notice is present.
   */
  body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
  body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup-checkout,
  body.woocommerce-checkout form.checkout > .woocommerce-error,
  body.woocommerce-checkout form.checkout > .woocommerce-info,
  body.woocommerce-checkout form.checkout > .woocommerce-message {
    grid-column: 1 / -1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 0 12px !important;
    position: relative !important;
    z-index: 2 !important;
    align-self: start !important;
  }

  body.woocommerce-checkout form.checkout #customer_details,
  body.woocommerce-checkout form.checkout .col2-set {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding-right: 0 !important;
    align-self: stretch !important;
  }

  /*
   * One order card (JS: .gv-checkout-summary) — natural page scroll only.
   * Theme borders heading + review separately; chrome lives on the wrapper only.
   */
  body.woocommerce-checkout form.checkout .gv-checkout-summary {
    grid-column: 2 !important;
    grid-row: 2 !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    align-self: start !important;
    /* relative: ::after frame; not sticky */
    position: relative !important;
    top: auto !important;
    max-height: none !important;
    /*
     * Must stay visible — overflow:hidden clipped #place_order under the
     * payment logos so checkout looked like it would not finish loading.
     */
    overflow: visible !important;
    box-sizing: border-box !important;
    /*
     * Zoom-safe chrome (html{zoom:0.9}): ring inset shadow thinned the left
     * edge to 1px while top/right stayed 2px (owner PNG). Four-edge inset
     * strips + on-top ::after frame keep equal stroke on all sides.
     */
    border: 0 !important;
    padding: 2px !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    outline: 0 !important;
    box-shadow:
      inset 0 2px 0 0 var(--gv-color-blue, #1f2a7c),
      inset 0 -2px 0 0 var(--gv-color-blue, #1f2a7c),
      inset 2px 0 0 0 var(--gv-color-blue, #1f2a7c),
      inset -2px 0 0 0 var(--gv-color-blue, #1f2a7c) !important;
  }

  /* Paint chrome above children so subpixel bleed cannot open a white gap */
  body.woocommerce-checkout form.checkout .gv-checkout-summary::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 6 !important;
    pointer-events: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    outline: 0 !important;
    box-shadow:
      inset 0 2px 0 0 var(--gv-color-blue, #1f2a7c),
      inset 0 -2px 0 0 var(--gv-color-blue, #1f2a7c),
      inset 2px 0 0 0 var(--gv-color-blue, #1f2a7c),
      inset -2px 0 0 0 var(--gv-color-blue, #1f2a7c) !important;
  }

  /* Beat theme `.woocommerce > form.checkout #order_review{ width:410px; border:2px }` */
  body.woocommerce-checkout .woocommerce > form.checkout #order_review_heading,
  body.woocommerce-checkout .woocommerce > form.checkout #order_review,
  body.woocommerce-checkout form.checkout #order_review_heading,
  body.woocommerce-checkout form.checkout #order_review,
  body.woocommerce-checkout form.checkout .gv-checkout-summary #order_review_heading,
  body.woocommerce-checkout form.checkout .gv-checkout-summary #order_review {
    grid-column: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
    position: static !important;
    top: auto !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-width: 0 !important;
    border-style: none !important;
    border-color: transparent !important;
    border-radius: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
  }

  body.woocommerce-checkout form.checkout #order_review_heading::before,
  body.woocommerce-checkout form.checkout #order_review_heading::after,
  body.woocommerce-checkout form.checkout #order_review::before,
  body.woocommerce-checkout form.checkout #order_review::after,
  body.woocommerce-checkout form.checkout .gv-checkout-summary::before {
    content: none !important;
    display: none !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.woocommerce-checkout form.checkout #order_review_heading {
    background: #ffffff !important;
    margin: 0 !important;
    padding: 16px 18px 10px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--gv-color-border, #e5e7eb) !important;
  }

  body.woocommerce-checkout form.checkout #order_review {
    display: block !important;
    padding: 12px 18px 16px !important;
    background: transparent !important;
  }

  /* Legacy scroll wrap (if still in DOM) — do not create an inner scrollport */
  body.woocommerce-checkout form.checkout #order_review > .gv-checkout-summary-scroll {
    display: block !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
  }

  body.woocommerce-checkout form.checkout #order_review .woocommerce-checkout-review-order-table {
    display: table !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    overflow: visible !important;
    table-layout: fixed !important;
    box-sizing: border-box !important;
  }

  body.woocommerce-checkout form.checkout #order_review > #payment {
    margin: 0 !important;
    padding-top: 8px !important;
    border-top: 1px solid var(--gv-color-border);
    background: #ffffff;
  }

  /* Fallback before JS wrap — keep column placement */
  body.woocommerce-checkout form.checkout > #order_review_heading,
  body.woocommerce-checkout form.checkout > #order_review {
    grid-column: 2 !important;
  }

  /* Nested theme .col-1 / .col-2 inside customer_details — stack, don’t re-split */
  body.woocommerce-checkout #customer_details.col2-set,
  body.woocommerce-checkout #customer_details {
    display: block !important;
    width: 100% !important;
  }

  body.woocommerce-checkout #customer_details .col-1,
  body.woocommerce-checkout #customer_details .col-2 {
    width: 100% !important;
    float: none !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 0 var(--gv-space-3) !important;
  }
}

.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout #order_review_heading {
  font-size: var(--gv-text-lg);
  color: var(--gv-color-navy);
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: 0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/*
 * Align BILLING & SHIPPING with form labels (theme often pads h3).
 * Extra bottom margin so the title is not tight against First name.
 */
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-shipping-fields {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-shipping-fields > h3,
body.woocommerce-checkout #customer_details .woocommerce-billing-fields > h3,
body.woocommerce-checkout #customer_details .woocommerce-shipping-fields > h3 {
  margin: 0 0 20px !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-indent: 0 !important;
  text-align: left !important;
  letter-spacing: 0.04em;
  box-sizing: border-box !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* Theme default .form-row { margin-bottom: 24px } — slightly tighter, not cramped */
.woocommerce form.checkout .form-row,
.woocommerce-checkout form.checkout .form-row,
.woocommerce-checkout .woocommerce-billing-fields .form-row,
.woocommerce-checkout .woocommerce-shipping-fields .form-row,
.woocommerce-checkout .woocommerce-additional-fields .form-row {
  margin-top: 0 !important;
  margin-bottom: 12px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/*
 * Theme .form-row-wide keeps ~15px side margins — names had 0, so Email/Phone
 * looked indented vs First name (red-mark gap). Flush all billing/shipping rows.
 */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper .form-row,
body.woocommerce-checkout .woocommerce-additional-fields .form-row {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/*
 * Billing/shipping field order hard-lock (CSS grid).
 * Name row = 2 equal columns; everything else spans full width.
 * Kills Woo clearfix ::before/::after that misalign names under html zoom.
 */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  column-gap: 12px !important;
  /* Theme pulls wrapper -15px; that left fields inset under the h3 title. */
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  row-gap: 0 !important;
  align-items: start !important;
}

body.woocommerce-checkout #billing_first_name_field,
body.woocommerce-checkout #billing_last_name_field,
body.woocommerce-checkout #shipping_first_name_field,
body.woocommerce-checkout #shipping_last_name_field {
  float: none !important;
  clear: none !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  align-self: start !important;
  display: flex !important;
  flex-direction: column !important;
}

body.woocommerce-checkout #billing_first_name_field::before,
body.woocommerce-checkout #billing_first_name_field::after,
body.woocommerce-checkout #billing_last_name_field::before,
body.woocommerce-checkout #billing_last_name_field::after,
body.woocommerce-checkout #shipping_first_name_field::before,
body.woocommerce-checkout #shipping_first_name_field::after,
body.woocommerce-checkout #shipping_last_name_field::before,
body.woocommerce-checkout #shipping_last_name_field::after {
  content: none !important;
  display: none !important;
}

body.woocommerce-checkout #billing_first_name_field,
body.woocommerce-checkout #shipping_first_name_field {
  grid-column: 1 !important;
  grid-row: 1 !important;
  order: 10 !important;
}

body.woocommerce-checkout #billing_last_name_field,
body.woocommerce-checkout #shipping_last_name_field {
  grid-column: 2 !important;
  grid-row: 1 !important;
  order: 20 !important;
}

body.woocommerce-checkout #billing_first_name_field label,
body.woocommerce-checkout #billing_last_name_field label,
body.woocommerce-checkout #shipping_first_name_field label,
body.woocommerce-checkout #shipping_last_name_field label {
  margin: 0 0 4px !important;
  padding: 0 !important;
  line-height: 1.35 !important;
  min-height: 1.35em !important;
}

body.woocommerce-checkout #billing_first_name_field .woocommerce-input-wrapper,
body.woocommerce-checkout #billing_last_name_field .woocommerce-input-wrapper,
body.woocommerce-checkout #shipping_first_name_field .woocommerce-input-wrapper,
body.woocommerce-checkout #shipping_last_name_field .woocommerce-input-wrapper,
body.woocommerce-checkout #billing_first_name_field input.input-text,
body.woocommerce-checkout #billing_last_name_field input.input-text,
body.woocommerce-checkout #shipping_first_name_field input.input-text,
body.woocommerce-checkout #shipping_last_name_field input.input-text {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  margin: 0 !important;
}

body.woocommerce-checkout #billing_email_field,
body.woocommerce-checkout #billing_phone_field,
body.woocommerce-checkout #billing_company_field,
body.woocommerce-checkout #billing_address_1_field,
body.woocommerce-checkout #billing_address_2_field,
body.woocommerce-checkout #billing_city_field,
body.woocommerce-checkout #billing_postcode_field,
body.woocommerce-checkout #billing_state_field,
body.woocommerce-checkout #billing_country_field,
body.woocommerce-checkout #shipping_company_field,
body.woocommerce-checkout #shipping_address_1_field,
body.woocommerce-checkout #shipping_address_2_field,
body.woocommerce-checkout #shipping_city_field,
body.woocommerce-checkout #shipping_postcode_field,
body.woocommerce-checkout #shipping_state_field,
body.woocommerce-checkout #shipping_country_field {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  float: none !important;
}

body.woocommerce-checkout #billing_email_field { order: 30 !important; }
body.woocommerce-checkout #billing_phone_field { order: 40 !important; }
body.woocommerce-checkout #billing_company_field,
body.woocommerce-checkout #shipping_company_field { order: 45 !important; }
body.woocommerce-checkout #billing_address_1_field,
body.woocommerce-checkout #shipping_address_1_field { order: 50 !important; }
body.woocommerce-checkout #billing_address_2_field,
body.woocommerce-checkout #shipping_address_2_field { order: 60 !important; }
body.woocommerce-checkout #billing_city_field,
body.woocommerce-checkout #shipping_city_field { order: 70 !important; }
body.woocommerce-checkout #billing_postcode_field,
body.woocommerce-checkout #shipping_postcode_field { order: 80 !important; }
body.woocommerce-checkout #billing_state_field,
body.woocommerce-checkout #shipping_state_field { order: 90 !important; }
body.woocommerce-checkout #billing_country_field,
body.woocommerce-checkout #shipping_country_field { order: 100 !important; }

.woocommerce form.checkout #billing_address_1_field,
.woocommerce form.checkout #shipping_address_1_field,
.woocommerce-checkout #billing_address_1_field,
.woocommerce-checkout #shipping_address_1_field {
  margin-bottom: 8px !important;
}

/*
 * Google Places Autocomplete — JS (class-gvsc-checkout) pins with position:fixed.
 * CSS margin is a no-JS / first-paint fallback only (html zoom:0.9 breaks absolute).
 */
body.woocommerce-checkout .pac-container {
  margin-top: 44px !important;
  z-index: 100000 !important;
}
body.woocommerce-checkout .pac-container.pac-logo {
  /* Keep above order card / payment chrome while open */
  z-index: 100000 !important;
}

.woocommerce-checkout .form-row label {
  display: block;
  font-size: var(--gv-text-sm);
  color: var(--gv-color-text-secondary);
  font-weight: var(--gv-font-weight-medium);
  margin-bottom: 4px;
  line-height: 1.3;
}

/* Locked address selects with a value — never keep Woo “invalid” red labels. */
body.woocommerce-checkout #billing_state_field.woocommerce-validated label,
body.woocommerce-checkout #shipping_state_field.woocommerce-validated label,
body.woocommerce-checkout #billing_country_field.woocommerce-validated label,
body.woocommerce-checkout #shipping_country_field.woocommerce-validated label,
body.woocommerce-checkout #billing_state_field:has(.gv-locked-select) label,
body.woocommerce-checkout #shipping_state_field:has(.gv-locked-select) label,
body.woocommerce-checkout #billing_country_field:has(.gv-locked-select) label,
body.woocommerce-checkout #shipping_country_field:has(.gv-locked-select) label {
  color: var(--gv-color-text-secondary, #5b6472) !important;
}

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row select:not(.select2-hidden-accessible) {
  min-height: 40px !important;
  height: 40px !important;
  font-size: var(--gv-text-sm) !important;
  line-height: 1.35 !important;
  padding: 0 12px !important;
  border-radius: var(--gv-radius-sm);
  border-color: var(--gv-color-border);
  box-sizing: border-box !important;
}

.woocommerce-checkout .form-row textarea {
  height: auto !important;
  min-height: 88px !important;
  padding: 10px 12px !important;
}

/*
 * Select2 — theme paints __rendered as a second input (white + border) while
 * selection stays gray with side padding; our form-row select height/padding
 * also broke .select2-hidden-accessible so the native <select> bled through.
 */
.woocommerce-checkout .form-row select.select2-hidden-accessible,
.woocommerce-checkout select.select2-hidden-accessible {
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  height: 1px !important;
  width: 1px !important;
  min-height: 0 !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  position: absolute !important;
  opacity: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  pointer-events: none !important;
}

/*
 * Select2/SelectWoo sets container z-index to ~2147483647. Closed fields then
 * paint over the sticky mobile header while scrolling (Province/Country “float”
 * above the logo). Keep closed chrome in normal flow; raise only when open.
 */
.woocommerce-checkout .select2-container {
  width: 100% !important;
  max-width: 100% !important;
  z-index: 1 !important;
}

.woocommerce-checkout .select2-container--open {
  z-index: var(--gv-z-dropdown, 300) !important;
}

/* Dropdown is often appended on <body>, outside .woocommerce-checkout */
body.woocommerce-checkout .select2-dropdown,
body.woocommerce-checkout ~ .select2-container .select2-dropdown {
  z-index: var(--gv-z-dropdown, 300) !important;
}

/* Sticky header must sit above closed checkout Select2 */
body.woocommerce-checkout .ts-header,
body.woocommerce-checkout .ts-header .header-sticky,
body.woocommerce-checkout .header-sticky {
  z-index: var(--gv-z-sticky, 200) !important;
}

/* Theme justify-content:flex-end on form-rows can crush Select2 under zoom */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  align-items: stretch !important;
  min-height: 0 !important;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row .woocommerce-input-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row .woocommerce-input-wrapper {
  display: block !important;
  width: 100% !important;
  min-height: 40px !important;
}

/* Street + Change must win over the block rule above */
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row .woocommerce-input-wrapper.gv-street-picker,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper > .form-row .woocommerce-input-wrapper.gv-street-picker,
body.woocommerce-checkout #billing_address_1_field .woocommerce-input-wrapper.gv-street-picker,
body.woocommerce-checkout #billing_address_1_field .gv-street-picker {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: stretch !important;
  gap: 8px !important;
  width: 100% !important;
}

.woocommerce-checkout .select2-container .select2-selection--single {
  display: block !important;
  position: relative !important;
  min-height: 40px !important;
  height: 40px !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid var(--gv-color-border) !important;
  border-radius: var(--gv-radius-sm) !important;
  background: #ffffff !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
  outline: none !important;
  overflow: hidden !important;
  z-index: auto !important;
}

.woocommerce-checkout .select2-container--disabled .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--disabled .select2-selection--single,
body.woocommerce-checkout .gv-locked-select + .select2-container .select2-selection--single {
  background: #f5f5f5 !important;
  color: #555 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}

/* Locked province/country — no dropdown caret (Places-only fields) */
body.woocommerce-checkout .gv-locked-select + .select2-container .select2-selection__arrow,
body.woocommerce-checkout .select2-container--disabled .select2-selection__arrow,
body.woocommerce-checkout #billing_state_field .select2-selection__arrow,
body.woocommerce-checkout #billing_country_field .select2-selection__arrow,
body.woocommerce-checkout #shipping_state_field .select2-selection__arrow,
body.woocommerce-checkout #shipping_country_field .select2-selection__arrow {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
}

body.woocommerce-checkout .gv-locked-select + .select2-container .select2-selection__rendered,
body.woocommerce-checkout .select2-container--disabled .select2-selection__rendered,
body.woocommerce-checkout #billing_state_field .select2-selection__rendered,
body.woocommerce-checkout #billing_country_field .select2-selection__rendered {
  padding-right: 12px !important;
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
  display: block !important;
  line-height: 38px !important;
  height: 38px !important;
  min-height: 0 !important;
  padding: 0 32px 0 12px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  font-size: var(--gv-text-sm) !important;
  color: inherit !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  width: 28px !important;
  height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
}

.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow b {
  border-color: var(--gv-color-text-muted, #888) transparent transparent transparent !important;
  margin-top: -2px !important;
}

.woocommerce-checkout #place_order {
  display: block !important;
  float: none !important;
  clear: both !important;
  box-sizing: border-box !important;
  min-height: calc(48px * var(--gv-ui-scale, 1));
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  border-radius: var(--gv-radius-sm);
  background: var(--gv-color-blue) !important;
  border: 1px solid var(--gv-color-blue) !important;
  color: #fff !important;
  font-size: var(--gv-text-md);
  font-weight: var(--gv-font-weight-bold);
  text-transform: none;
  letter-spacing: 0;
  text-align: center !important;
}

.woocommerce-checkout #place_order:hover {
  background: #fff !important;
  color: var(--gv-color-blue) !important;
  border: 1px solid var(--gv-color-blue) !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table {
  display: block !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: visible !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Blockify sections so flex rows are not capped at table column 1 width */
.woocommerce-checkout .woocommerce-checkout-review-order-table thead,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead tr,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody tr {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td {
  display: block !important;
  float: none !important;
  border: 0 !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead th:first-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-name,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td:first-child {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  text-align: left !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table thead th:last-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td.product-total,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody td:last-child {
  flex: 0 0 auto !important;
  text-align: right !important;
  white-space: nowrap !important;
}

/* Theme pads order-table cells heavily (23–25px) — denser in the card */
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td,
.woocommerce-checkout #order_review .shop_table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout #order_review .shop_table.woocommerce-checkout-review-order-table td {
  padding-top: 8px !important;
  padding-bottom: 8px !important;
  border-left: 0 !important;
  border-right: 0 !important;
  box-shadow: none !important;
}

.woocommerce-checkout #order_review .shop_table.woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout #order_review .shop_table.woocommerce-checkout-review-order-table thead th:last-child,
.woocommerce-checkout #order_review .shop_table.woocommerce-checkout-review-order-table tbody td:last-child {
  text-align: right !important;
  padding-right: 0 !important;
  white-space: nowrap !important;
}

.woocommerce-checkout #order_review .shop_table.woocommerce-checkout-review-order-table thead th {
  padding-top: 0 !important;
  padding-bottom: 8px !important;
  font-size: var(--gv-text-xs) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
  color: var(--gv-color-text-muted) !important;
}

.woocommerce-checkout #order_review .shop_table.woocommerce-checkout-review-order-table tbody tr:first-child th,
.woocommerce-checkout #order_review .shop_table.woocommerce-checkout-review-order-table tbody tr:first-child td {
  padding-top: 8px !important;
}

.woocommerce-checkout #order_review .shop_table.woocommerce-checkout-review-order-table tbody tr:last-child th,
.woocommerce-checkout #order_review .shop_table.woocommerce-checkout-review-order-table tbody tr:last-child td {
  padding-bottom: 8px !important;
}

/* Labels must stay visible (theme sometimes floats/hides) */
.woocommerce-checkout .form-row label:not(.checkbox):not(.woocommerce-form__label-for-checkbox) {
  position: static !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 0 4px !important;
  padding: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  white-space: normal !important;
}

.woocommerce-checkout #payment .place-order {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* Privacy + fulfilment + terms — one voice (size, colour, weight, spacing) */
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  margin: 0 0 12px !important;
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper > .form-row,
.woocommerce-checkout #payment #gv_fulfiliment_ack_field {
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
.woocommerce-checkout #payment .woocommerce-privacy-policy-text p,
.woocommerce-checkout #payment .woocommerce-form__label-for-checkbox,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-checkbox-text {
  font-size: 13px !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
  color: #4a5568 !important;
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text a,
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-checkbox-text a {
  color: var(--gv-color-blue, #1e3a5f) !important;
  font-weight: 700 !important;
  text-decoration: underline !important;
}

.woocommerce-checkout #payment .woocommerce-form__label-for-checkbox {
  display: flex !important;
  align-items: flex-start !important;
  gap: 8px !important;
  cursor: pointer !important;
}

.woocommerce-checkout #payment .woocommerce-form__input-checkbox {
  flex: 0 0 auto !important;
  margin: 3px 0 0 !important;
}

.woocommerce-checkout #payment .woocommerce-terms-and-conditions-checkbox-text {
  flex: 1 1 auto !important;
}

.woocommerce-checkout #payment div.payment_box {
  margin: 8px 0 12px !important;
  padding: 10px 12px !important;
  font-size: var(--gv-text-xs) !important;
  line-height: 1.4 !important;
}

/*
 * YOUR ORDER — money rows: label left (never crush), Rand right.
 * Table/thead/tbody/tfoot are blockified above so these flex rows
 * span the full card width (not just the product-name column).
 */
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.tax-total,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.fee {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 10px 0 !important;
  margin: 0 !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.tax-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.fee th {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: max-content !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  float: none !important;
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  writing-mode: horizontal-tb !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.tax-total td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.fee td {
  flex: 1 1 auto !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  text-align: right !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  float: none !important;
  white-space: nowrap !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal td .amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td .amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.tax-total td .amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.fee td .amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td strong,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td .includes_tax,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td small {
  text-align: right !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.shipping {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  width: 100% !important;
  max-width: 100% !important;
  padding: 10px 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.shipping th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.shipping td {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  flex: none !important;
  float: none !important;
  text-align: left !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  white-space: normal !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method,
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method li,
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods li {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method li:last-child,
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods li:last-child {
  margin-bottom: 0 !important;
}

/* Shipping + payment radios — Giovision navy (not browser default blue) */
.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method input[type='radio'],
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods input[type='radio'],
.woocommerce-checkout .woocommerce-checkout-review-order-table .shipping input[type='radio'],
.woocommerce-checkout #payment ul.payment_methods li input[type='radio'],
.woocommerce-checkout #payment .payment_methods input[type='radio'],
.woocommerce-checkout .woocommerce-shipping-methods li input[type='radio'],
.woocommerce-checkout .shipping input[type='radio'] {
  -webkit-appearance: none !important;
  appearance: none !important;
  position: static !important;
  float: none !important;
  top: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  flex: 0 0 18px !important;
  width: 18px !important;
  height: 18px !important;
  min-width: 18px !important;
  align-self: center !important;
  transform: none !important;
  box-sizing: border-box !important;
  border: 2px solid var(--gv-color-blue, #1f2a7c) !important;
  border-radius: 50% !important;
  background: #ffffff !important;
  accent-color: var(--gv-color-blue, #1f2a7c) !important;
  box-shadow: none !important;
  cursor: pointer !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method input[type='radio']:checked,
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods input[type='radio']:checked,
.woocommerce-checkout .woocommerce-checkout-review-order-table .shipping input[type='radio']:checked,
.woocommerce-checkout #payment ul.payment_methods li input[type='radio']:checked,
.woocommerce-checkout #payment .payment_methods input[type='radio']:checked,
.woocommerce-checkout .woocommerce-shipping-methods li input[type='radio']:checked,
.woocommerce-checkout .shipping input[type='radio']:checked {
  background:
    radial-gradient(
      circle at center,
      var(--gv-color-blue, #1f2a7c) 0,
      var(--gv-color-blue, #1f2a7c) 38%,
      #ffffff 42%,
      #ffffff 100%
    ) !important;
  border-color: var(--gv-color-blue, #1f2a7c) !important;
  accent-color: var(--gv-color-blue, #1f2a7c) !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method label,
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods li label,
.woocommerce-checkout .woocommerce-checkout-review-order-table .shipping label {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  justify-content: space-between !important;
  align-items: baseline !important;
  flex: 1 1 auto !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.35 !important;
  white-space: normal !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  gap: 12px !important;
}

/* Keep FREE / Rands on the right of the shipping row (do not stack under the title). */
.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method label .woocommerce-Price-amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods li label .woocommerce-Price-amount,
.woocommerce-checkout .woocommerce-checkout-review-order-table .shipping label .woocommerce-Price-amount {
  display: inline-block !important;
  flex: 0 0 auto !important;
  margin-left: auto !important;
  text-align: right !important;
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  font-weight: 700 !important;
}

.woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method label .gvsc-shipping-free,
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods li label .gvsc-shipping-free {
  font-weight: 700 !important;
}

@media (max-width: 767px) {
  /*
   * Mobile checkout density — theme leaves form mt:44px, customer_details /
   * #order_review mb:60px, and roomy card/field gaps. Tighten shell + rows.
   */
  body.woocommerce-checkout .page-container {
    padding-left: 8px !important;
    padding-right: 8px !important;
    padding-top: 8px !important;
  }

  body.woocommerce-checkout form.checkout.woocommerce-checkout,
  body.woocommerce-checkout form.checkout,
  body.woocommerce-checkout .woocommerce > form.checkout {
    display: block !important;
    width: 100% !important;
    margin-top: 12px !important;
  }

  /* Document order: notice above billing title (no desktop grid on mobile). */
  body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup,
  body.woocommerce-checkout form.checkout > .woocommerce-NoticeGroup-checkout,
  body.woocommerce-checkout form.checkout > .woocommerce-error,
  body.woocommerce-checkout form.checkout > .woocommerce-info,
  body.woocommerce-checkout form.checkout > .woocommerce-message {
    display: block !important;
    width: 100% !important;
    margin: 0 0 12px !important;
    position: relative !important;
  }

  body.woocommerce-checkout #customer_details.col2-set,
  body.woocommerce-checkout #customer_details,
  body.woocommerce-checkout form.checkout #customer_details {
    margin-bottom: 16px !important;
  }

  body.woocommerce-checkout form.checkout #order_review,
  body.woocommerce-checkout form.checkout .gv-checkout-summary #order_review {
    margin-bottom: 16px !important;
  }

  body.woocommerce-checkout .woocommerce-billing-fields > h3,
  body.woocommerce-checkout .woocommerce-shipping-fields > h3,
  body.woocommerce-checkout #customer_details .woocommerce-billing-fields > h3,
  body.woocommerce-checkout #customer_details .woocommerce-shipping-fields > h3 {
    margin: 0 0 16px !important;
    padding: 0 !important;
    text-indent: 0 !important;
  }

  body.woocommerce-checkout form.checkout .form-row,
  body.woocommerce-checkout .woocommerce-billing-fields .form-row,
  body.woocommerce-checkout .woocommerce-shipping-fields .form-row,
  body.woocommerce-checkout .woocommerce-additional-fields .form-row {
    margin-bottom: 8px !important;
  }

  body.woocommerce-checkout .form-row input.input-text,
  body.woocommerce-checkout .form-row select:not(.select2-hidden-accessible) {
    min-height: 38px !important;
    height: 38px !important;
    padding: 0 10px !important;
  }

  body.woocommerce-checkout .select2-container .select2-selection--single {
    min-height: 38px !important;
    height: 38px !important;
  }

  body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 36px !important;
    padding-left: 10px !important;
  }

  body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper {
    grid-template-columns: minmax(0, 1fr) !important;
    column-gap: 8px !important;
  }

  body.woocommerce-checkout #billing_first_name_field,
  body.woocommerce-checkout #billing_last_name_field,
  body.woocommerce-checkout #shipping_first_name_field,
  body.woocommerce-checkout #shipping_last_name_field {
    grid-column: 1 !important;
    grid-row: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }

  body.woocommerce-checkout form.checkout .gv-checkout-summary,
  body.woocommerce-checkout form.checkout #customer_details,
  body.woocommerce-checkout form.checkout > #order_review_heading,
  body.woocommerce-checkout form.checkout > #order_review {
    grid-column: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
  }

  /*
   * After JS wrap, heading/review are no longer form > children — theme
   * `float:right` still applied and collapsed .gv-checkout-summary to h=0.
   */
  body.woocommerce-checkout form.checkout .gv-checkout-summary {
    display: flow-root !important;
    position: relative !important;
    /* visible: hidden clipped #place_order under payment logos (1.0.497) */
    overflow: visible !important;
    margin-top: 12px !important;
    border: 0 !important;
    padding: 2px !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    box-sizing: border-box !important;
    outline: 0 !important;
    box-shadow:
      inset 0 2px 0 0 var(--gv-color-blue, #1f2a7c),
      inset 0 -2px 0 0 var(--gv-color-blue, #1f2a7c),
      inset 2px 0 0 0 var(--gv-color-blue, #1f2a7c),
      inset -2px 0 0 0 var(--gv-color-blue, #1f2a7c) !important;
  }

  body.woocommerce-checkout form.checkout .gv-checkout-summary::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 6 !important;
    pointer-events: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    outline: 0 !important;
    box-shadow:
      inset 0 2px 0 0 var(--gv-color-blue, #1f2a7c),
      inset 0 -2px 0 0 var(--gv-color-blue, #1f2a7c),
      inset 2px 0 0 0 var(--gv-color-blue, #1f2a7c),
      inset -2px 0 0 0 var(--gv-color-blue, #1f2a7c) !important;
  }

  body.woocommerce-checkout form.checkout .gv-checkout-summary #order_review_heading,
  body.woocommerce-checkout form.checkout .gv-checkout-summary #order_review,
  body.woocommerce-checkout form.checkout #order_review_heading,
  body.woocommerce-checkout form.checkout #order_review {
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    clear: both !important;
    position: static !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.woocommerce-checkout form.checkout .gv-checkout-summary #order_review_heading {
    padding: 10px 10px 8px !important;
    border-bottom: 1px solid var(--gv-color-border, #e5e7eb) !important;
  }

  body.woocommerce-checkout form.checkout .gv-checkout-summary #order_review {
    padding: 8px 10px 10px !important;
  }

  /* Place order — full-width, compact on phone */
  .woocommerce-checkout #payment .place-order {
    padding-bottom: 4px !important;
  }

  .woocommerce-checkout #place_order {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 40px !important;
    padding: 0.5rem 0.85rem !important;
    font-size: var(--gv-text-sm) !important;
    line-height: 1.25 !important;
  }

  /* Lift Click to Chat so it does not sit on Place order / card logos */
  body.woocommerce-checkout #ht-ctc-chat,
  body.woocommerce-checkout .ht-ctc.ht-ctc-chat {
    bottom: 88px !important;
  }

  body.woocommerce-checkout .site-content,
  body.woocommerce-checkout #main-content {
    padding-bottom: 72px !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: auto !important;
    box-sizing: border-box !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table thead th,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tbody td,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.tax-total,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.fee {
    padding: 6px 0 !important;
    gap: 8px !important;
    align-items: flex-start !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal th,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total th,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.tax-total th,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.fee th {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal td,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.tax-total td,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.fee td {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    white-space: normal !important;
    text-align: right !important;
    line-height: 1.35 !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td .includes_tax,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.order-total td small {
    display: inline !important;
    white-space: normal !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.woocommerce-shipping-totals,
  .woocommerce-checkout .woocommerce-checkout-review-order-table tfoot tr.shipping {
    padding: 6px 0 !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method li,
  .woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods li {
    align-items: flex-start !important;
    gap: 10px !important;
    margin-bottom: 10px !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method input[type='radio'],
  .woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods input[type='radio'],
  .woocommerce-checkout #payment ul.payment_methods li input[type='radio'] {
    margin-top: 2px !important;
    align-self: flex-start !important;
  }

  .woocommerce-checkout .woocommerce-checkout-review-order-table #shipping_method label,
  .woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-methods li label {
    font-size: var(--gv-text-sm) !important;
    line-height: 1.4 !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  .woocommerce-checkout form.checkout #order_review_heading {
    padding: 10px 10px 8px !important;
  }

  .woocommerce-checkout form.checkout #order_review {
    padding: 8px 10px 10px !important;
  }
}

/* ---- Address picker (locked street + Places modal) ---- */
body.woocommerce-checkout #billing_address_2_field,
body.woocommerce-checkout #shipping_address_2_field {
  order: 60 !important;
  display: block !important;
}

body.woocommerce-checkout .gv-street-picker {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 8px !important;
  align-items: stretch !important;
  width: 100% !important;
}

body.woocommerce-checkout .gv-street-picker #billing_address_1,
body.woocommerce-checkout .gv-street-picker #shipping_address_1 {
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
}

body.woocommerce-checkout .gv-street-picker__btn {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--gv-color-blue, #1f2a7c) !important;
  border-radius: var(--gv-radius-sm, 4px);
  background: var(--gv-color-blue, #1f2a7c) !important;
  color: #ffffff !important;
  font-size: var(--gv-text-sm, 13px);
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  padding: 0 16px;
  min-height: 40px;
  min-width: 7.5rem;
  white-space: nowrap;
  cursor: pointer;
  line-height: 1.2;
  box-shadow: none !important;
  outline: none !important;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  grid-column: 2 !important;
  grid-row: 1 !important;
  position: relative;
  z-index: 3;
  align-self: stretch;
  pointer-events: auto !important;
}

/* Hover only — do not invert on :focus (modal close focuses the button). */
body.woocommerce-checkout .gv-street-picker__btn:hover {
  background: #ffffff !important;
  color: var(--gv-color-blue, #1f2a7c) !important;
  border-color: var(--gv-color-blue, #1f2a7c) !important;
  box-shadow: none !important;
}

body.woocommerce-checkout .gv-street-picker__btn:focus,
body.woocommerce-checkout .gv-street-picker__btn:focus-visible {
  background: var(--gv-color-blue, #1f2a7c) !important;
  color: #ffffff !important;
  border-color: var(--gv-color-blue, #1f2a7c) !important;
  outline: 2px solid rgba(31, 42, 124, 0.35) !important;
  outline-offset: 2px;
  box-shadow: none !important;
}

body.woocommerce-checkout .gv-street-picker__btn:active {
  transform: none;
  background: #18225f !important;
  color: #ffffff !important;
}

.gv-address-modal[hidden] {
  display: none !important;
}

.gv-address-modal {
  position: fixed;
  inset: 0;
  z-index: 100150;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right))
    max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  box-sizing: border-box;
}

.gv-address-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16, 22, 64, 0.72);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
}

.gv-address-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(560px, 100%);
  max-height: min(92vh, 720px);
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  background: #ffffff;
  border-radius: 8px;
  border: 1px solid rgba(31, 42, 124, 0.12);
  border-top: 4px solid var(--gv-color-blue, #1f2a7c);
  box-shadow: 0 20px 50px rgba(31, 42, 124, 0.22);
  padding: 22px 20px 18px;
  box-sizing: border-box;
  animation: gvAddressModalIn 0.18s ease-out;
}

@keyframes gvAddressModalIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.98);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gv-address-modal__dialog {
    animation: none;
  }
}

.gv-address-modal__close {
  position: absolute;
  top: 8px;
  right: 8px;
  appearance: none;
  border: none;
  background: transparent;
  color: var(--gv-color-blue, #1f2a7c);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  padding: 8px 12px;
  min-width: 44px;
  min-height: 44px;
  border-radius: var(--gv-radius-sm, 4px);
  touch-action: manipulation;
}

.gv-address-modal__close:hover,
.gv-address-modal__close:focus {
  background: rgba(31, 42, 124, 0.06);
  outline: none;
}

.gv-address-modal__header {
  margin: 0 36px 14px 0;
}

.gv-address-modal__brand {
  margin: 0 0 4px;
  color: var(--gv-color-blue, #1f2a7c);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gv-address-modal__title {
  margin: 0 0 6px;
  color: var(--gv-color-blue, #1f2a7c);
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
  font-weight: 700;
  line-height: 1.25;
}

.gv-address-modal__hint {
  margin: 0;
  color: #5b6472;
  font-size: 0.9rem;
  line-height: 1.45;
}

.gv-address-modal__google {
  width: 100%;
  min-height: 48px;
}

.gv-address-modal__google gmp-place-autocomplete,
.gv-address-modal__gmp {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Emphasise suburb/town line inside Google's own widget (fallback). */
.gv-address-modal__gmp::part(prediction-item) {
  padding: 10px 12px;
  line-height: 1.35;
}
.gv-address-modal__gmp::part(prediction-item-main-text) {
  font-weight: 700;
  font-size: 15px;
  color: #1a1a1a;
}
.gv-address-modal__gmp::part(prediction-item-secondary-text) {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  color: #5b6472;
}

.gv-addr-search {
  width: 100%;
}

.gv-addr-results {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  max-height: min(48vh, 340px);
  overflow: auto;
  border: 1px solid rgba(31, 42, 124, 0.16);
  border-radius: var(--gv-radius-sm, 4px);
  background: #fff;
  box-shadow: 0 10px 24px rgba(31, 42, 124, 0.12);
}

.gv-addr-result {
  display: block;
  padding: 11px 14px;
  border-bottom: 1px solid #eef0f4;
  cursor: pointer;
  touch-action: manipulation;
}

.gv-addr-result:last-child {
  border-bottom: 0;
}

.gv-addr-result:hover,
.gv-addr-result.is-active {
  background: rgba(31, 42, 124, 0.06);
}

.gv-addr-result__main {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: #1a1a1a;
  line-height: 1.3;
}

.gv-addr-result__meta {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gv-color-blue, #1f2a7c);
  line-height: 1.35;
}

.gv-addr-result__post {
  display: block;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: #1a1a1a;
  line-height: 1.3;
}

.gv-addr-result__post[hidden] {
  display: none !important;
}

.gv-addr-result__full {
  display: block;
  margin-top: 3px;
  font-size: 12.5px;
  color: #5b6472;
  line-height: 1.4;
}

.gv-addr-search__hint {
  margin: 8px 0 0;
  min-height: 1.2em;
  font-size: 0.85rem;
  color: #5b6472;
  line-height: 1.35;
}

.gv-addr-search__powered {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
  opacity: 0.85;
}

.gv-addr-search__powered img {
  display: block;
  height: 14px;
  width: auto;
}

.gv-address-modal__input {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid #d0d5dd;
  border-radius: var(--gv-radius-sm, 4px);
  /* 16px prevents iOS zoom on focus */
  font-size: 16px !important;
  line-height: 1.35;
  box-sizing: border-box;
  background: #fff;
  color: #1a1a1a;
  -webkit-appearance: none;
  appearance: none;
}

.gv-address-modal__input:focus {
  outline: none;
  border-color: var(--gv-color-blue, #1f2a7c);
  box-shadow: 0 0 0 3px rgba(31, 42, 124, 0.15);
}

.gv-address-modal__error {
  margin: 10px 0 0;
  color: #b91c1c;
  font-size: 0.88rem;
  line-height: 1.35;
}

.gv-address-modal__actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
}

.gv-address-modal__cancel {
  appearance: none;
  -webkit-appearance: none;
  border: 1px solid var(--gv-color-blue, #1f2a7c);
  background: #ffffff;
  color: var(--gv-color-blue, #1f2a7c);
  border-radius: var(--gv-radius-sm, 4px);
  min-height: 44px;
  min-width: 6.5rem;
  padding: 0 18px;
  font-size: var(--gv-text-sm, 13px);
  font-weight: 700;
  cursor: pointer;
  touch-action: manipulation;
  transition: background 0.15s ease, color 0.15s ease;
}

.gv-address-modal__cancel:hover,
.gv-address-modal__cancel:focus {
  background: var(--gv-color-blue, #1f2a7c);
  color: #ffffff;
  outline: none;
}

body.gv-address-modal-open {
  overflow: hidden !important;
  overscroll-behavior: none;
}

body.gv-address-modal-open .pac-container {
  z-index: 100260 !important;
  pointer-events: auto !important;
  border-radius: 0 0 6px 6px !important;
  border: 1px solid rgba(31, 42, 124, 0.18) !important;
  box-shadow: 0 12px 28px rgba(31, 42, 124, 0.18) !important;
  font-size: 15px !important;
}

body.gv-address-modal-open .pac-item {
  padding: 10px 12px !important;
  line-height: 1.35 !important;
  cursor: pointer;
}

body.gv-address-modal-open .pac-item:hover,
body.gv-address-modal-open .pac-item-selected {
  background: rgba(31, 42, 124, 0.06) !important;
}

/* Mobile / narrow: bottom sheet, full-bleed controls */
@media (max-width: 640px) {
  body.woocommerce-checkout .gv-street-picker {
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 6px !important;
  }

  body.woocommerce-checkout .gv-street-picker__btn {
    min-width: 5.75rem;
    padding: 0 12px;
    font-size: 12px;
  }

  .gv-address-modal {
    align-items: flex-end;
    padding: 0;
  }

  .gv-address-modal__dialog {
    width: 100%;
    max-width: none;
    max-height: min(88vh, 100%);
    border-radius: 14px 14px 0 0;
    border-left: none;
    border-right: none;
    border-bottom: none;
    padding: 20px 16px calc(16px + env(safe-area-inset-bottom));
    animation-name: gvAddressSheetIn;
  }

  @keyframes gvAddressSheetIn {
    from {
      opacity: 0;
      transform: translateY(24px);
    }
    to {
      opacity: 1;
      transform: none;
    }
  }

  .gv-address-modal__actions {
    justify-content: stretch;
  }

  .gv-address-modal__cancel {
    width: 100%;
  }
}

@media (max-width: 380px) {
  body.woocommerce-checkout .gv-street-picker {
    grid-template-columns: 1fr !important;
  }

  body.woocommerce-checkout .gv-street-picker__btn {
    width: 100%;
    min-height: 44px;
  }
}
