/* One native WooCommerce loop card, used by home/shop/category/related grids. */
.woocommerce ul.products li.dzkeys-product-card {
  display: flex; flex-direction: column; min-width: 0; padding: var(--dzkeys-space-3);
  background: var(--dzkeys-color-surface); border: 1px solid var(--dzkeys-color-border);
  border-radius: var(--dzkeys-radius-panel); overflow: hidden;
  color: var(--dzkeys-color-text); text-align: start;
}
.woocommerce ul.products li.dzkeys-product-card .woocommerce-LoopProduct-link { display: block; position: relative; color: inherit; text-decoration: none; flex: 1; }
.woocommerce ul.products li.dzkeys-product-card a img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: contain; margin: 0 0 var(--dzkeys-space-3); border-radius: var(--dzkeys-radius-control); }
.woocommerce ul.products li.dzkeys-product-card .dzkeys-product-category { display: block; min-height: 1.6em; color: var(--dzkeys-color-muted); font-size: 0.75rem; margin-block-end: var(--dzkeys-space-1); }
.woocommerce ul.products li.product.dzkeys-product-card .woocommerce-loop-product__title { font-size: var(--dzkeys-font-size-product); line-height: var(--dzkeys-line-height-heading); height: 4.05em; min-height: 4.05em; max-height: 4.05em; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; margin: 0 0 var(--dzkeys-space-2); padding: 0; color: var(--dzkeys-color-heading); overflow-wrap: anywhere; unicode-bidi: plaintext; }
.woocommerce ul.products li.dzkeys-product-card .price { display: block; color: var(--dzkeys-color-text); min-height: 1.6em; font-size: var(--dzkeys-font-size-product); line-height: var(--dzkeys-line-height-body); margin-block: var(--dzkeys-space-2); }
.woocommerce ul.products li.dzkeys-product-card .price del { display: block; color: var(--dzkeys-color-muted); font-size: 0.75em; }
.woocommerce ul.products li.dzkeys-product-card .price ins { text-decoration: none; }
.woocommerce ul.products li.dzkeys-product-card .button { display: flex; align-items: center; justify-content: center; width: 100%; min-height: var(--dzkeys-control-min); margin-block-start: var(--dzkeys-space-2); padding: var(--dzkeys-space-2); border: 1px solid var(--dzkeys-color-primary); border-radius: var(--dzkeys-radius-control); color: var(--dzkeys-color-text); background: transparent; font-size: var(--dzkeys-font-size-small); text-align: center; line-height: 1.4; white-space: normal; }
.woocommerce ul.products li.dzkeys-product-card .button:hover { background: var(--dzkeys-color-primary); color: var(--dzkeys-color-on-primary); }
.woocommerce ul.products li.dzkeys-product-card .added_to_cart { padding: var(--dzkeys-space-2); text-align: center; }
@media (max-width: 600px) { .woocommerce ul.products li.dzkeys-product-card { padding: var(--dzkeys-space-2); } }
/* Temporary compatibility with the audited legacy mobile-card snippet's
   object-fit:cover !important. Remove this declaration with that snippet
   in phase 19; the canonical declaration above already uses contain. */
html body .woocommerce ul.products li.product.dzkeys-product-card a img { object-fit: contain !important; }
/* Native grids share the card, with layout independent of Woo's floated list. */
:where(.woocommerce) ul.products:has(> li.dzkeys-product-card) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--dzkeys-space-4); padding: 0; }
:where(.woocommerce) ul.products:has(> li.dzkeys-product-card)::before,
:where(.woocommerce) ul.products:has(> li.dzkeys-product-card)::after { display: none; }
.woocommerce ul.products li.product.dzkeys-product-card { width: 100%; margin: 0; float: none; clear: none; }
.woocommerce ul.products li.dzkeys-product-card .dzkeys-direct-whatsapp { background: var(--dzkeys-color-whatsapp); color: var(--dzkeys-color-on-whatsapp); border-color: var(--dzkeys-color-whatsapp); }
.woocommerce ul.products li.dzkeys-product-card .onsale { position: absolute; inset-block-start: var(--dzkeys-space-2); inset-inline-start: var(--dzkeys-space-2); font-size: var(--dzkeys-font-size-small); }
@media (min-width: 768px) { :where(.woocommerce) ul.products:has(> li.dzkeys-product-card) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 922px) { :where(.woocommerce) ul.products:has(> li.dzkeys-product-card) { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1200px) { :where(.woocommerce) ul.products:has(> li.dzkeys-product-card) { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

.dzkeys-cover-fallback{display:block;width:100%;height:auto;aspect-ratio:3/4}.woocommerce-cart .dzkeys-cover-fallback{max-height:100px}

/* Full covers and red discount badges. */
html body .woocommerce ul.products li.product.dzkeys-product-card a img{width:100%!important;height:auto!important;aspect-ratio:1/1!important;object-fit:contain!important;object-position:center!important}html body .woocommerce .onsale,html body .dzp-sale-badge{background:#dc2626!important;color:#fff!important;border-color:#dc2626!important}
/* Fixed-size sale badge: reset WooCommerce opposing offsets. */
.woocommerce ul.products li.product.dzkeys-product-card .onsale { inset: auto; inset-block-start: var(--dzkeys-space-2); inset-inline-end: var(--dzkeys-space-2); width: 2.5rem; height: 2.5rem; min-width: 0; min-height: 0; max-width: 2.5rem; padding: 0; margin: 0; border-radius: 50%; display: flex; align-items: center; justify-content: center; line-height: 1; white-space: nowrap; z-index: 2; }

/* Category archives: dedicated navigation above the product grid. */
.dzkeys-category-navigation{margin-block:20px 28px;clear:both}
.dzkeys-category-navigation h2,.dzkeys-archive-products-title{font-size:1.25rem;line-height:1.4;margin:0 0 14px;color:var(--dzkeys-color-heading)}
.dzkeys-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.dzkeys-category-card{display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:2px 10px;min-width:0;padding:10px 12px;border:1px solid var(--dzkeys-color-border);border-radius:var(--dzkeys-radius-control);background:var(--dzkeys-color-surface);color:var(--dzkeys-color-text);text-align:start;text-decoration:none}
.dzkeys-category-card:hover,.dzkeys-category-card:focus-visible{border-color:var(--dzkeys-color-primary)}
.dzkeys-category-media{display:flex;align-items:center;justify-content:center;width:36px;height:36px;grid-row:1 / 3;border-radius:8px;background:var(--dzkeys-color-background);color:var(--dzkeys-color-primary);overflow:hidden}
.dzkeys-category-image{display:block;width:100%;height:100%;aspect-ratio:1;object-fit:contain}
.dzkeys-category-icon{display:block;width:25px;height:25px}
.dzkeys-category-name{font-size:1rem;font-weight:650;line-height:1.4;word-break:normal;overflow-wrap:normal;hyphens:none;max-width:100%}
.dzkeys-category-count{display:block;margin:0;font-size:.75rem;line-height:1.4;color:var(--dzkeys-color-muted);background:transparent}
.dzkeys-archive-products-title{clear:both}
.woocommerce.tax-product_cat ul.products li.dzkeys-product-card{padding:10px}
.woocommerce.tax-product_cat ul.products li.dzkeys-product-card .woocommerce-loop-product__title{font-size:1rem;line-height:1.4;height:2.8em;min-height:2.8em;max-height:2.8em;-webkit-line-clamp:2;overflow-wrap:normal;word-break:normal;hyphens:none}
.woocommerce.tax-product_cat ul.products li.dzkeys-product-card .dzkeys-product-category{font-size:.6875rem;min-height:0;margin:0 0 4px}
.woocommerce.tax-product_cat ul.products li.dzkeys-product-card .price{font-size:.9375rem;min-height:1.5em;line-height:1.5;margin:8px 0}
.woocommerce.tax-product_cat ul.products li.dzkeys-product-card .button{min-height:40px;margin-top:6px;padding:8px 6px;font-size:.8125rem;gap:5px}
.woocommerce.tax-product_cat ul.products li.dzkeys-product-card .dzkeys-direct-whatsapp svg{flex-shrink:0;width:18px;height:18px}
@media(max-width:600px){
 .dzkeys-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .dzkeys-category-card{padding:8px;grid-template-columns:28px minmax(0,1fr);gap:2px 6px}
 .dzkeys-category-name{font-size:.75rem}
 .dzkeys-category-media{width:28px;height:28px}
 .woocommerce.tax-product_cat ul.products:has(>li.dzkeys-product-card){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .woocommerce.tax-product_cat ul.products li.dzkeys-product-card{padding:5px;border-radius:6px}
 .woocommerce.tax-product_cat ul.products li.dzkeys-product-card .woocommerce-loop-product__title{font-size:.75rem;line-height:1.35;height:4.05em;min-height:4.05em;max-height:4.05em;-webkit-line-clamp:3}
 .woocommerce.tax-product_cat ul.products li.dzkeys-product-card .dzkeys-product-category{font-size:.59375rem;line-height:1.3}
 .woocommerce.tax-product_cat ul.products li.dzkeys-product-card .price{font-size:.75rem;line-height:1.4;margin:5px 0}
 .woocommerce.tax-product_cat ul.products li.dzkeys-product-card .button{font-size:.625rem;line-height:1.3;min-height:36px;margin-top:4px;padding:5px 2px;gap:2px}
 .woocommerce.tax-product_cat ul.products li.dzkeys-product-card .dzkeys-direct-whatsapp svg{width:12px;height:12px}
 .woocommerce.tax-product_cat ul.products li.dzkeys-product-card a img{margin-bottom:6px}
 .woocommerce.tax-product_cat .woocommerce-result-count{float:none;margin:0 0 10px;font-size:.875rem}
 .woocommerce.tax-product_cat .woocommerce-ordering{float:none;margin:0 0 18px;width:100%}
 .woocommerce.tax-product_cat .woocommerce-ordering select{width:100%;font-size:.875rem;min-height:42px}
}
