/* Veridian Health 2.6.57 performance bundle. Source files retained for maintainability. */

/* ---- veridian-product-parity-261.css ---- */
/*
 * 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;
  }
}


/* ---- veridian-ui-refinements-262.css ---- */
/*
 * Veridian Health 2.6.2 — banner parity + tighter subcategory spacing
 * Loaded explicitly after the normal PrestaShop/theme stylesheet stack.
 * This file is intentionally breakpoint-independent for the home hero so the
 * desktop banner uses the exact same blur/focus treatment as mobile.
 */

/* ========================================================================== 
   HOME BANNER — SAME BLUR + SMOOTH FOCUS TRANSITION ON ALL BREAKPOINTS
   Applies generically to every ps_imageslider slide, including 1→2, 2→3 and
   the wrapped 3→1 transition.
   ========================================================================== */
.image-slider-block .carousel,
.image-slider-block .carousel .carousel-inner {
  overflow: hidden !important;
}

.image-slider-block .carousel .carousel-inner > .carousel-item {
  -webkit-transition: -webkit-transform .75s cubic-bezier(.22,.61,.36,1), opacity .50s ease !important;
  transition: transform .75s cubic-bezier(.22,.61,.36,1), opacity .50s ease !important;
  -webkit-backface-visibility: hidden !important;
  backface-visibility: hidden !important;
  -webkit-perspective: 1000px !important;
  perspective: 1000px !important;
}

.image-slider-block .carousel-item figure {
  overflow: hidden !important;
  -webkit-backface-visibility: hidden !important;
  backface-visibility: hidden !important;
  -webkit-transform: translateZ(0) !important;
  transform: translateZ(0) !important;
}

.image-slider-block .carousel-item figure > img {
  display: block !important;
  -webkit-transition: -webkit-filter .50s ease, opacity .50s ease, -webkit-transform .75s cubic-bezier(.22,.61,.36,1) !important;
  transition: filter .50s ease, opacity .50s ease, transform .75s cubic-bezier(.22,.61,.36,1) !important;
  -webkit-filter: blur(0) !important;
  filter: blur(0) !important;
  opacity: 1 !important;
  -webkit-transform: translateZ(0) scale(1) !important;
  transform: translateZ(0) scale(1) !important;
  -webkit-backface-visibility: hidden !important;
  backface-visibility: hidden !important;
  will-change: filter, opacity, transform;
}

/* Primary transition state used by assets/js/custom.js.  The values here are
   intentionally identical on mobile and desktop. */
.image-slider-block .carousel-item.vh-slide-out figure > img,
.image-slider-block .carousel-item.vh-slide-in figure > img {
  -webkit-filter: blur(5px) !important;
  filter: blur(5px) !important;
  opacity: .82 !important;
  -webkit-transform: translateZ(0) scale(1.012) !important;
  transform: translateZ(0) scale(1.012) !important;
}

.image-slider-block .carousel-item.vh-slide-in.vh-slide-in-focus figure > img {
  -webkit-filter: blur(0) !important;
  filter: blur(0) !important;
  opacity: 1 !important;
  -webkit-transform: translateZ(0) scale(1) !important;
  transform: translateZ(0) scale(1) !important;
}

/* Bootstrap-state fallback.  This keeps the blur visible on desktop even if a
   browser composites the moving carousel item before the custom JS class is
   painted.  It also covers wrapped slide 3→1 without special-case selectors. */
.image-slider-block .carousel-item.next:not(.vh-slide-in) figure > img,
.image-slider-block .carousel-item.prev:not(.vh-slide-in) figure > img {
  -webkit-filter: blur(5px) !important;
  filter: blur(5px) !important;
  opacity: .82 !important;
  -webkit-transform: translateZ(0) scale(1.012) !important;
  transform: translateZ(0) scale(1.012) !important;
}

.image-slider-block .carousel-item.next.left:not(.vh-slide-in) figure > img,
.image-slider-block .carousel-item.prev.right:not(.vh-slide-in) figure > img {
  -webkit-animation: vh-banner-focus-in .75s cubic-bezier(.22,.61,.36,1) both !important;
  animation: vh-banner-focus-in .75s cubic-bezier(.22,.61,.36,1) both !important;
}

.image-slider-block .carousel-item.active.left:not(.vh-slide-out) figure > img,
.image-slider-block .carousel-item.active.right:not(.vh-slide-out) figure > img {
  -webkit-animation: vh-banner-blur-out .75s cubic-bezier(.22,.61,.36,1) both !important;
  animation: vh-banner-blur-out .75s cubic-bezier(.22,.61,.36,1) both !important;
}

@-webkit-keyframes vh-banner-focus-in {
  0% {
    -webkit-filter: blur(5px);
    filter: blur(5px);
    opacity: .82;
    -webkit-transform: translateZ(0) scale(1.012);
    transform: translateZ(0) scale(1.012);
  }
  100% {
    -webkit-filter: blur(0);
    filter: blur(0);
    opacity: 1;
    -webkit-transform: translateZ(0) scale(1);
    transform: translateZ(0) scale(1);
  }
}

@keyframes vh-banner-focus-in {
  0% {
    -webkit-filter: blur(5px);
    filter: blur(5px);
    opacity: .82;
    -webkit-transform: translateZ(0) scale(1.012);
    transform: translateZ(0) scale(1.012);
  }
  100% {
    -webkit-filter: blur(0);
    filter: blur(0);
    opacity: 1;
    -webkit-transform: translateZ(0) scale(1);
    transform: translateZ(0) scale(1);
  }
}

@-webkit-keyframes vh-banner-blur-out {
  0% {
    -webkit-filter: blur(0);
    filter: blur(0);
    opacity: 1;
    -webkit-transform: translateZ(0) scale(1);
    transform: translateZ(0) scale(1);
  }
  100% {
    -webkit-filter: blur(5px);
    filter: blur(5px);
    opacity: .82;
    -webkit-transform: translateZ(0) scale(1.012);
    transform: translateZ(0) scale(1.012);
  }
}

@keyframes vh-banner-blur-out {
  0% {
    -webkit-filter: blur(0);
    filter: blur(0);
    opacity: 1;
    -webkit-transform: translateZ(0) scale(1);
    transform: translateZ(0) scale(1);
  }
  100% {
    -webkit-filter: blur(5px);
    filter: blur(5px);
    opacity: .82;
    -webkit-transform: translateZ(0) scale(1.012);
    transform: translateZ(0) scale(1.012);
  }
}

@media (prefers-reduced-motion: reduce) {
  .image-slider-block .carousel .carousel-inner > .carousel-item,
  .image-slider-block .carousel-item figure > img {
    -webkit-transition-duration: .01ms !important;
    transition-duration: .01ms !important;
    -webkit-animation: none !important;
    animation: none !important;
  }
}

/* ========================================================================== 
   CATEGORY PAGE — TIGHTER CHILD/SUBCATEGORY COVER GRID
   ========================================================================== */
body#category #main > ul.vh-subcategories-grid {
  gap: 10px !important;
  margin-top: 14px !important;
  margin-bottom: 24px !important;
}

@media (max-width: 991.98px) {
  body#category #main > ul.vh-subcategories-grid {
    gap: 9px !important;
    margin-top: 12px !important;
    margin-bottom: 22px !important;
  }
}

@media (max-width: 575.98px) {
  body#category #main > ul.vh-subcategories-grid {
    gap: 8px !important;
    margin-top: 10px !important;
    margin-bottom: 20px !important;
  }
}

/* ========================================================================== 
   DESKTOP CATEGORY DROPDOWN — TIGHTER SUBCATEGORY GROUPING UNDER PARENTS
   ========================================================================== */
@media (min-width: 1200px) {
  #header .top-navigation-menu .top-menu .level0 > .sub-menu {
    padding: 18px 22px 20px !important;
  }

  #header .top-navigation-menu .top-menu .level0 > .sub-menu > .top-menu[data-depth="1"] {
    column-gap: 20px !important;
    row-gap: 12px !important;
  }

  #header .top-navigation-menu .top-menu .level1 > a {
    padding-bottom: 6px !important;
  }

  #header .top-navigation-menu .top-menu[data-depth="2"],
  #header .top-navigation-menu .top-menu[data-depth="3"],
  #header .top-navigation-menu .top-menu[data-depth="4"] {
    gap: 3px !important;
  }

  #header .top-navigation-menu .top-menu .level2 > a,
  #header .top-navigation-menu .top-menu .level3 > a,
  #header .top-navigation-menu .top-menu .level4 > a {
    padding-top: 2px !important;
    padding-bottom: 2px !important;
  }
}


/* ---- veridian-final-refinements-264.css ---- */
/*
 * Veridian Health 2.6.4 — final hero + dropdown refinements
 * Loaded after all previous theme styles.
 * - Stronger synchronized banner blur during the 1.5s carousel movement.
 * - One genuinely rounded, borderless hero viewport on desktop and mobile.
 * - Tighter spacing between subcategories in parent-category dropdowns.
 */

/* ========================================================================== 
   HOME HERO — TRUE ROUNDED VIEWPORT, NO FRAME/BORDER
   ========================================================================== */
.image-slider-block,
.image-slider-block > .carousel,
.image-slider-block > .carousel > .carousel-inner {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* The outer three layers own the rounded mask.  Keeping the moving slides
 * square prevents a second rounded edge from appearing in the middle of the
 * banner while two slides overlap during the horizontal transition. */
.image-slider-block,
.image-slider-block > .carousel,
.image-slider-block > .carousel > .carousel-inner {
  border-radius: 24px !important;
  overflow: hidden !important;
}

.image-slider-block {
  -webkit-clip-path: inset(0 round 24px);
  clip-path: inset(0 round 24px);
  isolation: isolate;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.image-slider-block .carousel-inner > .carousel-item,
.image-slider-block .carousel-item > a,
.image-slider-block .carousel-item figure,
.image-slider-block .carousel-item figure > img {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

/* Do not allow decorative frame pseudo-elements from any module/theme rule. */
.image-slider-block::before,
.image-slider-block::after,
.image-slider-block > .carousel::before,
.image-slider-block > .carousel::after,
.image-slider-block > .carousel > .carousel-inner::before,
.image-slider-block > .carousel > .carousel-inner::after {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* ========================================================================== 
   HOME HERO — STRONGER BLUR DURING EVERY 1→2→3→1 TRANSITION
   ========================================================================== */
/* Preserve the 2.6.3 1.5s movement; only strengthen the visual crossover. */
.image-slider-block .carousel-item.vh-seamless-out figure > img {
  -webkit-filter: blur(14px) !important;
  filter: blur(14px) !important;
  opacity: .78 !important;
  -webkit-transform: translateZ(0) scale(1.05) !important;
  transform: translateZ(0) scale(1.05) !important;
}

.image-slider-block .carousel-item.vh-seamless-in figure > img {
  -webkit-filter: blur(16px) !important;
  filter: blur(16px) !important;
  opacity: .76 !important;
  -webkit-transform: translateZ(0) scale(1.055) !important;
  transform: translateZ(0) scale(1.055) !important;
}

.image-slider-block .carousel-item.vh-seamless-in.vh-seamless-focus figure > img {
  -webkit-filter: blur(0) !important;
  filter: blur(0) !important;
  opacity: 1 !important;
  -webkit-transform: translateZ(0) scale(1.001) !important;
  transform: translateZ(0) scale(1.001) !important;
}

/* Bootstrap-state fallback gets the same strong crossover so desktop never
 * briefly drops back to the older 8px treatment before the JS classes paint. */
.image-slider-block .carousel-item.next:not(.vh-seamless-focus) figure > img,
.image-slider-block .carousel-item.prev:not(.vh-seamless-focus) figure > img,
.image-slider-block .carousel-item.active.left:not(.vh-seamless-out) figure > img,
.image-slider-block .carousel-item.active.right:not(.vh-seamless-out) figure > img {
  -webkit-filter: blur(15px) !important;
  filter: blur(15px) !important;
  opacity: .77 !important;
  -webkit-transform: translateZ(0) scale(1.052) !important;
  transform: translateZ(0) scale(1.052) !important;
}

/* ========================================================================== 
   DESKTOP PARENT-CATEGORY DROPDOWN — TIGHTER SUBCATEGORY SPACING
   ========================================================================== */
@media (min-width: 768px) {
  #header .top-navigation-menu .top-menu .level0 > .sub-menu.classic-menu,
  #header .top-navigation-menu .top-menu .level0 > .sub-menu {
    padding: 12px 14px 14px !important;
  }

  #header .top-navigation-menu .top-menu .level0 > .sub-menu > .top-menu[data-depth="1"] {
    column-gap: 14px !important;
    row-gap: 6px !important;
  }

  #header .top-navigation-menu .top-menu .level0 > .sub-menu > .top-menu[data-depth="1"] > li.level1,
  #header .top-navigation-menu .top-menu .sub-menu.classic-menu > .top-menu > li.level1 {
    margin: 0 !important;
    padding: 0 6px !important;
  }

  #header .top-navigation-menu .top-menu .level1 > a {
    margin: 0 !important;
    padding: 4px 2px !important;
    line-height: 1.25 !important;
  }

  #header .top-navigation-menu .top-menu .level1 > .collapse {
    margin: 0 !important;
    padding: 0 !important;
  }

  #header .top-navigation-menu .top-menu[data-depth="2"],
  #header .top-navigation-menu .top-menu[data-depth="3"],
  #header .top-navigation-menu .top-menu[data-depth="4"] {
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  #header .top-navigation-menu .top-menu .level2,
  #header .top-navigation-menu .top-menu .level3,
  #header .top-navigation-menu .top-menu .level4 {
    margin: 0 !important;
    padding: 0 !important;
  }

  #header .top-navigation-menu .top-menu .level2 > a,
  #header .top-navigation-menu .top-menu .level3 > a,
  #header .top-navigation-menu .top-menu .level4 > a {
    margin: 0 !important;
    padding: 1px 2px !important;
    line-height: 1.3 !important;
  }
}

/* On the wide desktop grid, remove the older 20px/12px grouping once more at
 * the exact breakpoint where that rule was introduced. */
@media (min-width: 1200px) {
  #header .top-navigation-menu .top-menu .level0 > .sub-menu > .top-menu[data-depth="1"] {
    column-gap: 14px !important;
    row-gap: 6px !important;
  }
}

@media (max-width: 575.98px) {
  .image-slider-block,
  .image-slider-block > .carousel,
  .image-slider-block > .carousel > .carousel-inner {
    border-radius: 20px !important;
  }

  .image-slider-block {
    -webkit-clip-path: inset(0 round 20px);
    clip-path: inset(0 round 20px);
  }
}


/* ---- veridian-unified-ui-2611.css ---- */
/*
 * Veridian Health 2.6.11 — unified banner blur + compact desktop category menu.
 *
 * This is the final-loaded UI layer. It intentionally replaces the accumulated
 * 2.6.3–2.6.9 banner effects with one implementation that behaves identically
 * on desktop and mobile.
 *
 * Banner transition:
 *   - 250ms horizontal movement on every viewport size
 *   - outgoing/current banner: sharp -> graduated blur
 *   - incoming/following banner: graduated blur -> sharp
 *   - centre blur: 4px (approx. 10% strength)
 *   - left/right edge blur: 40px (100% strength)
 *
 * The blur is rendered with duplicate image layers and CSS filter(), not
 * backdrop-filter, so it does not depend on browser backdrop compositing.
 */

/* ========================================================================== 
   HOME HERO — ONE TRANSITION ENGINE FOR DESKTOP + MOBILE
   ========================================================================== */
.image-slider-block > .carousel {
  --vh-banner-duration: 250ms;
  --vh-banner-centre-blur: 4px;
  --vh-banner-edge-blur: 40px;
}

/* Bootstrap's moving items use exactly the same timing on every breakpoint. */
.image-slider-block > .carousel > .carousel-inner > .carousel-item {
  -webkit-transition-property: -webkit-transform !important;
  transition-property: transform !important;
  -webkit-transition-duration: var(--vh-banner-duration) !important;
  transition-duration: var(--vh-banner-duration) !important;
  -webkit-transition-timing-function: cubic-bezier(.33, 0, .2, 1) !important;
  transition-timing-function: cubic-bezier(.33, 0, .2, 1) !important;
  -webkit-backface-visibility: hidden !important;
  backface-visibility: hidden !important;
  will-change: transform !important;
}

/* Keep the original banner sharp. All spatial blur is rendered by the cloned
 * image layers below. This neutralises old 2.6.3/2.6.4 image-state filters. */
.image-slider-block .carousel-item figure > img:not(.vh-unified-blur-image),
.image-slider-block .carousel-item.next figure > img:not(.vh-unified-blur-image),
.image-slider-block .carousel-item.prev figure > img:not(.vh-unified-blur-image),
.image-slider-block .carousel-item.active.left figure > img:not(.vh-unified-blur-image),
.image-slider-block .carousel-item.active.right figure > img:not(.vh-unified-blur-image),
.image-slider-block .carousel-item.vh-seamless-out figure > img:not(.vh-unified-blur-image),
.image-slider-block .carousel-item.vh-seamless-in figure > img:not(.vh-unified-blur-image),
.image-slider-block .carousel-item.vh-seamless-in.vh-seamless-focus figure > img:not(.vh-unified-blur-image),
.image-slider-block .carousel-item.vh-slide-out figure > img:not(.vh-unified-blur-image),
.image-slider-block .carousel-item.vh-slide-in figure > img:not(.vh-unified-blur-image),
.image-slider-block .carousel-item.vh-slide-in-focus figure > img:not(.vh-unified-blur-image) {
  -webkit-filter: none !important;
  filter: none !important;
  opacity: 1 !important;
  -webkit-transform: translateZ(0) scale(1.001) !important;
  transform: translateZ(0) scale(1.001) !important;
  -webkit-transition: none !important;
  transition: none !important;
  -webkit-animation: none !important;
  animation: none !important;
}

/* Disable all older viewport/backdrop blur panes if cached markup still contains
 * them. The new effect is image-based and does not use backdrop-filter. */
.image-slider-block .vh-slide-blur-layer,
.image-slider-block > .carousel > .vh-banner-spatial-layer {
  display: none !important;
  opacity: 0 !important;
  -webkit-animation: none !important;
  animation: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

.image-slider-block .carousel-item figure {
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate;
}

/* Original image establishes the figure's dimensions. */
.image-slider-block .carousel-item figure > img:not(.vh-unified-blur-image) {
  position: relative;
  z-index: 1;
}

/* Three pre-created image copies form the spatial blur profile. Their filter is
 * static; only opacity animates, which is smoother and more reliable on phones. */
.image-slider-block .vh-unified-blur-image {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  pointer-events: none !important;
  opacity: 0;
  -webkit-transition: none !important;
  transition: none !important;
  -webkit-animation: none;
  animation: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  -webkit-transform: translateZ(0) scale(1.11) !important;
  transform: translateZ(0) scale(1.11) !important;
  -webkit-transform-origin: center center;
  transform-origin: center center;
  will-change: opacity;
  user-select: none;
}

/* 10% blur across the middle/base of the whole banner. */
.image-slider-block .vh-unified-blur-image.vh-unified-blur-base {
  z-index: 5;
  -webkit-filter: blur(var(--vh-banner-centre-blur)) !important;
  filter: blur(var(--vh-banner-centre-blur)) !important;
}

/* Edge copies use the full blur and fade smoothly toward transparent at centre.
 * Both standard and WebKit mask syntaxes are included for desktop + mobile. */
.image-slider-block .vh-unified-blur-image.vh-unified-blur-left,
.image-slider-block .vh-unified-blur-image.vh-unified-blur-right {
  z-index: 6;
  -webkit-filter: blur(var(--vh-banner-edge-blur)) !important;
  filter: blur(var(--vh-banner-edge-blur)) !important;
}

.image-slider-block .vh-unified-blur-image.vh-unified-blur-left {
  -webkit-mask-image: linear-gradient(
    to right,
    #000 0%,
    rgba(0,0,0,.96) 8%,
    rgba(0,0,0,.84) 18%,
    rgba(0,0,0,.62) 30%,
    rgba(0,0,0,.36) 40%,
    rgba(0,0,0,.14) 47%,
    transparent 54%,
    transparent 100%
  );
  mask-image: linear-gradient(
    to right,
    #000 0%,
    rgba(0,0,0,.96) 8%,
    rgba(0,0,0,.84) 18%,
    rgba(0,0,0,.62) 30%,
    rgba(0,0,0,.36) 40%,
    rgba(0,0,0,.14) 47%,
    transparent 54%,
    transparent 100%
  );
}

.image-slider-block .vh-unified-blur-image.vh-unified-blur-right {
  -webkit-mask-image: linear-gradient(
    to left,
    #000 0%,
    rgba(0,0,0,.96) 8%,
    rgba(0,0,0,.84) 18%,
    rgba(0,0,0,.62) 30%,
    rgba(0,0,0,.36) 40%,
    rgba(0,0,0,.14) 47%,
    transparent 54%,
    transparent 100%
  );
  mask-image: linear-gradient(
    to left,
    #000 0%,
    rgba(0,0,0,.96) 8%,
    rgba(0,0,0,.84) 18%,
    rgba(0,0,0,.62) 30%,
    rgba(0,0,0,.36) 40%,
    rgba(0,0,0,.14) 47%,
    transparent 54%,
    transparent 100%
  );
}

/* Current banner: blur grows as it leaves. */
.image-slider-block .carousel-item.vh-unified-blur-outgoing .vh-unified-blur-image {
  -webkit-animation: vh-unified-blur-up-2611 var(--vh-banner-duration) cubic-bezier(.33, 0, .2, 1) both !important;
  animation: vh-unified-blur-up-2611 var(--vh-banner-duration) cubic-bezier(.33, 0, .2, 1) both !important;
}

/* Following banner: starts blurred and becomes sharp while it enters. */
.image-slider-block .carousel-item.vh-unified-blur-incoming .vh-unified-blur-image {
  -webkit-animation: vh-unified-blur-down-2611 var(--vh-banner-duration) cubic-bezier(.33, 0, .2, 1) both !important;
  animation: vh-unified-blur-down-2611 var(--vh-banner-duration) cubic-bezier(.33, 0, .2, 1) both !important;
}

@-webkit-keyframes vh-unified-blur-up-2611 {
  0%   { opacity: 0; }
  20%  { opacity: .14; }
  44%  { opacity: .43; }
  68%  { opacity: .73; }
  86%  { opacity: .91; }
  100% { opacity: 1; }
}

@keyframes vh-unified-blur-up-2611 {
  0%   { opacity: 0; }
  20%  { opacity: .14; }
  44%  { opacity: .43; }
  68%  { opacity: .73; }
  86%  { opacity: .91; }
  100% { opacity: 1; }
}

@-webkit-keyframes vh-unified-blur-down-2611 {
  0%   { opacity: 1; }
  14%  { opacity: .91; }
  30%  { opacity: .70; }
  50%  { opacity: .40; }
  68%  { opacity: .16; }
  82%  { opacity: 0; }
  100% { opacity: 0; }
}

@keyframes vh-unified-blur-down-2611 {
  0%   { opacity: 1; }
  14%  { opacity: .91; }
  30%  { opacity: .70; }
  50%  { opacity: .40; }
  68%  { opacity: .16; }
  82%  { opacity: 0; }
  100% { opacity: 0; }
}

/* HARD RESTING STATE: outside an active transition every cloned blur layer is
 * guaranteed invisible. This is a second line of defence if an event is missed. */
.image-slider-block .carousel-item:not(.vh-unified-blur-outgoing):not(.vh-unified-blur-incoming) .vh-unified-blur-image {
  opacity: 0;
  -webkit-animation: none !important;
  animation: none !important;
}

.image-slider-block .carousel-item.active:not(.vh-unified-blur-outgoing):not(.vh-unified-blur-incoming) figure > img:not(.vh-unified-blur-image) {
  -webkit-filter: none !important;
  filter: none !important;
  opacity: 1 !important;
}

/* Caption and controls must remain readable above the image blur copies. */
.image-slider-block .carousel-item figcaption,
.image-slider-block .carousel-item .caption,
.image-slider-block .carousel-indicators,
.image-slider-block .carousel-control-prev,
.image-slider-block .carousel-control-next,
.image-slider-block .carousel-control,
.image-slider-block .direction {
  position: relative;
  z-index: 20 !important;
}

/* Explicit all-device parity: old desktop/mobile rules and reduced-motion rules
 * cannot shorten or disable the requested owner-controlled transition. */
@media (max-width: 767.98px), (min-width: 768px) {
  .image-slider-block > .carousel > .carousel-inner > .carousel-item {
    -webkit-transition-duration: 250ms !important;
    transition-duration: 250ms !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .image-slider-block > .carousel > .carousel-inner > .carousel-item {
    -webkit-transition: -webkit-transform 250ms cubic-bezier(.33, 0, .2, 1) !important;
    transition: transform 250ms cubic-bezier(.33, 0, .2, 1) !important;
  }

  .image-slider-block .carousel-item.vh-unified-blur-outgoing .vh-unified-blur-image {
    -webkit-animation: vh-unified-blur-up-2611 250ms cubic-bezier(.33, 0, .2, 1) both !important;
    animation: vh-unified-blur-up-2611 250ms cubic-bezier(.33, 0, .2, 1) both !important;
  }

  .image-slider-block .carousel-item.vh-unified-blur-incoming .vh-unified-blur-image {
    -webkit-animation: vh-unified-blur-down-2611 250ms cubic-bezier(.33, 0, .2, 1) both !important;
    animation: vh-unified-blur-down-2611 250ms cubic-bezier(.33, 0, .2, 1) both !important;
  }
}

/* ========================================================================== 
   DESKTOP HEADER — MORE COMPACT SUBCATEGORIES UNDER PARENT CATEGORIES
   ========================================================================== */
@media (min-width: 768px) {
  /* Compact the dropdown panel itself. */
  #header #_desktop_top_menu .top-menu .level0 > .sub-menu.classic-menu,
  #header #_desktop_top_menu .top-menu .level0 > .sub-menu {
    padding: 7px 9px 8px !important;
  }

  /* Parent-category groups sit much closer together horizontally and vertically. */
  #header #_desktop_top_menu .level0 > .sub-menu > .top-menu[data-depth="1"] {
    margin: 0 !important;
    padding: 0 !important;
    column-gap: 6px !important;
    row-gap: 2px !important;
    align-items: flex-start !important;
    align-content: flex-start !important;
  }

  #header #_desktop_top_menu .level0 > .sub-menu > .top-menu[data-depth="1"] > li.level1,
  #header #_desktop_top_menu .sub-menu.classic-menu > .top-menu > li.level1 {
    margin: 0 4px 0 0 !important;
    padding: 0 2px !important;
  }

  /* First-level subcategory names. */
  #header #_desktop_top_menu .top-menu .level1 > a {
    margin: 0 !important;
    padding: 2px 1px 3px !important;
    line-height: 1.14 !important;
  }

  #header #_desktop_top_menu .top-menu .level1 > .collapse {
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Deeper children beneath each first-level subcategory. */
  #header #_desktop_top_menu .top-menu[data-depth="2"],
  #header #_desktop_top_menu .top-menu[data-depth="3"],
  #header #_desktop_top_menu .top-menu[data-depth="4"] {
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
  }

  #header #_desktop_top_menu .top-menu .level2,
  #header #_desktop_top_menu .top-menu .level3,
  #header #_desktop_top_menu .top-menu .level4 {
    margin: 0 !important;
    padding: 0 !important;
  }

  #header #_desktop_top_menu .top-menu .level2 > a,
  #header #_desktop_top_menu .top-menu .level3 > a,
  #header #_desktop_top_menu .top-menu .level4 > a {
    margin: 0 !important;
    padding: 0 1px 1px !important;
    line-height: 1.16 !important;
  }
}


/* ---- veridian-desktop-leaf-arrows-2615.css ---- */
/* ================================================================
   Veridian Health 2.6.15 — refined desktop product carousel leaves
   Desktop only. Replaces the brighter photographic leaf controls with
   a restrained Veridian forest/olive treatment that matches the site UI.
   ================================================================ */
@media (min-width: 768px) {
  .product-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-prev,
  .product-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-next,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-prev,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-next {
    width: 64px !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
    opacity: .88 !important;
    cursor: pointer !important;
    transition: opacity .18s ease, transform .18s ease !important;
  }

  .product-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-prev,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-prev {
    left: -18px !important;
  }

  .product-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-next,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-next {
    right: -18px !important;
  }

  .product-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-prev:hover,
  .product-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-next:hover,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-prev:hover,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-next:hover {
    opacity: 1 !important;
  }

  .product-slider.owl-theme .owl-controls.clickable .owl-buttons .prev-arrow,
  .product-slider.owl-theme .owl-controls.clickable .owl-buttons .next-arrow,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons .prev-arrow,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons .next-arrow {
    display: block !important;
    width: 64px !important;
    height: 48px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background-color: transparent !important;
    background-image: url('../img/veridian-leaf-arrow-themed.png') !important;
    background-image: image-set(url('../img/veridian-leaf-arrow-themed.webp') type('image/webp'), url('../img/veridian-leaf-arrow-themed.png') type('image/png')) !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 58px auto !important;
    transform-origin: center center !important;
    transition: transform .18s ease, opacity .18s ease !important;
  }

  /* Each leaf cluster points in the direction of travel. */
  .product-slider.owl-theme .owl-controls.clickable .owl-buttons .prev-arrow,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons .prev-arrow {
    transform: scaleX(-1) scale(.96) !important;
  }

  .product-slider.owl-theme .owl-controls.clickable .owl-buttons .next-arrow,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons .next-arrow {
    transform: scale(.96) !important;
  }

  .product-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-prev:hover .prev-arrow,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-prev:hover .prev-arrow {
    transform: scaleX(-1) scale(1.03) !important;
  }

  .product-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-next:hover .next-arrow,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons > .owl-next:hover .next-arrow {
    transform: scale(1.03) !important;
  }

  /* Keep the previous Font Awesome chevrons completely hidden. */
  .product-slider.owl-theme .owl-controls.clickable .owl-buttons .prev-arrow i,
  .product-slider.owl-theme .owl-controls.clickable .owl-buttons .next-arrow i,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons .prev-arrow i,
  .catproduct-slider.owl-theme .owl-controls.clickable .owl-buttons .next-arrow i {
    display: none !important;
  }
}


/* ---- veridian-desktop-submenu-2613.css ---- */
/* ========================================================================== 
   Veridian Health 2.6.13 — compact desktop header subcategory dropdowns
   Desktop only. Mobile navigation is intentionally untouched.

   Goal:
   - Keep first-level subcategories close together instead of distributing
     them across equal-width columns.
   - Apply automatically to every parent category and future subcategories.
   - Preserve wrapping when many subcategories are added later.
   ========================================================================== */

@media (min-width: 768px) {
  /* The reusable first-level submenu row becomes a left-packed flex row.
     This overrides the theme's older 2/3/4-column percentage widths. */
  #header .header-navfullwidth .navbar-block .top-menu .level0 > .sub-menu > .top-menu[data-depth="1"],
  #header .header-navfullwidth .navbar-block .top-menu .level0 > .sub-menu.classic-menu > .top-menu,
  #header .top-navigation-menu .top-menu .level0 > .sub-menu > .top-menu[data-depth="1"],
  #header .top-navigation-menu .top-menu .level0 > .sub-menu.classic-menu > .top-menu,
  #header #_desktop_top_menu .top-menu .level0 > .sub-menu > .top-menu[data-depth="1"] {
    display: flex !important;
    flex-flow: row wrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    align-content: flex-start !important;
    gap: 2px 16px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Every direct subcategory sizes to its label rather than 20/25/33/50%. */
  #header .header-navfullwidth .navbar-block .top-menu .level0 > .sub-menu > .top-menu > li.level1,
  #header .header-navfullwidth .navbar-block .top-menu .sub-menu.classic-menu > .top-menu > li.level1,
  #header .top-navigation-menu .top-menu .level0 > .sub-menu > .top-menu > li.level1,
  #header .top-navigation-menu .top-menu .sub-menu.classic-menu > .top-menu > li.level1,
  #header #_desktop_top_menu .level0 > .sub-menu > .top-menu > li.level1,
  #header #_desktop_top_menu .sub-menu.classic-menu > .top-menu > li.level1,
  #header .navbar-block .top-menu .menu-width-2 .sub-menu.classic-menu > .top-menu > li.level1,
  #header .navbar-block .top-menu .menu-width-3 .sub-menu.classic-menu > .top-menu > li.level1,
  #header .navbar-block .top-menu .menu-width-4 .sub-menu.classic-menu > .top-menu > li.level1 {
    float: none !important;
    display: block !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Compact the clickable label itself. */
  #header .header-navfullwidth .navbar-block .top-menu .level1 > a,
  #header .top-navigation-menu .top-menu .level1 > a,
  #header #_desktop_top_menu .top-menu .level1 > a {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 4px 6px !important;
    line-height: 1.12 !important;
    white-space: nowrap !important;
  }

  /* Reduce excess padding around the visible dropdown strip. */
  #header .header-navfullwidth .navbar-block .top-menu .level0 > .sub-menu.classic-menu,
  #header .header-navfullwidth .navbar-block .top-menu .level0 > .sub-menu,
  #header .top-navigation-menu .top-menu .level0 > .sub-menu.classic-menu,
  #header .top-navigation-menu .top-menu .level0 > .sub-menu,
  #header #_desktop_top_menu .top-menu .level0 > .sub-menu.classic-menu,
  #header #_desktop_top_menu .top-menu .level0 > .sub-menu {
    padding-top: 4px !important;
    padding-bottom: 4px !important;
  }

  /* If a first-level subcategory has its own children, keep those compact too. */
  #header .header-navfullwidth .navbar-block .top-menu .level1 > .collapse,
  #header .top-navigation-menu .top-menu .level1 > .collapse,
  #header #_desktop_top_menu .top-menu .level1 > .collapse {
    margin: 0 !important;
    padding: 0 !important;
  }

  #header .header-navfullwidth .navbar-block .top-menu[data-depth="2"],
  #header .header-navfullwidth .navbar-block .top-menu[data-depth="3"],
  #header .header-navfullwidth .navbar-block .top-menu[data-depth="4"],
  #header .top-navigation-menu .top-menu[data-depth="2"],
  #header .top-navigation-menu .top-menu[data-depth="3"],
  #header .top-navigation-menu .top-menu[data-depth="4"] {
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}


/* ---- veridian-mobile-info-2616.css ---- */
/* Veridian Health 2.6.16
   Email-only store information, single-row mobile product tabs, and corrected
   mobile typography for legal/information pages. */

/* Store information: the template outputs only the email contact. */
.vh-email-only-store-info .vh-store-email-block {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0;
  padding: 0;
  border: 0;
}

.vh-email-only-store-info .vh-store-email-block .icon {
  flex: 0 0 auto;
  margin: 0;
}

.vh-email-only-store-info .vh-store-email-block .data {
  min-width: 0;
  margin: 0;
  padding: 0;
  text-align: left;
  word-spacing: normal;
}

.vh-email-only-store-info .vh-store-email-block .data a {
  display: inline-block;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}

@media (max-width: 767.98px) {
  /* Product page: keep Description, Product Details and Attachments on one row. */
  body#product .tabs .nav-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  body#product .tabs .nav-tabs .nav-item {
    display: flex !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
  }

  body#product .tabs .nav-tabs .nav-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 9px 3px !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    line-height: 1.15 !important;
    letter-spacing: 0 !important;
    text-align: center !important;
    text-transform: none !important;
    white-space: nowrap !important;
  }

  body#product .tabs .tab-content {
    padding-top: 18px !important;
  }

  /* Classic's CMS rule uses text-align:justify. On a narrow phone this creates
     the large gaps visible in Legal Notice and other information pages. These
     overrides also beat inline justify styles inserted by the CMS editor. */
  body#cms .page-content.page-cms,
  body#cms .page-content.page-cms p,
  body#cms .page-content.page-cms div,
  body#cms .page-content.page-cms span,
  body#cms .page-content.page-cms li,
  body#cms .page-content.page-cms td,
  body#cms .page-content.page-cms th,
  body#cms .page-content.page-cms address,
  body#cms .page-content.page-cms blockquote {
    text-align: left !important;
    text-justify: auto !important;
    word-spacing: normal !important;
    letter-spacing: normal !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  body#cms .page-content.page-cms h1,
  body#cms .page-content.page-cms h2,
  body#cms .page-content.page-cms h3,
  body#cms .page-content.page-cms h4,
  body#cms .page-content.page-cms h5,
  body#cms .page-content.page-cms h6 {
    text-align: center !important;
    text-justify: auto !important;
    word-spacing: normal !important;
    letter-spacing: normal !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }

  body#cms .page-content.page-cms p,
  body#cms .page-content.page-cms li {
    line-height: 1.65 !important;
  }

  body#cms .page-content.page-cms p {
    margin-bottom: 1rem !important;
  }

  body#cms .page-content.page-cms ul,
  body#cms .page-content.page-cms ol {
    padding-left: 1.25rem !important;
    text-align: left !important;
    word-spacing: normal !important;
  }

  /* Contact Us uses a separate controller rather than the CMS controller. */
  body#contact .contact-rich,
  body#contact .contact-rich *,
  body#contact .contact-form,
  body#contact .contact-form * {
    word-spacing: normal !important;
    letter-spacing: normal !important;
    text-justify: auto !important;
  }

  body#contact .contact-rich .block,
  body#contact .contact-rich .data,
  body#contact .contact-form p,
  body#contact .contact-form label {
    text-align: left !important;
  }
}

@media (max-width: 359.98px) {
  body#product .tabs .nav-tabs .nav-link {
    padding-left: 2px !important;
    padding-right: 2px !important;
    font-size: 9.5px !important;
    letter-spacing: -0.01em !important;
  }
}


/* ---- veridian-desktop-legibility-2617.css ---- */
@media screen and (min-width: 768px) {
/* Veridian Health 2.6.17
   Desktop-only typography refinement.
   Mobile is intentionally untouched: every visual rule is scoped to >= 768px. */

@media screen and (min-width: 768px) {
  /* Use the operating system's native UI typeface on desktop. On Windows this
     resolves to Segoe UI; on macOS it resolves to the Apple system font. These
     faces are tuned for crisp screen rendering and remain highly legible at
     smaller interface sizes. */
  body,
  body * {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
      "Helvetica Neue", Arial, sans-serif;
  }

  /* The base theme declares Jost directly on controls, so override those
     declarations without interfering with icon-font children. */
  body .btn,
  body button,
  body input,
  body select,
  body textarea,
  body .form-control {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
      "Helvetica Neue", Arial, sans-serif !important;
  }

  /* Restore native desktop rasterisation rather than the theme's forced thin
     antialiasing. This gives body copy and navigation a firmer, clearer edge. */
  body {
    -webkit-font-smoothing: auto;
    -moz-osx-font-smoothing: auto;
    text-rendering: optimizeLegibility;
    font-kerning: normal;
  }

  /* Give the most frequently scanned desktop labels a little more definition
     while keeping the existing sizes, spacing and layout unchanged. */
  #header a,
  #header button,
  #header .top-menu a,
  .product-miniature .product-title a,
  .product-information .tabs .nav-link,
  .footer-container a,
  .breadcrumb a,
  .block-categories a {
    font-weight: 500;
  }

  h1,
  h2,
  h3,
  h4,
  h5,
  h6,
  .h1,
  .h2,
  .h3,
  .h4,
  .h5,
  .h6 {
    font-weight: 600;
    letter-spacing: -0.01em;
  }

  /* Explicitly protect the icon fonts from the desktop text-family override. */
  body .fa,
  body [class^="fa-"],
  body [class*=" fa-"] {
    font-family: FontAwesome !important;
  }

  body .material-icons {
    font-family: "Material Icons" !important;
  }
}

}

/* ---- veridian-commerce-parity-2623.css ---- */
/*
 * 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;
  }
}


/* ---- veridian-featured-equal-cards-2624.css ---- */
/* ========================================================================== 
   Veridian Health 2.6.24 — Featured Collection equal-size product cards
   Scope: homepage Featured Collection Owl carousel only.

   Goals:
   - Every visible product card has the same height on desktop and mobile.
   - Every product image uses the same square media frame.
   - Product artwork remains proportional and fully visible (no stretching/crop).
   - Existing Owl swipe/navigation behaviour remains unchanged.
   ========================================================================== */

/* Owl 1.x normally floats each item, which allows different content heights.
   A flex wrapper keeps the carousel geometry intact while stretching all items
   to the height of the tallest card in the current product set. */
.featured-products .product-slider.owl-carousel .owl-wrapper {
  display: flex !important;
  align-items: stretch !important;
}

.featured-products .product-slider.owl-carousel .owl-wrapper::after {
  display: none !important;
  content: none !important;
}

.featured-products .product-slider.owl-carousel .owl-item {
  display: flex !important;
  float: none !important;
  height: auto !important;
  align-self: stretch !important;
}

.featured-products .product-slider.owl-carousel .owl-item > .product-item,
.featured-products .product-slider.owl-carousel .product-item > .product-miniature,
.featured-products .product-slider.owl-carousel .product-miniature > .thumbnail-container {
  display: flex !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
}

.featured-products .product-slider.owl-carousel .owl-item > .product-item,
.featured-products .product-slider.owl-carousel .product-item > .product-miniature {
  flex-direction: column !important;
}

.featured-products .product-slider.owl-carousel .product-miniature > .thumbnail-container {
  flex-direction: column !important;
}

/* Fixed-ratio image stage: source images may have different dimensions, but
   their displayed media box is identical at every responsive card width. */
.featured-products .product-slider.owl-carousel .product-miniature .thumbnail-top {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  flex: 0 0 auto !important;
}

.featured-products .product-slider.owl-carousel .product-miniature .thumbnail-container .thumbnail-top > a.thumbnail.product-thumbnail,
.featured-products .product-slider.owl-carousel .product-miniature .thumbnail-container .thumbnail-top > .product-thumbnail {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  aspect-ratio: auto !important;
  overflow: hidden !important;
  background: #fff !important;
}

.featured-products .product-slider.owl-carousel .product-miniature .thumbnail-container .thumbnail-top > .product-thumbnail picture {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

.featured-products .product-slider.owl-carousel .product-miniature .thumbnail-container .thumbnail-top > .product-thumbnail img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: clamp(8px, 2.2vw, 14px) !important;
  object-fit: contain !important;
  object-position: center center !important;
  transform: none !important;
}

/* Let the details section consume the remaining equalized card height. */
.featured-products .product-slider.owl-carousel .product-miniature .product-description {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin-top: 0 !important;
}

/* Reserve the same title lane even when one product name is shorter. */
.featured-products .product-slider.owl-carousel .product-miniature .product-title {
  min-height: 2.8em !important;
}

/* Keep the purchase action aligned at the bottom of every equal-height card. */
.featured-products .product-slider.owl-carousel .product-miniature .vh-product-card-actions {
  margin-top: auto !important;
}

@media (max-width: 767.98px) {
  .featured-products .product-slider.owl-carousel .product-miniature .thumbnail-container .thumbnail-top > .product-thumbnail img {
    padding: 8px !important;
  }
}


/* ---- veridian-full-product-titles-2625.css ---- */
/* ========================================================================== 
   Veridian Health 2.6.25 — Full product names on product cards
   Scope: all product miniatures (category/search/home/accessories), desktop/mobile.

   The product-card template now outputs the complete product name. These final
   overrides remove older two-line clamping/overflow rules so no visible product
   title is replaced by an ellipsis. Card descriptions remain flexible, allowing
   longer names to increase card height naturally while purchase actions stay at
   the bottom of each card.
   ========================================================================== */

.product-miniature .product-title {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

.product-miniature .product-title a,
#products .product-title a,
.featured-products .product-title a,
.product-accessories .product-title a {
  display: block !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  overflow-wrap: anywhere;
  word-break: normal;
}

/* Keep the action area anchored after titles of different lengths. */
.product-miniature .product-description {
  min-height: 0 !important;
}

.product-miniature .vh-product-card-actions {
  margin-top: auto !important;
}


/* ---- veridian-full-product-titles-2626.css ---- */
/* ========================================================================== 
   Veridian Health 2.6.26 — Complete product names on MOBILE + DESKTOP
   Scope: all product-card/miniature titles (category, search, home featured,
   new products and accessories).

   This file is intentionally loaded LAST. It explicitly removes title clamps,
   fixed heights and ellipsis behaviour at both responsive breakpoints.
   ========================================================================== */

/* Shared safety rules for every viewport. */
.product-miniature .product-title,
#products .product-miniature .product-title,
.featured-products .product-miniature .product-title,
.new-products .product-miniature .product-title,
.product-accessories .product-miniature .product-title {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  text-overflow: clip !important;
}

.product-miniature .product-title a,
#products .product-miniature .product-title a,
.featured-products .product-miniature .product-title a,
.new-products .product-miniature .product-title a,
.product-accessories .product-miniature .product-title a {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip !important;
  -webkit-box-orient: initial !important;
  -webkit-line-clamp: unset !important;
  line-clamp: unset !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}

/* DESKTOP + TABLET: prevent desktop/grid rules from restoring a 2-line clamp. */
@media screen and (min-width: 768px) {
  .product-miniature .product-title,
  #products .product-miniature .product-title,
  .featured-products .product-miniature .product-title,
  .new-products .product-miniature .product-title,
  .product-accessories .product-miniature .product-title,
  .product-miniature .product-title a,
  #products .product-miniature .product-title a,
  .featured-products .product-miniature .product-title a,
  .new-products .product-miniature .product-title a,
  .product-accessories .product-miniature .product-title a {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset !important;
    line-clamp: unset !important;
  }
}

/* MOBILE: override the compact-card rules that previously shortened names. */
@media screen and (max-width: 767.98px) {
  .product-miniature .product-title,
  #products .product-miniature .product-title,
  .featured-products .product-miniature .product-title,
  .new-products .product-miniature .product-title,
  .product-accessories .product-miniature .product-title,
  .product-miniature .product-title a,
  #products .product-miniature .product-title a,
  .featured-products .product-miniature .product-title a,
  .new-products .product-miniature .product-title a,
  .product-accessories .product-miniature .product-title a {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    white-space: normal !important;
    text-overflow: clip !important;
    -webkit-line-clamp: unset !important;
    line-clamp: unset !important;
  }

  /* Let the details area grow with long names instead of clipping the card. */
  .product-miniature .product-description,
  #products .product-miniature .product-description,
  .featured-products .product-miniature .product-description,
  .new-products .product-miniature .product-description,
  .product-accessories .product-miniature .product-description {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

/* Preserve equal-height Featured Collection cards while allowing every title
   to occupy as many lines as its full name requires. */
.featured-products .product-slider.owl-carousel .product-miniature .product-description {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
}

.featured-products .product-slider.owl-carousel .product-miniature .vh-product-card-actions {
  margin-top: auto !important;
}


/* ---- veridian-mobile-text-cleanup-2627.css ---- */
/* Veridian Health 2.6.27
   Mobile rich-text cleanup.
   Prevents CMS/category/product copy from showing exaggerated spacing,
   artificial line breaks from inline formatting, and detached punctuation.
   Desktop/tablet styling is intentionally unchanged. */

@media (max-width: 767.98px) {
  /* Rich-text containers used by category, CMS, product, manufacturer and
     supplier content. Force normal mobile text flow even when content pasted
     from an editor contains inline justify/spacing styles. */
  body#category #category-description,
  body#category .category-additional-description,
  body#category .category-description,
  body#cms .page-content.page-cms,
  body#product #product-description-short,
  body#product .product-description,
  body#product .tabs .tab-content,
  body#manufacturer #manufacturer-short_description,
  body#manufacturer #manufacturer-description,
  body#supplier #supplier-description {
    text-align: left !important;
    text-justify: auto !important;
    word-spacing: normal !important;
    letter-spacing: normal !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  body#category #category-description p,
  body#category #category-description div,
  body#category #category-description li,
  body#category .category-additional-description p,
  body#category .category-additional-description div,
  body#category .category-additional-description li,
  body#category .category-description p,
  body#cms .page-content.page-cms p,
  body#cms .page-content.page-cms div,
  body#cms .page-content.page-cms li,
  body#product #product-description-short p,
  body#product #product-description-short div,
  body#product .product-description p,
  body#product .product-description div,
  body#product .tabs .tab-content p,
  body#product .tabs .tab-content div,
  body#product .tabs .tab-content li,
  body#manufacturer #manufacturer-short_description p,
  body#manufacturer #manufacturer-description p,
  body#supplier #supplier-description p {
    text-align: left !important;
    text-justify: auto !important;
    word-spacing: normal !important;
    letter-spacing: normal !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  /* Formatting tags inside prose must remain inline. Some pasted editor
     markup carries display:block/inline-block and makes a highlighted phrase
     jump to its own line. */
  body#category #category-description :is(span, strong, b, em, i, u, small, mark),
  body#category .category-additional-description :is(span, strong, b, em, i, u, small, mark),
  body#category .category-description :is(span, strong, b, em, i, u, small, mark),
  body#cms .page-content.page-cms :is(span, strong, b, em, i, u, small, mark),
  body#product #product-description-short :is(span, strong, b, em, i, u, small, mark),
  body#product .product-description :is(span, strong, b, em, i, u, small, mark),
  body#product .tabs .tab-content :is(span, strong, b, em, i, u, small, mark),
  body#manufacturer #manufacturer-short_description :is(span, strong, b, em, i, u, small, mark),
  body#manufacturer #manufacturer-description :is(span, strong, b, em, i, u, small, mark),
  body#supplier #supplier-description :is(span, strong, b, em, i, u, small, mark) {
    display: inline !important;
    float: none !important;
    width: auto !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    word-spacing: normal !important;
    letter-spacing: normal !important;
    white-space: normal !important;
  }

  /* Keep paragraphs compact and consistent. The JS companion merges only
     obvious editor-created sentence fragments; genuine completed paragraphs
     keep their normal separation. */
  body#category #category-description p,
  body#category .category-additional-description p,
  body#category .category-description p,
  body#cms .page-content.page-cms p,
  body#product #product-description-short p,
  body#product .product-description p,
  body#product .tabs .tab-content p,
  body#manufacturer #manufacturer-short_description p,
  body#manufacturer #manufacturer-description p,
  body#supplier #supplier-description p {
    margin-top: 0 !important;
    margin-bottom: 0.9rem !important;
    line-height: 1.6 !important;
  }

  /* Remove visual space from editor-generated empty paragraphs after the JS
     marks them. */
  .vh-mobile-empty-copy {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}


/* ---- veridian-pudo-2637.css ---- */
/* Veridian Health 2.6.33 — PUDO / The Courier Guy checkout integration polish. */

/* Keep carrier-specific content aligned with the full-width delivery option. */
#checkout-delivery-step .delivery-option .vh-pudo-extra,
#checkout-delivery-step .delivery-option-2 .vh-pudo-extra,
.checkout-step .vh-pudo-extra {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0 0 1rem;
}

.checkout-step .vh-pudo-card {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin: .65rem 0 0;
  padding: 1.25rem;
  overflow: hidden;
  border: 1px solid rgba(49, 92, 75, .18);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(28, 60, 48, .06);
  color: #263b33;
}

.checkout-step .vh-pudo-card-head {
  gap: .75rem;
  margin-bottom: 1rem;
}

.checkout-step .vh-pudo-mark {
  flex: 0 0 auto;
  width: 52px;
  height: 42px;
  border-radius: 11px;
  background: #eef4f0;
  color: #315c4b;
  font-family: inherit;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .055em;
}

.checkout-step .vh-pudo-title {
  margin: 0;
  color: #315c4b;
  font-family: inherit;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
}

.checkout-step .vh-pudo-rate {
  margin-top: .2rem;
  color: #68736e;
  font-size: .92rem;
}

.checkout-step .vh-pudo-origin,
.checkout-step .vh-pudo-door-note {
  margin-bottom: 1rem;
  padding: .85rem 1rem;
  border-radius: 11px;
  background: #f5f8f6;
}

.checkout-step .vh-pudo-field {
  min-width: 0;
  margin-bottom: 1rem;
}

.checkout-step .vh-pudo-field label {
  margin-bottom: .4rem;
  color: #4f625a;
  font-size: .88rem;
  font-weight: 600;
}

.checkout-step .vh-pudo-card .form-control,
.checkout-step .vh-pudo-card select.form-control,
.checkout-step .vh-pudo-card input.form-control {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  padding: .68rem .8rem;
  border: 1px solid #d6e0da;
  border-radius: 10px;
  background: #fff;
  color: #263b33;
  font-family: inherit;
  font-size: .95rem;
  line-height: 1.35;
}

.checkout-step .vh-pudo-card .form-control:focus {
  border-color: #6e927f;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(72, 118, 94, .11);
}

.checkout-step .vh-pudo-search-row,
.checkout-step .vh-pudo-contact-grid {
  min-width: 0;
}

.checkout-step .vh-pudo-near-me {
  min-height: 48px;
  padding: .65rem 1rem;
  border: 1px solid #6e927f;
  border-radius: 10px;
  background: #fff;
  color: #315c4b;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
}

.checkout-step .vh-pudo-near-me:hover,
.checkout-step .vh-pudo-near-me:focus {
  background: #eef5f1;
  color: #24483a;
}

.checkout-step .vh-pudo-selected-address,
.checkout-step .vh-pudo-help {
  overflow-wrap: anywhere;
}

/* Classic/PrestaShop can wrap carrier extra content in narrow columns. Ensure
   PUDO's selectors never overflow the order step. */
.checkout-step .carrier-extra-content,
.checkout-step .carrier-extra-content .vh-pudo-extra {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 767.98px) {
  #checkout-delivery-step .delivery-option .vh-pudo-extra,
  #checkout-delivery-step .delivery-option-2 .vh-pudo-extra,
  .checkout-step .vh-pudo-extra {
    padding: 0 0 .8rem;
  }

  .checkout-step .vh-pudo-card {
    margin-top: .5rem;
    padding: 1rem;
    border-radius: 14px;
  }

  .checkout-step .vh-pudo-card-head {
    align-items: flex-start;
  }

  .checkout-step .vh-pudo-title {
    font-size: 1rem;
  }

  .checkout-step .vh-pudo-search-row,
  .checkout-step .vh-pudo-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .65rem;
  }

  .checkout-step .vh-pudo-near-me {
    width: 100%;
  }

  .checkout-step .vh-pudo-origin,
  .checkout-step .vh-pudo-door-note {
    padding: .75rem .85rem;
  }
}


/* 2.6.33 — pickup-point API status and long-location resilience. */
.checkout-step .vh-pudo-card select.form-control {
  text-overflow: ellipsis;
}
.checkout-step .vh-pudo-selected-address {
  min-height: 1.25rem;
  color: #68736e;
  font-size: .88rem;
  line-height: 1.45;
}
.checkout-step .vh-pudo-card .vh-pudo-help {
  color: #68736e;
  font-size: .84rem;
  line-height: 1.45;
}
@media (max-width: 767.98px) {
  .checkout-step .vh-pudo-card select.form-control,
  .checkout-step .vh-pudo-card input.form-control {
    font-size: 16px; /* prevent mobile browser zoom on focus */
  }
}


/* 2.6.33 — keep module extra content clearly attached to its carrier row. */
#checkout-delivery-step .carrier-extra-content .vh-pudo-extra {
  flex: 0 0 100%;
  max-width: 100%;
}
#checkout-delivery-step .carrier-extra-content:has(.vh-pudo-extra) {
  margin-left: 0;
  margin-right: 0;
}

/* Veridian 2.6.38 — PUDO location controls and permission-safe fallback. */
.checkout-step .vh-pudo-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: .65rem;
  align-items: stretch;
}

.checkout-step .vh-pudo-near-address {
  min-height: 48px;
  padding: .65rem 1rem;
  border: 1px solid #a9bbb1;
  border-radius: 10px;
  background: #f7faf8;
  color: #315c4b;
  font-family: inherit;
  font-size: .9rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
}

.checkout-step .vh-pudo-near-address:hover,
.checkout-step .vh-pudo-near-address:focus {
  background: #edf4ef;
  color: #24483a;
}

.checkout-step .vh-pudo-location-status {
  min-height: 1.15rem;
  margin-top: .4rem;
  color: #68736e;
  font-size: .82rem;
  line-height: 1.4;
}

.checkout-step .vh-pudo-location-status.is-success { color: #315c4b; }
.checkout-step .vh-pudo-location-status.is-warning { color: #8a5a2b; }
.checkout-step .vh-pudo-location-status.is-info { color: #5f6f67; }

@media (max-width: 980px) {
  .checkout-step .vh-pudo-search-row {
    grid-template-columns: minmax(0, 1fr) 1fr 1fr;
  }
}

@media (max-width: 767.98px) {
  .checkout-step .vh-pudo-search-row {
    grid-template-columns: minmax(0, 1fr);
  }

  .checkout-step .vh-pudo-near-me,
  .checkout-step .vh-pudo-near-address {
    width: 100%;
  }
}


/* Veridian 2.6.38 mobile PUDO controls */
@media (max-width: 767px) {
  .vh-pudo-search-row { display: grid !important; grid-template-columns: 1fr !important; gap: 10px !important; }
  .vh-pudo-search-row .btn { width: 100% !important; min-height: 48px !important; }
  .vh-pudo-search-row input { width: 100% !important; min-width: 0 !important; font-size: 16px !important; }
}

/* Veridian 2.6.42 — PUDO mobile sizing: matching search/province controls and compact actions. */
@media (max-width: 767.98px) {
  .checkout-step .vh-pudo-card,
  .checkout-step .vh-pudo-card * {
    box-sizing: border-box;
  }

  .checkout-step .vh-pudo-filter-grid,
  .checkout-step .vh-pudo-province-wrap,
  .checkout-step .vh-pudo-filter-actions,
  .checkout-step .vh-pudo-field,
  .checkout-step #vh-pudo-search,
  .checkout-step #vh-pudo-province {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .checkout-step #vh-pudo-search,
  .checkout-step #vh-pudo-province {
    display: block !important;
    height: 48px !important;
    min-height: 48px !important;
  }

  .checkout-step .vh-pudo-filter-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 8px !important;
    margin: -4px 0 14px !important;
  }

  .checkout-step .vh-pudo-filter-actions .btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 42px !important;
    padding: 8px 6px !important;
    font-size: 12.5px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }
}


/* ---- veridian-checkout-cart-2646.css ---- */
/* Veridian 2.6.46 — explicit delivery choice + compact add-to-cart confirmation. */

/* A disabled Continue button is intentionally visible until the customer has
   actively chosen a shipping method. */
body#checkout #js-delivery .continue.vh-delivery-choice-required,
body#checkout #js-delivery .continue:disabled {
  cursor: not-allowed !important;
  opacity: .48 !important;
  filter: grayscale(.25);
}

/* Keep the add-to-cart confirmation inside the visible viewport. */
#blockcart-modal .modal-content {
  max-height: calc(100vh - 24px);
  max-height: calc(100dvh - 24px);
}

@media (max-width: 767.98px) {
  #blockcart-modal {
    padding: 0 !important;
  }

  #blockcart-modal .modal-dialog {
    width: calc(100% - 12px) !important;
    max-width: none !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 6px auto !important;
  }

  #blockcart-modal .modal-content {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-height: calc(100vh - 12px) !important;
    max-height: calc(100dvh - 12px) !important;
    overflow: hidden !important;
  }

  #blockcart-modal .modal-header {
    flex: 0 0 auto;
    min-height: 0 !important;
    padding: 10px 42px 10px 12px !important;
  }

  #blockcart-modal .modal-header .close {
    top: 8px !important;
    right: 10px !important;
    margin: 0 !important;
  }

  #blockcart-modal .modal-header .close .material-icons {
    font-size: 28px !important;
  }

  #blockcart-modal .modal-title {
    margin: 0 !important;
    font-size: clamp(15px, 4.15vw, 18px) !important;
    line-height: 1.25 !important;
    text-align: left !important;
  }

  #blockcart-modal .modal-title .material-icons {
    margin-right: 7px !important;
    font-size: 25px !important;
    vertical-align: middle !important;
  }

  #blockcart-modal .modal-body {
    flex: 1 1 auto;
    min-height: 0 !important;
    padding: 10px 12px 12px !important;
    overflow: hidden !important;
  }

  #blockcart-modal .modal-body > .row {
    display: block !important;
    margin: 0 !important;
  }

  #blockcart-modal .modal-body > .row > .col-md-5,
  #blockcart-modal .modal-body > .row > .col-md-7 {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }

  /* Image and product information sit side-by-side instead of consuming two
     full mobile rows. This is the largest reduction in modal height. */
  #blockcart-modal .divide-right > .row {
    display: grid !important;
    grid-template-columns: minmax(104px, 38%) minmax(0, 62%) !important;
    gap: 10px !important;
    align-items: center !important;
    margin: 0 0 8px !important;
  }

  #blockcart-modal .divide-right > .row > .col-md-6 {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
  }

  #blockcart-modal .product-image {
    display: block !important;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 23vh !important;
    max-height: 23dvh !important;
    margin: 0 auto !important;
    object-fit: contain !important;
  }

  #blockcart-modal .product-name,
  #blockcart-modal .product-price {
    padding: 0 !important;
  }

  #blockcart-modal .product-name {
    margin: 0 0 5px !important;
    font-size: clamp(14px, 3.8vw, 17px) !important;
    line-height: 1.18 !important;
  }

  #blockcart-modal .product-price {
    margin: 0 0 4px !important;
    font-size: clamp(14px, 3.7vw, 17px) !important;
    line-height: 1.2 !important;
  }

  #blockcart-modal .divide-right span {
    padding: 0 !important;
  }

  #blockcart-modal .vh-modal-quantity-wrap,
  #blockcart-modal .vh-static-commerce-quantity {
    margin: 5px 0 0 !important;
  }

  #blockcart-modal .vh-static-commerce-quantity,
  #blockcart-modal .bootstrap-touchspin.vh-commerce-horizontal-quantity {
    width: 108px !important;
    min-width: 108px !important;
    max-width: 108px !important;
    height: 36px !important;
  }

  #blockcart-modal .bootstrap-touchspin.vh-commerce-horizontal-quantity input,
  #blockcart-modal .vh-static-commerce-quantity {
    height: 36px !important;
    min-height: 36px !important;
  }

  #blockcart-modal .cart-content {
    padding: 0 !important;
  }

  #blockcart-modal .cart-products-count {
    margin: 4px 0 7px !important;
    font-size: clamp(14px, 3.8vw, 17px) !important;
    line-height: 1.2 !important;
  }

  #blockcart-modal .cart-content > p:not(.cart-products-count) {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 5px 0 !important;
    font-size: clamp(13px, 3.6vw, 16px) !important;
    line-height: 1.18 !important;
  }

  #blockcart-modal .cart-content > p.product-total {
    margin-top: 3px !important;
    padding: 7px 8px !important;
  }

  #blockcart-modal .cart-content-btn {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: 8px !important;
    margin-top: 8px !important;
  }

  #blockcart-modal .cart-content-btn .btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 38px !important;
    margin: 0 !important;
    padding: 7px 5px !important;
    font-size: clamp(11px, 3vw, 13px) !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    text-align: center !important;
  }

  #blockcart-modal .cart-content-btn .material-icons {
    margin-right: 3px !important;
    font-size: 16px !important;
  }
}

/* Extra compression on phones with unusually short browser viewports. */
@media (max-width: 767.98px) and (max-height: 720px) {
  #blockcart-modal .modal-header { padding-top: 7px !important; padding-bottom: 7px !important; }
  #blockcart-modal .modal-body { padding-top: 7px !important; padding-bottom: 7px !important; }
  #blockcart-modal .product-image { max-height: 19vh !important; max-height: 19dvh !important; }
  #blockcart-modal .cart-content > p:not(.cart-products-count) { padding-top: 3px !important; padding-bottom: 3px !important; }
  #blockcart-modal .cart-content-btn { margin-top: 5px !important; }
}


/* ---- veridian-newproducts-cart-2647.css ---- */
/* Veridian 2.6.47 — desktop New Products Add-to-cart click target fix. */
@media (min-width: 768px) {
  section.featured-products[data-type="newproducts"] .product-miniature .product-description,
  section.featured-products[data-type="newproducts"] .product-miniature .vh-product-card-actions,
  section.featured-products[data-type="newproducts"] .product-miniature .vh-product-card-actions .add,
  section.featured-products[data-type="newproducts"] .product-miniature .js-product-card-cart-form,
  section.featured-products[data-type="newproducts"] .product-miniature .js-product-card-cart-form .add-to-cart {
    position: relative !important;
    z-index: 30 !important;
    pointer-events: auto !important;
  }

  section.featured-products[data-type="newproducts"] .product-miniature .js-product-card-cart-form .add-to-cart {
    cursor: pointer !important;
  }
}


/* ---- veridian-banner-images-2648.css ---- */
/* ========================================================================== 
   Veridian Health 2.6.48 — homepage banner image alignment + sharp source
   Scope: New Products and Featured Collection product carousels only.

   The image frame remains identical for every card. Artwork is kept fully
   visible with object-fit: contain, but is anchored to the bottom of the frame
   so products no longer appear to float high above the title/divider. The
   product miniature template uses a larger PrestaShop image source on the
   homepage, avoiding softness when these boxes are wider on desktop.
   ========================================================================== */

section.featured-products[data-type="newproducts"] .product-slider .product-miniature .thumbnail-top,
section.featured-products[data-type="popularproducts"] .product-slider .product-miniature .thumbnail-top {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 1 / 1 !important;
  overflow: hidden !important;
  background: #fff !important;
}

section.featured-products[data-type="newproducts"] .product-slider .product-miniature .thumbnail-container .thumbnail-top > .product-thumbnail,
section.featured-products[data-type="popularproducts"] .product-slider .product-miniature .thumbnail-container .thumbnail-top > .product-thumbnail,
section.featured-products[data-type="newproducts"] .product-slider .product-miniature .thumbnail-container .thumbnail-top > a.thumbnail.product-thumbnail,
section.featured-products[data-type="popularproducts"] .product-slider .product-miniature .thumbnail-container .thumbnail-top > a.thumbnail.product-thumbnail {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #fff !important;
  line-height: 0 !important;
}

section.featured-products[data-type="newproducts"] .product-slider .product-miniature .product-thumbnail picture,
section.featured-products[data-type="popularproducts"] .product-slider .product-miniature .product-thumbnail picture {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  align-items: flex-end !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

section.featured-products[data-type="newproducts"] .product-slider .product-miniature .product-thumbnail img,
section.featured-products[data-type="popularproducts"] .product-slider .product-miniature .product-thumbnail img {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: contain !important;
  object-position: center bottom !important;
  transform: none !important;
  image-rendering: auto !important;
}

/* Keep the label/wishlist controls above the artwork after restoring the
   absolute media stage. */
section.featured-products[data-type="newproducts"] .product-slider .product-miniature .product-flags,
section.featured-products[data-type="popularproducts"] .product-slider .product-miniature .product-flags,
section.featured-products[data-type="newproducts"] .product-slider .product-miniature .vh-product-wishlist-slot,
section.featured-products[data-type="popularproducts"] .product-slider .product-miniature .vh-product-wishlist-slot {
  z-index: 5 !important;
}

/* Phones keep exactly the same bottom alignment; no low-resolution mobile
   source or transform is used, so the artwork stays crisp on high-DPI screens. */
@media (max-width: 767.98px) {
  section.featured-products[data-type="newproducts"] .product-slider .product-miniature .thumbnail-top,
  section.featured-products[data-type="popularproducts"] .product-slider .product-miniature .thumbnail-top {
    aspect-ratio: 1 / 1 !important;
  }
}


/* ---- veridian-checkout-choice-2654.css ---- */
/* Veridian 2.6.54 — intentional shipping selection on desktop and mobile. */
body#checkout #checkout-delivery-step .vh-delivery-choice-prompt {
  margin: 0 0 14px;
  padding: 10px 12px;
  font-size: 14px;
  line-height: 1.4;
  font-weight: 600;
  background: rgba(95, 117, 46, .07);
}

/* Each carrier starts as a compact choice. The chosen carrier opens to reveal
   its delivery timing and any module-specific content. */
body#checkout #checkout-delivery-step .delivery-option.js-delivery-option {
  transition: background-color .18s ease, transform .18s ease;
}

body#checkout #checkout-delivery-step .delivery-option.js-delivery-option:not(.vh-delivery-option-selected) .carrier-delay {
  display: none !important;
}

body#checkout #checkout-delivery-step .delivery-option.js-delivery-option.vh-delivery-option-selected .carrier-delay {
  display: inline !important;
}

body#checkout #checkout-delivery-step .delivery-option.js-delivery-option.vh-delivery-option-selected {
  background: rgba(95, 117, 46, .055) !important;
}

/* Optional delivery instructions / packaging choices stay collapsed until the
   customer has deliberately selected a carrier. */
body#checkout #js-delivery:not(.vh-has-delivery-choice) .order-options {
  display: none !important;
}

body#checkout #js-delivery.vh-has-delivery-choice .order-options {
  display: block !important;
}


body#checkout #js-delivery:not(.vh-has-delivery-choice) .js-carrier-extra-content {
  display: none !important;
}

body#checkout #checkout-delivery-step .js-carrier-extra-content[aria-hidden="true"] {
  display: none !important;
}

body#checkout #checkout-delivery-step .js-carrier-extra-content[aria-hidden="false"] {
  display: block;
}

@media (max-width: 767.98px) {
  body#checkout #checkout-delivery-step .vh-delivery-choice-prompt {
    margin-bottom: 10px;
    padding: 9px 10px;
    font-size: 13px;
  }

  body#checkout #checkout-delivery-step .delivery-option.js-delivery-option {
    align-items: center;
  }

  body#checkout #checkout-delivery-step .delivery-option.js-delivery-option.vh-delivery-option-selected {
    padding-top: 8px;
    padding-bottom: 8px;
  }
}

body#checkout #js-delivery.vh-has-delivery-choice .vh-delivery-choice-prompt {
  display: none !important;
}

/* Veridian Health 2.6.64 — keep Store Information email on one line. */
.vh-email-only-store-info .vh-store-email-block .data.email {
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
  white-space: nowrap;
}

.vh-email-only-store-info .vh-store-email-block .vh-store-email-label {
  flex: 0 0 auto;
  margin-right: 0.35em;
  white-space: nowrap;
}

.vh-email-only-store-info .vh-store-email-block .data.email a {
  flex: 0 0 auto;
  display: inline !important;
  max-width: none !important;
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
}

@media (max-width: 575.98px) {
  body#contact .vh-email-only-store-info .vh-store-email-block {
    gap: 8px;
  }

  body#contact .vh-email-only-store-info .vh-store-email-block .data.email {
    font-size: clamp(10px, 3vw, 13px);
    line-height: 1.35;
    letter-spacing: -0.01em !important;
  }

  body#contact .vh-email-only-store-info .vh-store-email-block .icon i {
    font-size: 28px;
  }
}

/* Veridian Health 2.6.70 — selectable Store Information email layout.
   Keep the complete address on one line while using the largest practical responsive type size. */
body#contact .vh-email-only-store-info {
  padding-right: 10px;
  padding-left: 10px;
}

body#contact .vh-email-only-store-info .vh-store-email-block {
  display: block !important;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: visible;
}

body#contact .vh-email-only-store-info .vh-store-email-heading {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 9px;
}

body#contact .vh-email-only-store-info .vh-store-email-heading .icon {
  flex: 0 0 auto;
  margin: 0;
}

body#contact .vh-email-only-store-info .vh-store-email-label {
  display: block;
  margin: 0 !important;
  color: inherit;
  font-weight: 500;
  line-height: 1.35;
  white-space: nowrap;
}

body#contact .vh-email-only-store-info .vh-store-email-text {
  display: block !important;
  width: 100%;
  max-width: 100%;
  margin: 0 !important;
  color: #2f4317;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -0.018em !important;
  text-align: left;
  white-space: nowrap !important;
  overflow: visible;
  overflow-wrap: normal !important;
  word-break: keep-all !important;
  cursor: text;
  pointer-events: auto;
  caret-color: auto;
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}

@media (min-width: 1200px) {
  body#contact .vh-email-only-store-info .vh-store-email-text {
    font-size: clamp(12.5px, 0.82vw, 14px);
  }
}

@media (max-width: 767.98px) {
  body#contact .vh-email-only-store-info .vh-store-email-text {
    font-size: clamp(13px, 3.45vw, 15px);
    letter-spacing: -0.015em !important;
  }
}

@media (max-width: 359.98px) {
  body#contact .vh-email-only-store-info .vh-store-email-text {
    font-size: 12.5px;
    letter-spacing: -0.02em !important;
  }
}
