/* Shared cards for category grids and homepage lists. */
.wb-product { position:relative; }
.wb-product .wb-product__meta { display:flex; flex-direction:row; flex-wrap:nowrap; align-items:center; justify-content:flex-start; gap:8px; }
.wb-product .wb-product__quick,.wb-product .wb-compare-toggle { box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; min-height:40px; height:40px; margin:0; line-height:1.2; }
.wb-product .wb-product__quick { padding:8px 10px; white-space:nowrap; font:600 14px/1.35 Onest,Arial,sans-serif; }
.wb-product .wb-compare-toggle { gap:5px; padding:8px 5px; border:1px solid transparent; border-radius:8px; font-size:12px; }
.wb-product .wb-compare-toggle:hover,.wb-product .wb-compare-toggle.is-active,.wb-product .wb-compare-toggle[aria-pressed=true] { background:#edf6f2; }
.wb-product .wb-compare-toggle svg { flex:none; }
.wb-product__stock { display:flex; align-items:center; gap:6px; margin-top:8px; color:#3f6554; font-size:14px; font-weight:500; line-height:1.5; }
.wb-product__stock > span { flex:none; width:5px; height:5px; border-radius:50%; background:currentColor; }
.wb-product__stock--unavailable { color:#93817d; }
.wb-product__availability { display:flex; align-items:center; justify-content:space-between; gap:6px; min-width:0; margin-top:8px; }
.wb-product__availability .wb-product__stock { min-width:0; margin:0; }
.wb-card-rating { display:inline-flex; flex:none; align-items:center; gap:5px; margin-left:auto; min-height:24px; color:#805b18; text-decoration:none; }
.wb-card-rating b { font:600 12px/1.4 Onest,Arial,sans-serif; }
.wb-card-rating__stars { display:block; flex:none; width:65px; height:13px; background:linear-gradient(to right,#d8a321 var(--wb-rating-fill),#dde7e2 var(--wb-rating-fill)); -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3 6.1 6.7 1-4.9 4.7 1.2 6.7-6-3.2-6 3.2 1.2-6.7-4.9-4.7 6.7-1Z'/%3E%3C/svg%3E") left center/13px 13px repeat-x; mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m12 2 3 6.1 6.7 1-4.9 4.7 1.2 6.7-6-3.2-6 3.2 1.2-6.7-4.9-4.7 6.7-1Z'/%3E%3C/svg%3E") left center/13px 13px repeat-x; }
.wb-card-rating:hover { color:#356c53; }
.wb-card-rating:focus-visible { outline:2px solid #83b7a0; outline-offset:3px; border-radius:4px; }
.wb-product__bonus { display:inline-flex; align-items:center; gap:6px; max-width:100%; box-sizing:border-box; margin:8px 0 0; padding:6px 8px; border-radius:6px; background:#e8f4ef; color:#336850; font-size:13px; font-weight:500; line-height:1.5; }
.wb-product__bonus svg { flex:none; width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.3; stroke-linejoin:round; }
.wb-product .wb-product__price { color:#294f3e; font-size:20px; font-weight:700; line-height:1.35; font-variant-numeric:lining-nums tabular-nums; }
.wb-product--catalog .wb-product__price-row--sale .wb-product__price { color:#3c7b5f; font-size:21px; }
.wb-product .wb-product__compare,.wb-product--catalog .wb-product__price-row--sale .wb-product__compare { color:#6a7872; font-size:13px; line-height:1.4; }
.wb-product__price-values { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 8px; }
.wb-product--catalog .wb-product__price-row { display:flex; flex-wrap:nowrap; align-items:center; justify-content:space-between; gap:6px; min-height:50px; }
.wb-product--catalog .wb-product__price-values { flex-direction:column; align-items:flex-start; justify-content:center; gap:2px; min-width:0; }
.wb-product__saving { display:inline-flex; align-items:center; justify-content:center; flex:none; box-sizing:border-box; gap:7px; margin:0; padding:7px 9px; border:1px solid #e6bfad; border-radius:8px; background:linear-gradient(115deg,#fbe9dd,#e6f3ed); color:#3f8163; font-size:12px; line-height:1.35; }
.wb-product__saving-percent { padding-right:7px; border-right:1px solid #ddb6ae; font-size:14px; font-weight:700; white-space:nowrap; }
.wb-product__saving-info { display:grid; gap:1px; text-align:center; }
.wb-product__saving strong { font-weight:700; white-space:nowrap; }
.wb-card-gallery { position:relative; width:100%; height:100%; }
.wb-product__badge { pointer-events:none; }
.wb-card-gallery__link { display:block; width:100%; height:100%; touch-action:pan-y pinch-zoom; -webkit-user-drag:none; }
.wb-card-gallery__link img { width:100%; height:100%; object-fit:cover; object-position:center top; user-select:none; -webkit-user-drag:none; }
.wb-card-gallery__link img[hidden] { display:none!important; }
.wb-card-gallery__dots { display:flex; position:absolute; z-index:3; bottom:0; left:8px; right:8px; gap:3px; }
.wb-card-gallery__dots button { flex:1; min-width:0; height:36px; padding:13px 0; border:0; background:none; cursor:pointer; }
.wb-card-gallery__dots span { display:block; height:3px; border-radius:3px; background:rgba(255,255,255,.84); box-shadow:0 1px 4px #29443835; transition:background .18s; }
.wb-card-gallery__dots [aria-pressed=true] span { background:var(--wb-accent,#356c53); }
.wb-card-gallery__dots button:focus-visible { outline:2px solid var(--wb-accent,#356c53); outline-offset:0; border-radius:4px; }
.wb-card-details { margin:10px 0 0; }
.wb-card-details__content { color:#345546; }
.wb-card-details__sizes { display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:14px; font-weight:500; line-height:1.5; }
.wb-card-details__sizes > span { min-width:32px; box-sizing:border-box; padding:4px 7px; border:1px solid #bad4c8; border-radius:5px; background:#fff; text-align:center; overflow-wrap:anywhere; }
.wb-card-details__article { margin:10px 0 0; color:#547164; font-size:12px; font-weight:500; line-height:1.6; overflow-wrap:anywhere; }
.wb-card-details__article span { color:#345546; }
.wb-card-gallery__dots button { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
.wb-catalog .wb-filter-choice,.wb-filter-form .wb-filter-choice,.wb-filter-quick .wb-filter-choice { min-height:34px; padding:5px 0; font-size:13px; line-height:1.5; gap:9px; }
.wb-filter-quick { padding-top:12px; padding-bottom:12px; }
.wb-filter-actions .wb-btn { font:600 14px/1.5 Onest,Arial,sans-serif; }
.wb-filter-choice input[type=checkbox] { flex:none; margin:0; }
@media(min-width:801px) and (hover:hover) and (pointer:fine) {
 .wb-card-gallery__dots { opacity:0; transition:opacity .18s; }
 .wb-product:hover .wb-card-gallery__dots,.wb-product:focus-within .wb-card-gallery__dots { opacity:1; }
 .wb-product--catalog:has(.wb-card-details):is(:hover,:has(:focus-visible)):not(.wb-product--details-dismissed) { z-index:5; }
 /* A separate surface casts the shadow without rasterizing the card's live text. */
 .wb-product--catalog:has(.wb-card-details)::before { content:""; position:absolute; inset:-10px -10px 0; z-index:-1; border-radius:16px 16px 0 0; background:#fffdfb; box-shadow:0 -4px 22px #28493a18; visibility:hidden; pointer-events:none; }
 .wb-card-details { margin:0; }
 .wb-card-details__content { position:absolute; top:100%; left:-10px; right:-10px; padding:0 10px 16px; border-radius:0 0 16px 16px; background:#fffdfb; box-shadow:0 14px 18px -8px #28493a26; visibility:hidden; opacity:0; transition:opacity .16s; }
 .wb-product--catalog:is(:hover,:has(:focus-visible)):not(.wb-product--details-dismissed)::before,
 .wb-product--catalog:is(:hover,:has(:focus-visible)):not(.wb-product--details-dismissed) .wb-card-details__content { visibility:visible; opacity:1; }
 html.wb-quick-open .wb-product--catalog { filter:none!important; }
 html.wb-quick-open .wb-product--catalog::before,html.wb-quick-open .wb-product--catalog .wb-card-details__content { visibility:hidden!important; opacity:0!important; }
}
@media(max-width:600px) {
 .wb-product .wb-compare-toggle { flex:none; width:40px; padding:9px; }
 .wb-product .wb-compare-toggle span { display:none; }
 .wb-product .wb-product__quick { flex:1; padding:8px 6px; gap:5px; font-size:12px; }
 .wb-product .wb-product__meta { gap:4px; }
 .wb-product__bonus { font-size:12px; align-items:flex-start; gap:4px; padding:5px; }
 .wb-product__bonus svg { width:13px; height:13px; margin-top:1px; }
 .wb-product__stock { font-size:12px; gap:4px; }
 .wb-card-rating { gap:3px; }
 .wb-card-rating b { font-size:12px; }
 .wb-card-rating__stars { width:45px; height:10px; -webkit-mask-size:9px 10px; mask-size:9px 10px; }
 .wb-product .wb-product__price,.wb-product--catalog .wb-product__price-row--sale .wb-product__price { font-size:18px; }
 .wb-product .wb-product__compare,.wb-product--catalog .wb-product__price-row--sale .wb-product__compare { font-size:12px; }
 .wb-product__saving { min-width:0; flex-direction:column; gap:1px; font-size:12px; padding:4px 5px; }
 .wb-product__saving-percent { padding:0; border:0; font-size:12px; }
 .wb-product__saving-info>span { display:none; }
 .wb-card-gallery__dots button { height:44px; padding:17px 0; }
 .wb-card-details__sizes { font-size:13px; gap:4px; }
 .wb-card-details__sizes > span { min-width:27px; padding:3px 5px; }
 .wb-card-details__article { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { .wb-card-gallery__dots,.wb-card-gallery__dots span,.wb-card-details__content { transition:none; } }
@media(max-width:360px) { .wb-product .wb-product__quick { gap:3px; padding-inline:4px; }.wb-product__availability { gap:4px; }.wb-product__stock { font-size:12px; gap:3px; }.wb-product__stock>span { width:3px; height:3px; }.wb-card-rating b { font-size:12px; }.wb-card-rating__stars { width:35px; height:9px; -webkit-mask-size:7px 9px; mask-size:7px 9px; } }
.wb-card-gallery,.wb-card-gallery__dots,.wb-card-gallery__dots button { touch-action:pan-y pinch-zoom!important; }
/* Give the narrowest two-card layouts a few extra text pixels; retain five
   stars, the numeric score and complete stock wording without clipping. */
@media(max-width:360px) {
 .wb-body .wb-catalog-results:not([data-wb-mobile-columns="1"]) .wb-product.wb-product--catalog .wb-product__body,
 .wb-body .wb-detail-products .wb-product.wb-product--catalog .wb-product__body { padding-inline:6px; }
 .wb-product__stock:not(.wb-product__stock--unavailable) { white-space:nowrap; }
 .wb-product .wb-product__price,.wb-product--catalog .wb-product__price-row--sale .wb-product__price { font-size:16px; white-space:nowrap; }
 .wb-product--catalog .wb-product__price-row { gap:4px; }
 .wb-product__saving { padding:3px; font-size:12px; }
 .wb-product__saving-percent { font-size:12px; }
}
