/*
 * Veridian Health 2.6.1 — product desktop/mobile parity
 * Loaded explicitly after the normal PrestaShop stylesheet stack.
 * This file is intentionally self-contained so CCC/load-order rules cannot
 * restore the old desktop-only quantity/reassurance layout.
 */

/* ----- Quantity heading ----- */
body#product .product-add-to-cart > .control-label {
  display: block !important;
  width: 100% !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
}

/* ----- One purchase row on every screen size ----- */
body#product .product-add-to-cart .product-quantity,
body#product .product-add-to-cart .product-quantity.vh-product-purchase-row {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  width: 100% !important;
  max-width: 100% !important;
  gap: 6px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  vertical-align: top !important;
}

/* Wishlist | quantity | add to cart */
body#product .product-quantity > .vh-product-actions-hook {
  order: 1 !important;
  display: flex !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  flex: 0 0 42px !important;
  width: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
}

body#product .product-quantity > .qty {
  order: 2 !important;
  display: flex !important;
  flex: 0 0 132px !important;
  width: 132px !important;
  min-width: 132px !important;
  max-width: 132px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

body#product .product-quantity > .add {
  order: 3 !important;
  display: flex !important;
  align-items: stretch !important;
  flex: 1 1 132px !important;
  width: auto !important;
  min-width: 132px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

body#product .product-quantity > .add .add-to-cart {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  white-space: nowrap !important;
}

/* ----- Wishlist square ----- */
body#product .vh-product-actions-hook .wishlist-button,
body#product .vh-product-actions-hook .wishlist-button-add,
body#product .vh-product-actions-hook .wishlist-button-product,
body#product .product-quantity > .wishlist-button,
body#product .product-quantity > .wishlist-button-add,
body#product .product-quantity > .wishlist-button-product {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  inset: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 42px !important;
  width: 42px !important;
  min-width: 42px !important;
  max-width: 42px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #d9d9cb !important;
  border-radius: 9px !important;
  background: #f8f7ef !important;
  box-shadow: none !important;
  transform: none !important;
}

body#product .vh-product-actions-hook .wishlist-button i,
body#product .vh-product-actions-hook .wishlist-button-add i,
body#product .vh-product-actions-hook .wishlist-button-product i,
body#product .vh-product-actions-hook .wishlist-button svg,
body#product .vh-product-actions-hook .wishlist-button-add svg,
body#product .vh-product-actions-hook .wishlist-button-product svg {
  width: 22px !important;
  height: 22px !important;
  margin: 0 !important;
  font-size: 22px !important;
}

/* ----- Horizontal minus | number | plus control ----- */
body#product .product-quantity .bootstrap-touchspin.vh-parity-spin,
body#product .product-quantity .bootstrap-touchspin.vh-horizontal-quantity {
  display: inline-flex !important;
  flex-flow: row nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  flex: 0 0 132px !important;
  width: 132px !important;
  min-width: 132px !important;
  max-width: 132px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid #d9d9cb !important;
  border-radius: 9px !important;
  background: #f8f7ef !important;
  box-shadow: none !important;
}

body#product .product-quantity .bootstrap-touchspin.vh-parity-spin .input-group-addon,
body#product .product-quantity .bootstrap-touchspin.vh-horizontal-quantity .input-group-addon,
body#product .product-quantity .bootstrap-touchspin.vh-parity-spin > .input-group-btn,
body#product .product-quantity .bootstrap-touchspin.vh-horizontal-quantity > .input-group-btn,
body#product .product-quantity .bootstrap-touchspin.vh-parity-spin > .input-group-btn-vertical,
body#product .product-quantity .bootstrap-touchspin.vh-horizontal-quantity > .input-group-btn-vertical {
  display: none !important;
}

body#product .product-quantity .bootstrap-touchspin.vh-parity-spin #quantity_wanted,
body#product .product-quantity .bootstrap-touchspin.vh-horizontal-quantity #quantity_wanted {
  order: 2 !important;
  display: block !important;
  flex: 0 0 52px !important;
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 4px !important;
  border: 0 !important;
  border-left: 1px solid #d9d9cb !important;
  border-right: 1px solid #d9d9cb !important;
  border-radius: 0 !important;
  background: #fffef8 !important;
  color: #26311d !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 42px !important;
  text-align: center !important;
  box-shadow: none !important;
  -moz-appearance: textfield !important;
  appearance: textfield !important;
}

body#product .product-quantity #quantity_wanted::-webkit-inner-spin-button,
body#product .product-quantity #quantity_wanted::-webkit-outer-spin-button {
  margin: 0 !important;
  -webkit-appearance: none !important;
}

body#product .product-quantity .bootstrap-touchspin.vh-parity-spin > .bootstrap-touchspin-down,
body#product .product-quantity .bootstrap-touchspin.vh-parity-spin > .bootstrap-touchspin-up,
body#product .product-quantity .bootstrap-touchspin.vh-horizontal-quantity > .bootstrap-touchspin-down,
body#product .product-quantity .bootstrap-touchspin.vh-horizontal-quantity > .bootstrap-touchspin-up,
body#product .product-quantity .vh-quantity-decrease,
body#product .product-quantity .vh-quantity-increase {
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 40px !important;
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  height: 42px !important;
  min-height: 42px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #f8f7ef !important;
  color: #26311d !important;
  box-shadow: none !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body#product .product-quantity .bootstrap-touchspin-down,
body#product .product-quantity .vh-quantity-decrease { order: 1 !important; }
body#product .product-quantity .bootstrap-touchspin-up,
body#product .product-quantity .vh-quantity-increase { order: 3 !important; }

body#product .product-quantity .bootstrap-touchspin-down > i,
body#product .product-quantity .bootstrap-touchspin-up > i,
body#product .product-quantity .vh-quantity-decrease > i,
body#product .product-quantity .vh-quantity-increase > i {
  display: none !important;
}

body#product .product-quantity .vh-quantity-symbol {
  position: static !important;
  display: inline-block !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #26311d !important;
  font-family: Arial, Helvetica, sans-serif !important;
  font-size: 22px !important;
  font-style: normal !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  opacity: 1 !important;
  visibility: visible !important;
}

/* ----- Availability beneath row ----- */
body#product .product-add-to-cart #product-availability {
  display: block !important;
  width: fit-content !important;
  margin: 11px 0 0 !important;
  padding: 0 !important;
  line-height: 1.25 !important;
  float: none !important;
}

body#product .product-add-to-cart #product-availability .material-icons {
  margin: 0 6px 0 0 !important;
  vertical-align: middle !important;
}

/* ----- Policy/reassurance area: exact mobile-style two-column rows ----- */
body#product .blockreassurance_product,
body#product #block-reassurance {
  width: 100% !important;
  margin: 30px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body#product .blockreassurance_product {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 24px !important;
}

body#product #block-reassurance ul {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 24px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

body#product .blockreassurance_product > div,
body#product #block-reassurance li,
body#product #block-reassurance .block-reassurance-item {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

body#product .blockreassurance_product > div,
body#product #block-reassurance .block-reassurance-item.vh-policy-item {
  display: grid !important;
  grid-template-columns: minmax(82px, 28%) minmax(0, 1fr) !important;
  grid-template-rows: auto !important;
  column-gap: 18px !important;
  row-gap: 0 !important;
  align-items: center !important;
  min-height: 0 !important;
}

/* Hide policy icons, matching the supplied mobile reference. */
body#product .blockreassurance_product > div > .item-product,
body#product .blockreassurance_product > div > .item-product img,
body#product .blockreassurance_product > div > img,
body#product .blockreassurance_product > div .icon-img,
body#product #block-reassurance .block-reassurance-item img,
body#product #block-reassurance .block-reassurance-item .icon-img,
body#product #block-reassurance .block-reassurance-item .item-product {
  display: none !important;
}

body#product .blockreassurance_product .block-title,
body#product #block-reassurance .block-reassurance-item.vh-policy-item .block-title {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: center !important;
  justify-self: stretch !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #1f211d !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.35 !important;
  text-align: center !important;
  text-transform: none !important;
}

body#product .blockreassurance_product > div > p,
body#product .blockreassurance_product > div > .block-description,
body#product .blockreassurance_product > div > .item-product-description,
body#product #block-reassurance .block-reassurance-item.vh-policy-item > p,
body#product #block-reassurance .block-reassurance-item.vh-policy-item > .block-description,
body#product #block-reassurance .block-reassurance-item.vh-policy-item > .item-product-description {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: center !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #1f211d !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  text-align: left !important;
}

/* Same layout is repeated explicitly for desktop. This is not a different
   desktop design: it prevents old min-width rules from restoring themselves. */
@media (min-width: 768px) {
  body#product .product-add-to-cart .product-quantity {
    display: flex !important;
    flex-flow: row nowrap !important;
    gap: 6px !important;
  }

  body#product .blockreassurance_product,
  body#product #block-reassurance ul {
    gap: 24px !important;
  }
}

/* Keep narrow phones fitting without changing order or appearance. */
@media (max-width: 359.98px) {
  body#product .product-add-to-cart .product-quantity { gap: 4px !important; }
  body#product .product-quantity > .vh-product-actions-hook,
  body#product .vh-product-actions-hook .wishlist-button,
  body#product .vh-product-actions-hook .wishlist-button-add,
  body#product .vh-product-actions-hook .wishlist-button-product {
    flex-basis: 40px !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
  }
  body#product .product-quantity > .qty,
  body#product .product-quantity .bootstrap-touchspin.vh-parity-spin,
  body#product .product-quantity .bootstrap-touchspin.vh-horizontal-quantity {
    flex-basis: 124px !important;
    width: 124px !important;
    min-width: 124px !important;
    max-width: 124px !important;
  }
  body#product .product-quantity .bootstrap-touchspin.vh-parity-spin #quantity_wanted,
  body#product .product-quantity .bootstrap-touchspin.vh-horizontal-quantity #quantity_wanted {
    flex-basis: 48px !important;
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
  }
  body#product .product-quantity .bootstrap-touchspin.vh-parity-spin > .bootstrap-touchspin-down,
  body#product .product-quantity .bootstrap-touchspin.vh-parity-spin > .bootstrap-touchspin-up,
  body#product .product-quantity .vh-quantity-decrease,
  body#product .product-quantity .vh-quantity-increase {
    flex-basis: 38px !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
  }
  body#product .product-quantity > .add { min-width: 118px !important; }
  body#product .blockreassurance_product > div,
  body#product #block-reassurance .block-reassurance-item.vh-policy-item {
    grid-template-columns: minmax(76px, 28%) minmax(0, 1fr) !important;
    column-gap: 14px !important;
  }
}
