.woocommerce ul.products li.product {
  display: flex;
  flex-direction: column;
  background: #f6f6f6;
  padding: 0 22px 24px;
  border: 1px solid #e8e8e8;
  border-radius: 2px;
  text-align: left;
  box-sizing: border-box;
}
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
  display: block;
  color: #171717;
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: #171717 !important;
  font-size: 21px;
  line-height: 1.3;
  padding: 5px 0 16px;
  letter-spacing: 0;
}
.woocommerce ul.products li.product a img {
  aspect-ratio: 1;
  width: 100%;
  object-fit: contain;
  background: #fff;
  margin: 0 0 22px;
}
.ech-card-brand { display: block; color: #626262; font-size: 12px; font-weight: 600; text-transform: uppercase; line-height: 1.4; }
.ech-card-specs { margin: 0 0 24px; font-size: 14px; line-height: 1.5; }
.ech-card-specs > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 12px; padding: 11px 0; border-bottom: 1px solid #d8d8d8; }
.ech-card-specs dt { color: #666; font-size: 12px; font-weight: 400; }
.ech-card-specs dd { color: #171717; font-weight: 600; text-align: right; margin: 0; overflow-wrap: anywhere; }
.woocommerce ul.products li.product .button { align-self: flex-start; margin-top: auto; background: #b73524; color: #fff; border-radius: 2px; }
.woocommerce ul.products li.product .button:hover { background: #202020; color: #fff; }
.woocommerce ul.products li.product a:focus-visible { outline: 2px solid #b73524; outline-offset: 4px; }

/* Elementor's document-title setting must not hide the native Woo product title. */
.single-product .elementor .elementor-widget-woocommerce-product-title { display: block !important; }
.single-product .elementor .elementor-widget-woocommerce-product-images .woocommerce-product-gallery__image:first-child img { object-fit: contain !important; }

body.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}
body.woocommerce ul.products::before, body.woocommerce ul.products::after { display: none; }
body.woocommerce ul.products li.product {
  float: none;
  width: auto !important;
  margin: 0 !important;
  padding: 0 22px 24px !important;
}
body.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 21px !important; padding: 5px 0 16px !important; }
body.woocommerce ul.products li.product .button { padding: 12px 18px; }
body.woocommerce .woocommerce-products-header .e-con { max-width: 100%; }
@media (max-width: 1024px) {
  body.woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  body.woocommerce ul.products { grid-template-columns: minmax(0, 1fr); }
}

/* Shared archive and Elementor card presentation, with native product content. */
body .woocommerce ul.products li.product {
  padding: 24px !important;
  background: #fafafa;
  border: 1px solid #e3e3e3;
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.025);
  display: flex;
  flex-direction: column;
  min-width: 0;
}
body .woocommerce ul.products li.product a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; }
body .woocommerce ul.products li.product a img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1;
  object-fit: contain !important;
  background: #fff;
  padding: 12px;
  box-sizing: border-box;
  margin: 0 0 24px !important;
}
body .woocommerce ul.products li.product .ech-card-brand { margin: 0 0 8px; font-size: 12px; color: #5b5b5b; }
body .woocommerce ul.products li.product .woocommerce-loop-product__title {
  padding: 0 0 22px !important;
  font-size: 20px !important;
  line-height: 1.4 !important;
  font-weight: 700;
  color: #111 !important;
  min-height: 106px;
}
body .woocommerce ul.products li.product .ech-card-specs { margin-top: auto; margin-bottom: 24px; }
body .woocommerce ul.products li.product .ech-card-specs > div { min-height: 48px; align-items: center; gap: 16px; padding: 12px 0; }
body .woocommerce ul.products li.product .ech-card-specs dd { font-size: 13px; line-height: 1.5; }
body .woocommerce ul.products li.product .button {
  display: flex !important;
  align-items: center;
  justify-content: center;
  align-self: stretch !important;
  width: 100% !important;
  min-height: 48px;
  padding: 14px 18px !important;
  margin: auto 0 0 !important;
  background: #b73524 !important;
  border: 1px solid #b73524;
  border-radius: 2px !important;
  color: #fff !important;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  box-sizing: border-box;
  transition: background .18s ease, border-color .18s ease;
}
body .woocommerce ul.products li.product .button:hover { background: #1c1c1c !important; border-color: #1c1c1c; }
body .woocommerce .woocommerce-ordering select { min-height: 46px; border: 1px solid #ccc; padding: 10px 36px 10px 14px; background-color: #fff; color: #171717; border-radius: 2px; font-size: 14px; }
body .woocommerce .woocommerce-result-count { color: #555; font-size: 14px; padding: 12px 0; }
body .woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: 8px; flex-wrap: wrap; }
body .woocommerce nav.woocommerce-pagination ul li { border: 0; }
body .woocommerce nav.woocommerce-pagination ul li a,
body .woocommerce nav.woocommerce-pagination ul li span { min-width: 44px; min-height: 44px; padding: 13px; border: 1px solid #ddd; border-radius: 2px; color: #111; background: #fff; }
body .woocommerce nav.woocommerce-pagination ul li span.current,
body .woocommerce nav.woocommerce-pagination ul li a:hover { color: #fff; background: #b73524; border-color: #b73524; }
/* Product detail images retain their own aspect ratio, without letterboxing. */
body.single-product .elementor .woocommerce-product-gallery .flex-viewport { aspect-ratio: auto !important; }
body.single-product .elementor .woocommerce-product-gallery__image a { aspect-ratio: auto !important; }
body.single-product .elementor .woocommerce-product-gallery__image img { height: auto !important; aspect-ratio: auto !important; object-fit: contain !important; }
@media (max-width: 767px) {
  body .woocommerce ul.products li.product { padding: 20px !important; }
  body .woocommerce ul.products li.product .woocommerce-loop-product__title { min-height: 0; font-size: 20px !important; }
  body .woocommerce .woocommerce-ordering, body .woocommerce .woocommerce-result-count { float: none; width: 100%; }
  body .woocommerce .woocommerce-ordering select { width: 100%; }
}
.ech-service-promises .elementor-icon-box-title { margin: 0 0 3px !important; }
.ech-service-promises .elementor-icon-box-description { margin: 0 !important; line-height: 1.45; }
.ech-footer .ech-footer-inner { width: 100%; max-width: 1280px; margin-inline: auto; gap: 36px; }
.ech-footer .ech-footer-columns { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 48px; }
.ech-footer .ech-footer-identity { max-width: 310px; gap: 18px; }
.ech-footer { background-color: #000 !important; }
@media (min-width: 1025px) {
  .elementor-location-header .elementor-nav-menu--main .elementor-item { padding-left: 4px !important; padding-right: 4px !important; font-size: 13px !important; }
}
.ech-directions .elementor-widget-text-editor p + p { margin-top: 14px; }
.ech-footer .ech-footer-identity img { object-fit: cover !important; }
.ech-footer .ech-footer-column { gap: 18px; }
.ech-footer p { margin: 0; }
.ech-footer a { color: #c9c9c9; text-decoration: none; }
.ech-footer a:hover { color: #fff; text-decoration: underline; }
.ech-footer .ech-footer-column p { line-height: 2.15; }
.ech-footer .ech-footer-visit { display: grid; grid-template-columns: 1.5fr 1fr auto; align-items: center; gap: 32px; padding: 28px 0; border-top: 1px solid #333; border-bottom: 1px solid #333; }
.ech-footer .ech-footer-visit .elementor-button { color: #fff; }
.ech-footer .ech-footer-legal { flex-direction: row; justify-content: space-between; gap: 18px; }
.ech-footer a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.ech-directions .ech-directions-inner { width: 100%; max-width: 1280px; margin-inline: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.ech-directions .ech-directions-copy { gap: 18px; }
.ech-directions iframe { width: 100%; border: 0; }
.ech-model-media { border-top: 1px solid #e4e4e4; }
.ech-model-media > .ech-model-media-inner { width: 100%; max-width: 1280px; margin-inline: auto !important; }
.ech-model-media .ech-model-video { width: 100%; max-width: 960px; margin-inline: auto; }
.ech-model-media .ech-model-gallery img { width: 100%; height: 300px; object-fit: contain; background: #fff; border: 1px solid #e5e5e5; padding: 12px; box-sizing: border-box; }
.ech-model-media .gallery-item { padding: 10px; }
@media (max-width: 1024px) {
  .ech-footer .ech-footer-columns { grid-template-columns: 1fr 1fr; gap: 32px; }
}
@media (max-width: 767px) {
  .ech-service-promises { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px !important; }
  .ech-service-promises > .e-con { width: 100% !important; min-width: 0; border: 0 !important; }
  .ech-service-promises .elementor-icon-box-wrapper { display: flex !important; flex-direction: column; align-items: center; gap: 7px; }
  .ech-service-promises .elementor-icon-box-icon { margin: 0 !important; }
  .ech-service-promises .elementor-icon-box-title { font-size: 13px !important; line-height: 1.3; }
  .ech-service-promises .elementor-icon-box-description { font-size: 11px !important; }
  .ech-footer .ech-footer-identity { grid-column: 1 / -1; }
  .ech-footer .ech-footer-visit { grid-template-columns: 1fr; gap: 22px; }
  .ech-footer .ech-footer-legal { flex-direction: column; }
  .ech-directions .ech-directions-inner { grid-template-columns: 1fr; gap: 24px; }
}
