/* Keeps WooCommerce data inside the supplied products.html visual structure. */
.product-card .product-card-link { display: block; color: inherit; }
.header .search select { flex: 0 0 196px; width: 196px; min-width: 0; max-width: 196px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.header .search input { min-width: 0; }
.product-card .product-card-link:hover { color: inherit; }
.product-card { display: flex; flex-direction: column; }
.product-card .product-card-link { display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; }
.product-card .img-wrap { display: grid; width: 100%; aspect-ratio: 1 / 1; min-height: 0; overflow: hidden; place-items: center; }
.product-card .img-wrap img { display: block; width: 100% !important; height: 100% !important; max-width: none; max-height: none; object-fit: contain; object-position: center; padding: 12px; }
.product-card .body { flex: 1 1 auto; }
.pdp-main-img .wp-post-image { width: 100%; height: 100%; object-fit: contain; padding: 24px; }
.pdp-main-img .wp-post-image { cursor: zoom-in; transition: transform .22s ease; }
.pdp-main-img.is-zoomed { cursor: zoom-out; }
.pdp-main-img.is-zoomed .wp-post-image { transform: scale(2); cursor: zoom-out; }
.product-contact-details > p { margin: 0 0 10px; color: var(--gray-600); font-size: 12px; line-height: 1.5; }
.product-contact-links { display: grid; gap: 7px; }
.product-contact-links a { display: grid; grid-template-columns: 22px minmax(0, 1fr); column-gap: 6px; padding: 7px 0; color: var(--gray-800); border-top: 1px solid var(--gray-200); }
.product-contact-links a > span { grid-row: span 2; }
.product-contact-links strong { font-size: 11px; }
.product-contact-links small { color: var(--gray-600); font-size: 11px; overflow-wrap: anywhere; }
.product-contact-details .contact-page-link { display: inline-block; margin-top: 10px; color: var(--brand-orange); font-size: 12px; font-weight: 700; }
.pdp-thumbs .thumb img { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.pdp-thumbs button.thumb { padding: 0; font: inherit; }
.pdp-thumbs button.thumb:focus-visible { outline: 3px solid rgba(230,92,0,.55); outline-offset: 2px; }
.filter-sidebar .filter-group label { position: relative; }
.filter-sidebar .filter-group .lisen-category-filter { color: inherit; flex: 1; min-width: 0; }
.filter-sidebar .filter-group .lisen-category-filter:hover { color: var(--brand-orange); }
.filter-sidebar .filter-group .count { margin-left: auto; color: var(--gray-400); font-size: 11px; }
.pagination ul { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
.pagination a, .pagination .current { min-width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--gray-200); background: #fff; border-radius: 4px; font-size: 13px; color: var(--gray-700); padding: 0 10px; }
.pagination .current { background: var(--brand-blue); color: #fff; border-color: var(--brand-blue); font-weight: 700; }
.pagination a:hover { border-color: var(--brand-blue); color: var(--brand-blue); }
.product-card .btn-cart { display: block; text-align: center; }
.pdp-info .cta-row > .cart,
.pdp-info .cta-row > .btn { flex: 0 0 calc(50% - 5px); min-width: 0; }
.pdp-info .cta-row .cart { display: flex; }
.pdp-info .cta-row .cart .btn { width: 100%; }
.product-spec-description { color: #34495a; font-size: 14px; line-height: 1.75; }
.product-spec-description > :first-child { margin-top: 0; }
.product-spec-description > :last-child { margin-bottom: 0; }
.product-spec-description h2, .product-spec-description h3, .product-spec-description h4 { color: #123b58; line-height: 1.3; }
.product-spec-description table { width: 100%; border-collapse: collapse; margin: 18px 0; }
.product-spec-description th, .product-spec-description td { padding: 10px 12px; border: 1px solid #dbe5ec; text-align: left; }
.product-spec-description th { width: 34%; color: #173b57; background: #f4f8fb; }
.product-spec-description img { max-width: 100%; height: auto; }
.product-spec-attributes { margin-top: 22px; }
.lisen-commerce-page .woocommerce { margin: 28px 0 48px; }
.lisen-commerce-page .woocommerce-cart-form, .lisen-commerce-page .cart-collaterals, .lisen-commerce-page form.checkout { background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-md); padding: 20px; }
.lisen-commerce-page .button, .lisen-commerce-page button { background: var(--brand-blue); color: #fff; border-radius: var(--radius-sm); }
.brand-logo-grid .brand-card { display: flex; min-height: 82px; flex-direction: column; align-items: center; justify-content: center; }
.brand-logo-grid .brand-logo-image { display: grid; width: 100%; height: 34px; place-items: center; overflow: hidden; }
.brand-logo-grid .brand-logo-image img { display: block; width: 130px; height: 34px; object-fit: contain; }
.brand-logo-grid .brand-logo-image img[src$="abb.svg"] { object-fit: fill; transform: scaleX(1.55); transform-origin: center; }
.brand-logo-grid .brand-logo-image.is-square img { object-fit: cover; object-position: center; }
.logo.logo-image { display: flex; flex: 0 0 auto; align-items: center; width: 220px; height: 64px; }
.logo.logo-image img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: left center; }
.footer .logo.logo-image { width: 210px; height: 68px; margin-bottom: 12px; }
@media (max-width: 900px) { .logo.logo-image { width: 175px; height: 52px; } .footer .logo.logo-image { width: 195px; height: 62px; } }
.brand-logo-grid .desc { margin: 0; }
@media (max-width: 560px) { .plp-head .sort-select { margin-top: 10px; } .plp-main .plp-head { display: block; } }
@media (max-width: 900px) { .header .container { flex-wrap: wrap; } .header .search { order: 3; flex-basis: 100%; max-width: none; } }
@media (max-width: 560px) { .header .search select { flex-basis: 132px; width: 132px; max-width: 132px; padding: 0 8px; } .header .search input { padding: 11px 9px; } .header .search button { padding: 0 12px; font-size: 12px; } }

/* Light, aligned site footer.  The source footer reserves a six-column grid
   even though this theme has four columns; this explicit grid keeps every
   column on a predictable baseline. */
.footer {
  position: relative;
  background: #edf3f7;
  color: #526171;
  border-top: 4px solid #0b426f;
  font-size: 13px;
  padding: 42px 0 38px;
}
.footer .footer-grid {
  display: grid;
  grid-template-columns: minmax(280px, 2.25fr) repeat(3, minmax(132px, 1fr));
  gap: clamp(32px, 5vw, 84px);
  align-items: start;
  padding-top: 4px;
  padding-bottom: 0;
}
.footer-brand {
  padding-right: clamp(0px, 2vw, 30px);
}
.footer .logo.logo-image {
  width: 210px;
  height: 68px;
  margin: 0 0 14px;
}
.footer-brand p {
  max-width: 370px;
  margin: 0;
  color: #526171;
  font-size: 13px;
  line-height: 1.75;
}
.footer-col {
  min-width: 0;
}
.footer-col h5 {
  margin: 8px 0 17px;
  color: #123b58;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.footer-col ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.footer-col ul li {
  margin: 0 0 11px;
  line-height: 1.45;
}
.footer-col ul li a {
  color: #526171;
  transition: color .18s ease, padding-left .18s ease;
}
.footer-col ul li a:hover {
  color: #e65c00;
  padding-left: 4px;
}
@media (max-width: 900px) {
  .footer { padding: 34px 0; }
  .footer .footer-grid { grid-template-columns: minmax(240px, 1.6fr) repeat(3, minmax(115px, 1fr)); gap: 28px; }
  .footer .logo.logo-image { width: 195px; height: 62px; }
}
@media (max-width: 680px) {
  .footer .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 24px; }
  .footer-brand { grid-column: 1 / -1; padding-right: 0; }
}
@media (max-width: 420px) {
  .footer .footer-grid { grid-template-columns: 1fr; gap: 23px; }
  .footer-brand { grid-column: auto; }
  .footer-col h5 { margin: 0 0 11px; }
}
