/* ========================================================================
   ZUVA 10.3 — product alignment correction only
   This layer changes visual geometry only. Product pricing, sizes, add-ons,
   quantity calculations, cart data and WooCommerce business logic are intact.
   ======================================================================== */

/* ------------------------------------------------------------------------
   Single-product page: allow the runtime product component to use the wide
   WordPress canvas instead of inheriting the 760px constrained-content width.
   ------------------------------------------------------------------------ */
body.single-product.zuva-universal-theme .zuva-product-shell,
body.single-product.zuva-universal-theme .zuva-product-shell > .alignwide,
body.single-product.zuva-universal-theme .zuva-product-shell .wp-block-shortcode,
body.single-product.zuva-universal-theme .zuva-runtime-single-product,
body.single-product.zuva-universal-theme .zuva-runtime-single-product > .zuva-runtime-product {
  width: 100% !important;
  max-width: 1320px !important;
  margin-inline: auto !important;
  box-sizing: border-box !important;
}

body.single-product.zuva-universal-theme .zuva-product-shell > .alignwide,
body.single-product.zuva-universal-theme .zuva-product-shell .wp-block-shortcode {
  max-width: none !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-main {
  display: grid !important;
  grid-template-columns: minmax(0, 1.08fr) minmax(420px, .92fr) !important;
  gap: clamp(28px, 4vw, 60px) !important;
  align-items: start !important;
  width: 100% !important;
  max-width: 1260px !important;
  margin-inline: auto !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-media,
body.single-product.zuva-universal-theme .zuva-runtime-product-summary {
  min-width: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}



/* ------------------------------------------------------------------------
   S / M / L: never wrap into an unbalanced 2 + 1 arrangement. Enabled sizes
   share one row, equal dimensions and equal spacing. One or two options remain
   centred without changing the form values or selection logic.
   ------------------------------------------------------------------------ */











/* Keep the total and validation message below the size row; no card may cross
   the separator line or overlap the price. */
body.zuva-universal-theme .zuva-customizer-total-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  align-items: end !important;
  gap: 14px !important;
  width: 100% !important;
  margin-top: 24px !important;
  padding-top: 20px !important;
  box-sizing: border-box !important;
}
body.zuva-universal-theme .zuva-customizer-total-row [role="alert"] {
  max-width: 150px !important;
  text-align: right !important;
}

/* ------------------------------------------------------------------------
   Quantity: explicit three-cell control. WordPress/WooCommerce labels and
   inherited flex rules cannot move −, value and + onto different rows.
   ------------------------------------------------------------------------ */
body.zuva-universal-theme form.cart .quantity.zuva-quantity-stepper {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 52px minmax(58px, 1fr) 52px !important;
  grid-template-rows: 52px !important;
  align-items: center !important;
  width: 220px !important;
  max-width: 100% !important;
  height: 54px !important;
  min-height: 54px !important;
  max-height: 54px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--zuva-border) !important;
  border-radius: 999px !important;
  background: #fff !important;
  box-sizing: border-box !important;
}

body.zuva-universal-theme form.cart .quantity.zuva-quantity-stepper > label,
body.zuva-universal-theme form.cart .quantity.zuva-quantity-stepper > .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

body.zuva-universal-theme form.cart .quantity.zuva-quantity-stepper .zuva-quantity-minus {
  grid-column: 1 !important;
  grid-row: 1 !important;
}
body.zuva-universal-theme form.cart .quantity.zuva-quantity-stepper .qty {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  margin: 0 !important;
  padding: 0 4px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--zuva-charcoal) !important;
  font: 500 1rem/1 var(--zuva-body) !important;
  text-align: center !important;
  appearance: textfield !important;
  -moz-appearance: textfield !important;
  box-sizing: border-box !important;
}
body.zuva-universal-theme form.cart .quantity.zuva-quantity-stepper .zuva-quantity-plus {
  grid-column: 3 !important;
  grid-row: 1 !important;
}
body.zuva-universal-theme form.cart .quantity.zuva-quantity-stepper .qty::-webkit-outer-spin-button,
body.zuva-universal-theme form.cart .quantity.zuva-quantity-stepper .qty::-webkit-inner-spin-button {
  margin: 0 !important;
  -webkit-appearance: none !important;
}
body.zuva-universal-theme .zuva-quantity-step {
  display: grid !important;
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  place-items: center !important;
  align-self: stretch !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--zuva-charcoal) !important;
  font: 400 1.35rem/1 var(--zuva-body) !important;
  cursor: pointer !important;
  box-sizing: border-box !important;
  transition: background-color .2s ease, color .2s ease, transform .16s ease !important;
}
body.zuva-universal-theme .zuva-quantity-step:hover {
  background: rgba(94,113,60,.09) !important;
  color: var(--zuva-olive-deep) !important;
}
body.zuva-universal-theme .zuva-quantity-step:active { transform: scale(.9) !important; }
body.zuva-universal-theme .zuva-quantity-step:disabled { opacity: .3 !important; cursor: not-allowed !important; }

body.zuva-universal-theme .zuva-runtime-purchase-row {
  display: grid !important;
  grid-template-columns: minmax(190px, 220px) minmax(190px, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
}
body.zuva-universal-theme .zuva-runtime-purchase-row .single_add_to_cart_button {
  width: 100% !important;
  height: 54px !important;
  min-height: 54px !important;
  max-height: 54px !important;
  margin: 0 !important;
}

/* ------------------------------------------------------------------------
   Shop cards: ADD TO ORDER and CUSTOMIZE use the exact same wrapper, action
   height and bottom slot. The card content above remains unchanged.
   ------------------------------------------------------------------------ */
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wp-block-woocommerce-product-collection .wc-block-product,
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wp-block-woocommerce-product-price {
  min-height: 42px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wp-block-woocommerce-product-button,
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wc-block-components-product-button,
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .zuva-customize-button-wrap {
  display: flex !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  min-height: 94px !important;
  align-items: flex-start !important;
  justify-content: center !important;
  margin: auto 0 0 !important;
  padding: 16px 22px 24px !important;
  aspect-ratio: auto !important;
  box-sizing: border-box !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wp-block-woocommerce-product-button > :is(a,button),
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wc-block-components-product-button > :is(a,button),
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .zuva-customize-product-link {
  position: static !important;
  inset: auto !important;
  display: inline-flex !important;
  flex: 0 0 auto !important;
  width: 158px !important;
  min-width: 158px !important;
  max-width: calc(100% - 4px) !important;
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto !important;
  padding: 0 20px !important;
  aspect-ratio: auto !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: var(--zuva-olive) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-family: var(--zuva-accent) !important;
  font-size: .65rem !important;
  font-weight: 400 !important;
  line-height: 1 !important;
  letter-spacing: .16em !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wp-block-woocommerce-product-button > :is(a,button):hover,
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wc-block-components-product-button > :is(a,button):hover,
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .zuva-customize-product-link:hover {
  background: var(--zuva-olive-deep) !important;
  color: #fff !important;
  transform: translateY(-2px) !important;
}

/* Homepage line actions stay on one baseline. */
body.zuva-universal-theme .zuva-universal-product-copy > .zuva-add-order {
  min-height: 28px !important;
  align-self: flex-start !important;
  margin-top: auto !important;
  box-sizing: border-box !important;
}

@media (max-width: 1024px) {
  body.single-product.zuva-universal-theme .zuva-runtime-product-main {
    grid-template-columns: minmax(0, 1fr) minmax(380px, .9fr) !important;
    gap: 28px !important;
  }
}

@media (max-width: 900px) {
  body.single-product.zuva-universal-theme .zuva-runtime-product-main {
    grid-template-columns: minmax(0, 1fr) !important;
    max-width: 720px !important;
    gap: 20px !important;
  }
}

@media (max-width: 782px) {
  
  
  
  
  
  
  
  

  body.zuva-universal-theme .zuva-customizer-total-row {
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
  }
  body.zuva-universal-theme .zuva-customizer-total-row [role="alert"] {
    max-width: none !important;
    text-align: left !important;
  }

  body.zuva-universal-theme .zuva-runtime-purchase-row {
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 12px !important;
  }
  body.zuva-universal-theme form.cart .quantity.zuva-quantity-stepper {
    width: 100% !important;
    max-width: none !important;
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
  }
  body.zuva-universal-theme .zuva-runtime-purchase-row .single_add_to_cart_button {
    width: 100% !important;
  }

  html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wp-block-woocommerce-product-button,
  html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wc-block-components-product-button,
  html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .zuva-customize-button-wrap {
    min-height: 82px !important;
    padding: 12px 12px 18px !important;
  }
  html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wp-block-woocommerce-product-button > :is(a,button),
  html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .wc-block-components-product-button > :is(a,button),
  html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .zuva-customize-product-link {
    width: 100% !important;
    min-width: 0 !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    padding-inline: 8px !important;
    font-size: .6rem !important;
    letter-spacing: .12em !important;
  }
}

@media (max-width: 360px) {
  
  
  
  
  
}
