.tepb-builder{width:100%}.tepb-quote-link{display:none}.tepb-builder.is-quote .tepb-quote-link{display:inline-flex}.tepb-builder.is-quote .tepb-add-cart{display:none!important}
.tepb-usage-summary{margin-top:10px;padding:12px 14px;border:1px solid #cfe0e6;border-radius:9px;background:#f3fafb;color:#405762;font-size:13px}
.tepb-usage-summary:empty{display:none}

/*
 * Compact WooCommerce catalogue grid.
 * These selectors intentionally cover the native shop archive, WooCommerce
 * shortcodes and Divi Shop modules. The plugin stylesheet is enqueued late so
 * the grid wins over Divi's columns-3 float rules.
 */
body .woocommerce ul.products,
body.woocommerce ul.products,
body.woocommerce-page ul.products,
body .et_pb_shop ul.products,
body .et_pb_wc_related_products ul.products,
body .et_pb_wc_upsells ul.products,
body ul.products.wc-block-product-template {
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  column-gap:18px!important;
  row-gap:22px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  list-style:none!important;
  align-items:stretch!important;
}

body .woocommerce ul.products::before,
body .woocommerce ul.products::after,
body.woocommerce ul.products::before,
body.woocommerce ul.products::after,
body.woocommerce-page ul.products::before,
body.woocommerce-page ul.products::after,
body .et_pb_shop ul.products::before,
body .et_pb_shop ul.products::after {
  display:none!important;
  content:none!important;
}

body .woocommerce ul.products li.product,
body.woocommerce ul.products li.product,
body.woocommerce-page ul.products li.product,
body .et_pb_shop ul.products li.product,
body .et_pb_wc_related_products ul.products li.product,
body .et_pb_wc_upsells ul.products li.product,
body ul.products.wc-block-product-template li.wc-block-product {
  float:none!important;
  clear:none!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  border-radius:18px!important;
  background:#fff!important;
  box-sizing:border-box!important;
}

body .woocommerce ul.products li.product.first,
body .woocommerce ul.products li.product.last,
body .et_pb_shop ul.products li.product.first,
body .et_pb_shop ul.products li.product.last {
  clear:none!important;
  margin-right:0!important;
}

body .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
body.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link,
body.woocommerce-page ul.products li.product > a.woocommerce-LoopProduct-link,
body .et_pb_shop ul.products li.product > a.woocommerce-LoopProduct-link,
body .et_pb_shop ul.products li.product > a.woocommerce-loop-product__link {
  display:flex!important;
  flex:1 1 auto!important;
  flex-direction:column!important;
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  text-decoration:none!important;
  box-sizing:border-box!important;
}

/* Divi wraps catalogue images in .et_shop_image. Giving that wrapper a fixed
 * ratio lets square placeholders and portrait photos fill the tile cleanly. */
body .et_pb_shop ul.products li.product .et_shop_image,
body .woocommerce ul.products li.product .et_shop_image,
body.woocommerce ul.products li.product .et_shop_image,
body.woocommerce-page ul.products li.product .et_shop_image {
  display:block!important;
  position:relative!important;
  width:100%!important;
  aspect-ratio:4/3!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#eef5f6!important;
}

body .et_pb_shop ul.products li.product .et_shop_image img,
body .woocommerce ul.products li.product .et_shop_image img,
body.woocommerce ul.products li.product .et_shop_image img,
body.woocommerce-page ul.products li.product .et_shop_image img {
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center!important;
}

/* Native WooCommerce loops may output the image directly inside the link. */
body .woocommerce ul.products li.product > a.woocommerce-LoopProduct-link > img,
body.woocommerce ul.products li.product > a.woocommerce-LoopProduct-link > img,
body.woocommerce-page ul.products li.product > a.woocommerce-LoopProduct-link > img,
body .et_pb_shop ul.products li.product > a.woocommerce-LoopProduct-link > img {
  display:block!important;
  width:100%!important;
  max-width:none!important;
  aspect-ratio:4/3!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center!important;
  background:#eef5f6!important;
}

body .woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce ul.products li.product .woocommerce-loop-product__title,
body.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
body .et_pb_shop ul.products li.product .woocommerce-loop-product__title {
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-height:55px!important;
  margin:0!important;
  padding:12px 14px 5px!important;
  font-size:clamp(15px,1vw,18px)!important;
  line-height:1.25!important;
  font-weight:500!important;
  text-align:left!important;
}

body .woocommerce ul.products li.product .price,
body.woocommerce ul.products li.product .price,
body.woocommerce-page ul.products li.product .price,
body .et_pb_shop ul.products li.product .price {
  display:block!important;
  box-sizing:border-box!important;
  width:100%!important;
  min-height:31px!important;
  margin:auto 0 0!important;
  padding:0 14px 13px!important;
  font-size:15px!important;
  line-height:1.2!important;
  font-weight:700!important;
  text-align:left!important;
}

body .woocommerce ul.products li.product .price .amount,
body.woocommerce ul.products li.product .price .amount,
body.woocommerce-page ul.products li.product .price .amount,
body .et_pb_shop ul.products li.product .price .amount {
  display:inline-block!important;
  line-height:1.2!important;
}

@media (min-width:1400px){
  body .woocommerce ul.products,
  body.woocommerce ul.products,
  body.woocommerce-page ul.products,
  body .et_pb_shop ul.products,
  body .et_pb_wc_related_products ul.products,
  body .et_pb_wc_upsells ul.products,
  body ul.products.wc-block-product-template {
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
  }
}

@media (max-width:1023px){
  body .woocommerce ul.products,
  body.woocommerce ul.products,
  body.woocommerce-page ul.products,
  body .et_pb_shop ul.products,
  body .et_pb_wc_related_products ul.products,
  body .et_pb_wc_upsells ul.products,
  body ul.products.wc-block-product-template {
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    column-gap:16px!important;
  }
}

@media (max-width:767px){
  body .woocommerce ul.products,
  body.woocommerce ul.products,
  body.woocommerce-page ul.products,
  body .et_pb_shop ul.products,
  body .et_pb_wc_related_products ul.products,
  body .et_pb_wc_upsells ul.products,
  body ul.products.wc-block-product-template {
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;
  }
}

@media (max-width:479px){
  body .woocommerce ul.products,
  body.woocommerce ul.products,
  body.woocommerce-page ul.products,
  body .et_pb_shop ul.products,
  body .et_pb_wc_related_products ul.products,
  body .et_pb_wc_upsells ul.products,
  body ul.products.wc-block-product-template {
    grid-template-columns:1fr!important;
  }
}

/* Client access is deliberately prominent in the primary/Divi navigation. */
body .menu-item-te-client-login > a,
body #top-menu .menu-item-te-client-login > a,
body .et_mobile_menu .menu-item-te-client-login > a {
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  padding:10px 18px!important;
  border-radius:999px!important;
  background:#28afc2!important;
  color:#fff!important;
  font-weight:800!important;
  line-height:1.1!important;
  opacity:1!important;
}

body .menu-item-te-client-login > a:hover,
body #top-menu .menu-item-te-client-login > a:hover,
body .et_mobile_menu .menu-item-te-client-login > a:hover {
  background:#128a9d!important;
  color:#fff!important;
}
