/*
 * Veridian Health 2.6.23 — commerce-wide cart + reassurance parity
 * Extends the 2.6.21 cart treatment to checkout summaries, the add-to-cart
 * modal and any legacy mini-cart product lines, on desktop and mobile.
 */

/* ========================================================================== 
   QUANTITY CONTROL: minus | quantity | plus everywhere a cart line is editable
   ========================================================================== */
.bootstrap-touchspin.vh-commerce-horizontal-quantity {
  display: inline-flex !important;
  flex-flow: row nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !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;
  vertical-align: middle !important;
}

.bootstrap-touchspin.vh-commerce-horizontal-quantity > .input-group-addon,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .input-group-btn,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .input-group-btn-vertical {
  display: none !important;
}

.bootstrap-touchspin.vh-commerce-horizontal-quantity .js-cart-line-product-quantity {
  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-right: 1px solid #d9d9cb !important;
  border-left: 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;
}

.bootstrap-touchspin.vh-commerce-horizontal-quantity .js-cart-line-product-quantity::-webkit-inner-spin-button,
.bootstrap-touchspin.vh-commerce-horizontal-quantity .js-cart-line-product-quantity::-webkit-outer-spin-button {
  margin: 0 !important;
  -webkit-appearance: none !important;
}

.bootstrap-touchspin.vh-commerce-horizontal-quantity > .bootstrap-touchspin-down,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .bootstrap-touchspin-up,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .vh-commerce-quantity-decrease,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .vh-commerce-quantity-increase {
  position: static !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !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;
  cursor: pointer !important;
  touch-action: manipulation !important;
}

.bootstrap-touchspin.vh-commerce-horizontal-quantity > .bootstrap-touchspin-down,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .vh-commerce-quantity-decrease {
  order: 1 !important;
}

.bootstrap-touchspin.vh-commerce-horizontal-quantity > .bootstrap-touchspin-up,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .vh-commerce-quantity-increase {
  order: 3 !important;
}

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


/* 2.6.23: only the explicit symbol span may draw a minus/plus. This prevents
   legacy/pseudo-element icon rules from doubling the glyph as -- or ++. */
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .bootstrap-touchspin-down::before,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .bootstrap-touchspin-down::after,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .bootstrap-touchspin-up::before,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .bootstrap-touchspin-up::after,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .vh-commerce-quantity-decrease::before,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .vh-commerce-quantity-decrease::after,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .vh-commerce-quantity-increase::before,
.bootstrap-touchspin.vh-commerce-horizontal-quantity > .vh-commerce-quantity-increase::after {
  content: none !important;
  display: none !important;
}

.vh-commerce-quantity-symbol {
  display: inline-block !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;
}

/* Read-only fallback keeps the same visual order when a module does not expose
   update URLs for that particular cart fragment. */
.vh-static-commerce-quantity {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 112px !important;
  height: 38px !important;
  margin: 6px 0 !important;
  padding: 0 11px !important;
  border: 1px solid #d9d9cb !important;
  border-radius: 8px !important;
  background: #f8f7ef !important;
  color: #26311d !important;
  font-size: 17px !important;
  line-height: 1 !important;
}

.vh-static-commerce-quantity strong {
  min-width: 28px !important;
  text-align: center !important;
}

/* Main cart: retain 2.6.21 row alignment while the new global control class is used. */
body#cart .bootstrap-touchspin.vh-commerce-horizontal-quantity {
  width: 132px !important;
  min-width: 132px !important;
  max-width: 132px !important;
}

/* Checkout cart summary (visible beside Personal Information / Addresses /
   Shipping / Payment). */
body#checkout .cart-summary-products .media-body .product-name {
  display: block !important;
  padding-right: 4px !important;
}

body#checkout .cart-summary-products .vh-summary-quantity-wrap {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  margin: 8px 8px 4px 0 !important;
  vertical-align: middle !important;
}

body#checkout .cart-summary-products .vh-summary-quantity-wrap .bootstrap-touchspin {
  margin: 0 !important;
}

body#checkout .cart-summary-products .product-price.float-xs-right {
  margin-top: 16px !important;
}

/* Add-to-cart confirmation modal. */
#blockcart-modal .vh-modal-quantity-wrap,
.vh-mini-cart-quantity-wrap {
  display: inline-flex !important;
  align-items: center !important;
  width: auto !important;
  margin: 10px 0 4px !important;
}

#blockcart-modal .vh-modal-quantity-wrap .bootstrap-touchspin {
  margin: 0 !important;
}

/* ========================================================================== 
   REASSURANCE/POLICY PARITY ACROSS CART + CHECKOUT
   ========================================================================== */
.vh-commerce-reassurance {
  width: 100% !important;
  margin: 30px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.vh-commerce-reassurance .blockreassurance_product,
.vh-commerce-reassurance #block-reassurance {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.vh-commerce-reassurance .blockreassurance_product,
.vh-commerce-reassurance #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;
}

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

/* Legacy store markup used by the Security / Delivery / Return policy rows. */
.vh-commerce-reassurance .blockreassurance_product > div,
.vh-commerce-reassurance #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;
}

.vh-commerce-reassurance .blockreassurance_product > div > .item-product,
.vh-commerce-reassurance .blockreassurance_product > div > .item-product img,
.vh-commerce-reassurance .blockreassurance_product > div > img,
.vh-commerce-reassurance .blockreassurance_product > div .icon-img,
.vh-commerce-reassurance #block-reassurance .block-reassurance-item.vh-policy-item img,
.vh-commerce-reassurance #block-reassurance .block-reassurance-item.vh-policy-item .icon-img,
.vh-commerce-reassurance #block-reassurance .block-reassurance-item.vh-policy-item .item-product {
  display: none !important;
}

.vh-commerce-reassurance .blockreassurance_product .block-title,
.vh-commerce-reassurance #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;
}

.vh-commerce-reassurance .blockreassurance_product > div > p,
.vh-commerce-reassurance .blockreassurance_product > div > .block-description,
.vh-commerce-reassurance .blockreassurance_product > div > .item-product-description,
.vh-commerce-reassurance #block-reassurance .block-reassurance-item.vh-policy-item > p,
.vh-commerce-reassurance #block-reassurance .block-reassurance-item.vh-policy-item > .block-description,
.vh-commerce-reassurance #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;
}

/* Newer blockreassurance versions may expose only an icon + one text string.
   Keep those rows clean and borderless instead of forcing a fake description. */
.vh-commerce-reassurance #block-reassurance .block-reassurance-item:not(.vh-policy-item) {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.vh-commerce-reassurance #block-reassurance .block-reassurance-item:not(.vh-policy-item) img {
  flex: 0 0 30px !important;
  width: 30px !important;
  max-width: 30px !important;
  height: auto !important;
  margin: 0 !important;
}

.vh-commerce-reassurance #block-reassurance .block-reassurance-item:not(.vh-policy-item) .h6 {
  margin: 0 !important;
  color: #1f211d !important;
  font-size: 15px !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
  text-transform: none !important;
}

@media (max-width: 479.98px) {
  .bootstrap-touchspin.vh-commerce-horizontal-quantity {
    width: 116px !important;
    min-width: 116px !important;
    max-width: 116px !important;
  }

  .bootstrap-touchspin.vh-commerce-horizontal-quantity .js-cart-line-product-quantity {
    flex-basis: 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
  }

  .bootstrap-touchspin.vh-commerce-horizontal-quantity > .bootstrap-touchspin-down,
  .bootstrap-touchspin.vh-commerce-horizontal-quantity > .bootstrap-touchspin-up,
  .bootstrap-touchspin.vh-commerce-horizontal-quantity > .vh-commerce-quantity-decrease,
  .bootstrap-touchspin.vh-commerce-horizontal-quantity > .vh-commerce-quantity-increase {
    flex-basis: 36px !important;
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
  }

  .vh-commerce-reassurance .blockreassurance_product > div,
  .vh-commerce-reassurance #block-reassurance .block-reassurance-item.vh-policy-item {
    grid-template-columns: minmax(76px, 29%) minmax(0, 1fr) !important;
    column-gap: 14px !important;
  }

  .vh-commerce-reassurance .blockreassurance_product .block-title,
  .vh-commerce-reassurance #block-reassurance .block-reassurance-item.vh-policy-item .block-title,
  .vh-commerce-reassurance .blockreassurance_product > div > p,
  .vh-commerce-reassurance .blockreassurance_product > div > .block-description,
  .vh-commerce-reassurance .blockreassurance_product > div > .item-product-description,
  .vh-commerce-reassurance #block-reassurance .block-reassurance-item.vh-policy-item > p,
  .vh-commerce-reassurance #block-reassurance .block-reassurance-item.vh-policy-item > .block-description,
  .vh-commerce-reassurance #block-reassurance .block-reassurance-item.vh-policy-item > .item-product-description {
    font-size: 14px !important;
  }

  body#checkout .cart-summary-products .product-price.float-xs-right {
    margin-top: 14px !important;
  }
}
