/* Independent product component. No legacy catalog-block or Bootstrap selectors. */
:root{--ode-card-ink:#121212;--ode-card-muted:#626262;--ode-card-field:#f3f3f3;--ode-card-paper:#fff;--ode-card-line:#dcdcdc;--ode-card-action:#183f35;--ode-card-hover:#008560;--ode-card-photo-ratio:1/1.12;--ode-grid-columns:4;--ode-grid-gap:36px 22px}
.ode-product-grid{display:grid;grid-template-columns:repeat(var(--ode-grid-columns),minmax(0,1fr));gap:var(--ode-grid-gap);width:100%;min-width:0}
.ode-tile{position:relative;display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0;height:auto;gap:0;padding:0;margin:0;border:0;background:transparent;font:400 16px/1.5 Onest,sans-serif;color:var(--ode-card-ink);text-align:left;isolation:isolate;box-sizing:border-box}
.ode-tile *{box-sizing:border-box}
.ode-tile :is(button,a.ode-tile-favorite){font:inherit}
.ode-tile .ode-tile-photo{position:relative;aspect-ratio:var(--ode-card-photo-ratio);width:100%;flex-shrink:0;overflow:hidden;background:var(--ode-card-field);border-radius:0}
/* Optical fitting stays on the image; only its stable, centered surface animates. */
.ode-tile .ode-tile-image{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:hidden;margin:0;padding:0;background:var(--ode-card-field);isolation:isolate}
.ode-tile .ode-tile-image>img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;mix-blend-mode:multiply;transform:scale(.64);transition:none}
.ode-tile .ode-tile-image>img.is-alpha-product-photo{transform:translate(var(--product-photo-x,0px),var(--product-photo-y,0px)) scale(var(--product-photo-scale,1))}
/* Reserve the photo field, then show the final optical fit in its first visible frame. */
.product-photos-enabled .ode-tile .ode-tile-image>img:not(.is-product-photo-ready){visibility:hidden}
.ode-tile .ode-tile-head{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:space-between;width:100%;padding:10px;pointer-events:none;z-index:3}
.ode-tile .ode-tile-badges{display:flex;flex-wrap:wrap;gap:5px;max-width:calc(100% - 50px)}
.ode-tile .ode-tile-badge{font:500 11px/1.3 Onest,sans-serif;padding:5px 7px;background:var(--ode-card-paper);color:var(--ode-card-ink)}
.ode-tile .ode-tile-badge--benefit{background:var(--ode-card-ink);color:#fff}
.ode-tile .ode-tile-favorite{position:relative;display:grid;place-items:center;pointer-events:auto;flex:0 0 44px;width:44px;height:44px;margin:-2px -2px 0 0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;color:var(--ode-card-muted);z-index:4;cursor:pointer}
.ode-tile .ode-tile-favorite svg{width:22px;height:22px;fill:none;stroke:currentColor;transition:transform .18s ease}
.ode-tile .ode-tile-favorite svg path{fill:none;stroke:currentColor;stroke-width:1.35}
.ode-tile .ode-tile-favorite.active svg path,.ode-tile .ode-tile-favorite[aria-pressed=true] svg path{fill:var(--ode-card-ink);stroke:var(--ode-card-ink)}
.ode-tile .ode-tile-cart{position:absolute;right:16px;bottom:16px;z-index:5;display:grid;place-items:center;width:48px;height:48px;min-height:44px;padding:0;border:0;border-radius:50%;background:var(--ode-card-action);color:#fff;cursor:pointer;opacity:1;visibility:visible;transform:none;transition:opacity .2s ease,transform .2s ease,background-color .18s ease}
.ode-tile .ode-tile-cart svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
@media(hover:hover) and (pointer:fine){.ode-tile .ode-tile-cart:hover{background:var(--ode-card-hover);color:#fff}}
.ode-tile .ode-tile-content{display:flex;flex-direction:column;flex:1;align-items:stretch;gap:0;width:100%;min-width:0;padding:15px 0 0;text-align:left}
.ode-tile .ode-tile-rating-slot{display:flex;margin:0 0 8px}
.ode-tile .ode-tile-rating{display:inline-flex;align-items:center;gap:7px;max-width:100%;min-height:20px;font:500 13px/1.4 Onest,sans-serif;color:var(--ode-card-muted);text-decoration:none;white-space:nowrap}
.ode-tile .ode-tile-rating:hover{color:var(--ode-card-ink)}
.ode-tile-review-count{color:var(--ode-card-muted);display:inline-flex;gap:6px}
.ode-tile .ode-tile-title{display:block;width:100%;padding:0;margin:0 0 8px;font:450 19px/1.4 Onest,sans-serif;letter-spacing:-.015em;text-align:left;text-transform:none;overflow-wrap:anywhere}
.ode-tile .ode-tile-title a{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;width:100%;margin:0;padding:0;font:inherit;letter-spacing:inherit;line-height:inherit;text-align:inherit;color:inherit;text-decoration:none}
.ode-tile .ode-tile-title a:hover{text-decoration:none}
.ode-tile .ode-tile-family{font:400 14px/1.5 Onest,sans-serif;color:var(--ode-card-muted);margin:0 0 10px;min-height:1.5em}
.ode-tile .ode-tile-price{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:baseline;gap:5px 10px;min-height:1.45em;margin:0;padding:0;font:600 17px/1.45 Onest,sans-serif;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.015em;color:var(--ode-card-ink);text-align:left;white-space:normal;overflow-wrap:anywhere}
.ode-tile .price-new{font:inherit;color:var(--ode-card-ink)}.ode-tile .price-old{font:400 14px/1.4 Onest,sans-serif;color:var(--ode-card-muted);text-decoration:line-through}
.ode-tile .ode-tile-offers{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 12px;font:400 13px/1.6 Onest,sans-serif;color:var(--ode-card-muted);margin:7px 0 0}
.ode-tile .ode-tile-muted{color:var(--ode-card-muted)}
.ode-tile .ode-tile-actions{display:flex;align-items:center;gap:12px;margin-top:14px}
.ode-tile .ode-tile-actions button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px;border:1px solid var(--ode-card-line);background:none;padding:9px 12px;color:var(--ode-card-ink);font:500 14px/1.4 Onest,sans-serif;cursor:pointer}
.ode-tile :is(a,button):focus-visible{outline:2px solid var(--ode-card-action);outline-offset:3px}
.ode-rating-stars{display:inline-block;position:relative;width:78px;height:14px;flex:0 0 78px;vertical-align:middle}
.ode-rating-stars__row{display:flex;gap:2px;width:78px;height:14px;color:var(--ode-card-line)}
.ode-rating-stars__row svg{display:block;width:14px;height:14px;flex:0 0 14px;fill:currentColor;stroke:none}
.ode-rating-stars__fill{display:block;position:absolute;inset:0 auto 0 0;width:var(--rating-fill,0%);overflow:hidden}
.ode-rating-stars__fill .ode-rating-stars__row{color:var(--ode-card-muted)}
.product-rating .ode-rating-stars__fill .ode-rating-stars__row{color:var(--ode-card-ink)}
@media(hover:hover) and (pointer:fine){.ode-tile .ode-tile-cart{opacity:0;visibility:hidden;transform:translateY(7px);pointer-events:none}.ode-tile:hover .ode-tile-cart,.ode-tile:focus-within .ode-tile-cart{opacity:1;visibility:visible;transform:none;pointer-events:auto}.ode-tile .ode-tile-image{transform:translate3d(0,0,0) scale(1);transform-origin:50% 50%;transition:transform .3s ease;will-change:transform}.ode-tile:hover .ode-tile-image{transform:translate3d(0,0,0) scale(1.025)}.ode-tile .ode-tile-favorite:hover svg{transform:scale(1.08)}}
@media(max-width:1024px){:root{--ode-grid-columns:3;--ode-grid-gap:32px 18px}}
@media(max-width:700px){:root{--ode-grid-columns:2;--ode-grid-gap:28px 12px}.ode-tile .ode-tile-head{padding:6px}.ode-tile .ode-tile-title{font-size:16px;line-height:1.45;margin-bottom:8px}.ode-tile .ode-tile-content{padding-top:12px}.ode-tile .ode-tile-price{font-size:16px}.ode-tile .ode-tile-family{font-size:13px}.ode-tile .ode-tile-offers{font-size:12px}.ode-tile .ode-tile-badge{font-size:10px;padding:4px 6px}.ode-tile .ode-tile-cart{width:44px;height:44px;right:10px;bottom:10px}.ode-tile .ode-tile-cart svg{width:20px;height:20px}.ode-tile .ode-tile-rating{font-size:12px;gap:5px}}
@media(prefers-reduced-motion:reduce){.ode-tile .ode-tile-cart,.ode-tile .ode-tile-image,.ode-tile .ode-tile-image>img,.ode-tile .ode-tile-favorite svg{transition:none}.ode-tile .ode-tile-cart,.ode-tile .ode-tile-image,.ode-tile:hover .ode-tile-image{transform:none}.ode-tile .ode-tile-image{will-change:auto}}
.ode-product-heading{font:400 var(--store-section-heading-size,44px)/1.12 Onest,sans-serif;letter-spacing:-.025em;color:var(--ode-card-ink);margin:0 0 24px}

/* Text-only hover: keep the photo, favorite and basket colors unchanged. */
.ode-tile :is(.ode-tile-title,.ode-tile-title a,.ode-tile-family,.ode-tile-price,.price-new,.price-old,.ode-tile-offers,.ode-tile-muted,.ode-tile-rating,.ode-tile-review-count,.ode-tile-badge,.ode-rating-stars__row){transition:color .16s ease}
@media(hover:hover) and (pointer:fine){
 .ode-tile:hover :is(.ode-tile-title,.ode-tile-title a,.ode-tile-family,.ode-tile-price,.price-new,.price-old,.ode-tile-offers,.ode-tile-muted,.ode-tile-rating,.ode-tile-review-count){color:var(--ode-card-hover)}
 .ode-tile:hover :is(.ode-tile-title a,.ode-tile-rating){text-decoration:none}
 .ode-tile:hover .ode-tile-badge--benefit{color:#d2e3d9}
 .ode-tile:hover .ode-rating-stars__fill .ode-rating-stars__row{color:var(--ode-card-hover)}
 .ode-tile:hover .ode-rating-stars>.ode-rating-stars__row{color:#c7d1cc}
 .ode-tile:hover .ode-tile-badge:not(.ode-tile-badge--benefit){color:var(--ode-card-hover)}
}
@media(prefers-reduced-motion:reduce){.ode-tile :is(.ode-tile-title,.ode-tile-title a,.ode-tile-family,.ode-tile-price,.price-new,.price-old,.ode-tile-offers,.ode-tile-muted,.ode-tile-rating,.ode-tile-review-count,.ode-tile-badge,.ode-rating-stars__row){transition:none}}

/* Native link across the tile, with existing controls above it. No click delegation. */
.ode-tile>.ode-tile-link{position:absolute;inset:0;z-index:1;display:block;cursor:pointer}
.ode-tile .ode-tile-photo{z-index:2}
.ode-tile :is(.ode-tile-title a,.ode-tile-rating,.ode-tile-actions button){position:relative;z-index:2}

.favorites-guest-note{max-width:660px;margin:0 0 24px;font:400 14px/1.6 Onest,sans-serif;color:#697b74}.favorites-guest-note a{color:#0d8b6d;text-decoration:underline;text-underline-offset:3px}
