/*
 * ZUVA Hakoura Universal 10.8 — coordinated product experience.
 * This layer styles the theme-owned catalogue and product page only. The
 * product customizer itself is owned by Mobile App API 6.2.7.
 */

/* -------------------------------------------------------------------------
   Catalogue cards: compact, consistent, and ordered image → title → summary
   → price → action. The action remains aligned without being pinned to the
   card border.
   ---------------------------------------------------------------------- */
body.zuva-universal-theme :is(.wc-block-product, .woocommerce ul.products li.product) {
  --zuva-card-action-height: 44px;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product {
  display: flex !important;
  height: 100% !important;
  min-height: 0 !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product :is(.wp-block-post-title, .wc-block-components-product-title) {
  display: -webkit-box !important;
  min-height: 2.25em !important;
  max-height: 2.25em !important;
  margin: 15px 18px 5px !important;
  overflow: hidden !important;
  line-height: 1.12 !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product :is(.wp-block-woocommerce-product-summary, .wc-block-components-product-summary, .wp-block-post-excerpt) {
  display: -webkit-box !important;
  min-height: 3.95em !important;
  max-height: 3.95em !important;
  margin: 6px 20px 8px !important;
  overflow: hidden !important;
  color: rgba(40, 37, 31, .68) !important;
  line-height: 1.32 !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 3 !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product :is(.wp-block-woocommerce-product-price, .wc-block-components-product-price) {
  position: static !important;
  display: flex !important;
  min-height: 26px !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 4px 18px 8px !important;
  padding: 0 !important;
  line-height: 1 !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product :is(.wp-block-woocommerce-product-button, .wc-block-components-product-button, .zuva-customize-button-wrap) {
  display: flex !important;
  width: 100% !important;
  min-height: 66px !important;
  height: 66px !important;
  flex: 0 0 66px !important;
  align-items: flex-start !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 5px 18px var(--zuva-catalog-button-bottom, 17px) !important;
  aspect-ratio: auto !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product :is(.wp-block-woocommerce-product-button, .wc-block-components-product-button, .zuva-customize-button-wrap) > :is(a, button),
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .zuva-customize-product-link,
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .woocommerce ul.products li.product > :is(.button, .zuva-customize-product-link) {
  position: static !important;
  inset: auto !important;
  display: inline-flex !important;
  width: min(178px, calc(100% - 4px)) !important;
  min-width: 0 !important;
  max-width: 178px !important;
  height: var(--zuva-card-action-height) !important;
  min-height: var(--zuva-card-action-height) !important;
  max-height: var(--zuva-card-action-height) !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 auto !important;
  padding: 0 18px !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: var(--zuva-olive, #566d43) !important;
  box-shadow: none !important;
  font-family: var(--zuva-accent, Cinzel, serif) !important;
  font-size: .62rem !important;
  font-weight: 500 !important;
  letter-spacing: .15em !important;
  line-height: 1 !important;
  text-decoration: none !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
  transition: transform var(--zuva-action-speed, 240ms) cubic-bezier(.22, 1, .36, 1), background-color var(--zuva-action-speed, 240ms) ease, box-shadow var(--zuva-action-speed, 240ms) ease !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product :is(.wp-block-woocommerce-product-button, .wc-block-components-product-button, .zuva-customize-button-wrap) > :is(a, button):hover,
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .zuva-customize-product-link:hover {
  color: #fff !important;
  background: var(--zuva-olive-deep, #405032) !important;
  box-shadow: 0 10px 24px rgba(56, 70, 42, .17) !important;
  transform: translateY(calc(-1 * var(--zuva-action-lift, 3px))) !important;
}

html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product :is(.wp-block-woocommerce-product-button, .wc-block-components-product-button, .zuva-customize-button-wrap) > :is(a, button):active,
html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product .zuva-customize-product-link:active {
  transform: translateY(-1px) scale(.985) !important;
}

/* -------------------------------------------------------------------------
   Single product: stable two-column desktop, premium single-column mobile.
   ---------------------------------------------------------------------- */
body.single-product.zuva-universal-theme .zuva-product-shell {
  width: 100% !important;
  max-width: none !important;
  padding: clamp(20px, 3vw, 42px) clamp(16px, 4vw, 56px) clamp(64px, 8vw, 110px) !important;
}

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;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-main {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: flex-start !important;
  gap: clamp(28px, 4vw, 58px) !important;
  width: 100% !important;
  max-width: 1260px !important;
  margin-inline: auto !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-media {
  position: sticky !important;
  flex: 1.08 1 0 !important;
  top: 118px !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--zuva-border, rgba(40, 37, 31, .13)) !important;
  border-radius: 26px !important;
  background: #f4ecdf !important;
  box-shadow: 0 22px 58px rgba(40, 32, 25, .1) !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-image {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  aspect-ratio: 1 / 1.04 !important;
  object-fit: cover !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-summary {
  width: 100% !important;
  flex: .92 1 0 !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: clamp(26px, 3.2vw, var(--zuva-product-panel-padding, 44px)) !important;
  border: 1px solid var(--zuva-border, rgba(40, 37, 31, .13)) !important;
  border-radius: 26px !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 20px 54px rgba(40, 32, 25, .075) !important;
  text-align: left !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-summary .product_title {
  margin: 0 0 10px !important;
  font-family: var(--zuva-display, "Cormorant Garamond", Georgia, serif) !important;
  font-size: clamp(2.65rem, 4.4vw, 4.5rem) !important;
  font-weight: 400 !important;
  line-height: .95 !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-price {
  margin: 0 0 14px !important;
  color: var(--zuva-olive, #566d43) !important;
  font-family: var(--zuva-display, "Cormorant Garamond", Georgia, serif) !important;
  font-size: 1.25rem !important;
  line-height: 1 !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-summary .woocommerce-product-details__short-description {
  margin: 0 0 24px !important;
  color: rgba(40, 37, 31, .68) !important;
  font-size: .96rem !important;
  line-height: 1.58 !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-summary .woocommerce-product-details__short-description p {
  margin: 0 !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-cart-form {
  display: block !important;
  margin: 0 !important;
}

/* Main quantity: exactly minus, number, plus. */
body.single-product.zuva-universal-theme form.cart .quantity.zuva-order-quantity {
  display: flex !important;
  align-items: stretch !important;
  width: 210px !important;
  max-width: 100% !important;
  height: 52px !important;
  min-height: 52px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--zuva-border, rgba(40, 37, 31, .14)) !important;
  border-radius: 999px !important;
  background: #fff !important;
}

body.single-product.zuva-universal-theme form.cart .quantity.zuva-order-quantity > label,
body.single-product.zuva-universal-theme form.cart .quantity.zuva-order-quantity > .screen-reader-text {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
}

body.single-product.zuva-universal-theme form.cart .quantity.zuva-order-quantity :is(.zuva-order-quantity__button, .qty) {
  display: flex !important;
  width: 100% !important;
  min-width: 0 !important;
  flex: 1 1 0 !important;
  height: 50px !important;
  min-height: 50px !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--zuva-charcoal, #28251f) !important;
  background: transparent !important;
  box-shadow: none !important;
  font: 650 1rem/1 var(--zuva-body, Inter, sans-serif) !important;
  text-align: center !important;
  appearance: none !important;
}

body.single-product.zuva-universal-theme form.cart .quantity.zuva-order-quantity .qty {
  border-inline: 1px solid rgba(40, 37, 31, .12) !important;
}

body.single-product.zuva-universal-theme form.cart .quantity.zuva-order-quantity .zuva-order-quantity__button {
  color: var(--zuva-olive, #566d43) !important;
  font-size: 1.2rem !important;
  cursor: pointer !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-purchase-row {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center !important;
  gap: 12px !important;
  width: 100% !important;
  margin: 18px 0 0 !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-purchase-row .single_add_to_cart_button {
  display: inline-flex !important;
  width: 100% !important;
  min-width: 0 !important;
  height: 52px !important;
  min-height: 52px !important;
  max-height: 52px !important;
  align-items: center !important;
  justify-content: center !important;
  margin: 0 !important;
  padding: 0 24px !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #fff !important;
  background: var(--zuva-olive, #566d43) !important;
  font-family: var(--zuva-accent, Cinzel, serif) !important;
  font-size: .65rem !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  transition: transform var(--zuva-action-speed, 240ms) ease, background-color var(--zuva-action-speed, 240ms) ease, box-shadow var(--zuva-action-speed, 240ms) ease !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-purchase-row .single_add_to_cart_button:not(:disabled):hover {
  background: var(--zuva-olive-deep, #405032) !important;
  box-shadow: 0 12px 28px rgba(56, 70, 42, .18) !important;
  transform: translateY(-2px) !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-purchase-row .single_add_to_cart_button:disabled {
  cursor: not-allowed !important;
  opacity: .42 !important;
}

body.single-product.zuva-universal-theme .zuva-runtime-product-meta {
  margin-top: 22px !important;
  padding-top: 17px !important;
  border-top: 1px solid var(--zuva-border, rgba(40, 37, 31, .13)) !important;
  color: rgba(40, 37, 31, .5) !important;
  font-size: .72rem !important;
}

@media (max-width: 960px) {
  body.single-product.zuva-universal-theme .zuva-runtime-product-main {
    flex-direction: column !important;
    max-width: 720px !important;
    gap: 22px !important;
  }

  body.single-product.zuva-universal-theme .zuva-runtime-product-media,
  body.single-product.zuva-universal-theme .zuva-runtime-product-summary {
    flex: 0 0 auto !important;
  }

  body.single-product.zuva-universal-theme .zuva-runtime-product-media {
    position: static !important;
  }

  body.single-product.zuva-universal-theme .zuva-runtime-product-image {
    aspect-ratio: 4 / 3 !important;
  }
}

@media (max-width: 782px) {
  body.single-product.zuva-universal-theme .zuva-product-shell {
    padding: 12px 14px calc(96px + env(safe-area-inset-bottom, 0px)) !important;
  }

  body.single-product.zuva-universal-theme .zuva-runtime-product-main {
    gap: 16px !important;
  }

  body.single-product.zuva-universal-theme .zuva-runtime-product-media {
    border-radius: 20px !important;
  }

  body.single-product.zuva-universal-theme .zuva-runtime-product-image {
    aspect-ratio: 1 / .82 !important;
  }

  body.single-product.zuva-universal-theme .zuva-runtime-product-summary {
    padding: 22px 16px 24px !important;
    border-radius: 22px !important;
  }

  body.single-product.zuva-universal-theme .zuva-runtime-product-summary .product_title {
    font-size: clamp(2.3rem, 12vw, 3.35rem) !important;
  }

  body.single-product.zuva-universal-theme .zuva-runtime-purchase-row {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  body.single-product.zuva-universal-theme form.cart .quantity.zuva-order-quantity {
    width: 100% !important;
  }

  body.single-product.zuva-universal-theme .zuva-runtime-purchase-row .single_add_to_cart_button {
    height: 54px !important;
    min-height: 54px !important;
    max-height: 54px !important;
  }

  html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product :is(.wp-block-post-title, .wc-block-components-product-title) {
    margin-top: 12px !important;
  }

  html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product :is(.wp-block-woocommerce-product-summary, .wc-block-components-product-summary, .wp-block-post-excerpt) {
    margin-inline: 14px !important;
  }

  html:not(.zuva-pwa-standalone) body.zuva-universal-theme .wc-block-product :is(.wp-block-woocommerce-product-button, .wc-block-components-product-button, .zuva-customize-button-wrap) {
    height: 62px !important;
    min-height: 62px !important;
    flex-basis: 62px !important;
    padding: 4px 12px 14px !important;
  }
}

html.zuva-pwa-standalone body.single-product.zuva-universal-theme .zuva-runtime-product-summary {
  box-shadow: none !important;
}

@media (prefers-reduced-motion: reduce) {
  body.zuva-universal-theme .zuva-customize-product-link,
  body.zuva-universal-theme .single_add_to_cart_button {
    transition: none !important;
  }
}

/* 10.9 checkout context and authoritative product runtime refinements. */
.zuva-checkout-context{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:12px;margin:0 0 18px;padding:14px 16px;border:1px solid rgba(40,37,31,.13);border-radius:16px;background:#fff}.zuva-checkout-context span{display:flex;min-width:0;flex-direction:column}.zuva-checkout-context small{color:rgba(40,37,31,.55);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}.zuva-checkout-context strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.zuva-checkout-context a{padding:9px 13px;border:1px solid var(--zuva-olive,#566d43);border-radius:999px;color:var(--zuva-olive,#566d43);font-size:.65rem;font-weight:700;text-decoration:none;text-transform:uppercase}
body.single-product.zuva-universal-theme .zuva-product-load-error{display:grid;min-height:360px;place-content:center;justify-items:center;gap:16px;padding:36px;border:1px solid rgba(40,37,31,.13);border-radius:26px;background:#fff;text-align:center}body.single-product.zuva-universal-theme .zuva-product-load-error button{min-height:48px;padding:0 24px;border:0;border-radius:999px;color:#fff;background:var(--zuva-olive,#566d43)}
@media(max-width:600px){.zuva-checkout-context{grid-template-columns:1fr auto}.zuva-checkout-context span:nth-child(2){grid-column:1/-1;grid-row:2}.zuva-checkout-context a{grid-column:2;grid-row:1}}
