/* Square media must not use an image's intrinsic min-content height. */
.product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px;align-items:start}
.product-card{border-radius:15px;cursor:pointer;line-height:1.35}.product-open{display:block;width:100%;min-width:0;padding:0;text-align:left;line-height:1.35}.product-photo{display:block;position:relative;width:100%;height:auto;aspect-ratio:1;min-height:0}
.product-photo img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.product-copy{display:block;padding:7px 9px 0}.product-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:31px;margin:3px 0;font-size:12px;font-weight:750;line-height:1.3;color:#3e5035}
.product-copy .package{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-info{padding:0 9px 8px}.compact-info .product-tags{margin:5px 0 3px;gap:3px;flex-wrap:nowrap;overflow:hidden}.compact-info .tag{font-size:9px;padding:2px 4px;white-space:nowrap}.compact-info .tax-note{margin:0;font-size:8px;line-height:1.5}.compact-info .expiry-note{font-size:9px;line-height:1.4;margin-top:4px;padding-top:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.group-price-line{display:flex;align-items:baseline;gap:2px 5px;flex-wrap:wrap;line-height:1.15;min-width:0}.group-price-line>strong{font-size:24px;letter-spacing:-.7px;color:#ed7926;font-variant-numeric:tabular-nums}.group-price-caption{display:inline-flex;align-items:center;gap:2px;white-space:nowrap;color:#b87533;font-size:10px;font-weight:650}.group-price-line del{font-size:10px;color:#a0ab96}.price-help{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;padding:0;border:0;border-radius:50%;background:transparent;position:relative;font-size:11px;color:#879b77;font-weight:650;line-height:1;vertical-align:middle}.price-help::before{content:"";position:absolute;inset:6px;border:1px solid #b8c9ac;border-radius:50%}.price-help:hover,.price-help:focus-visible{background:#eff7e8;color:#3e765b}
#priceHelpDialog{position:fixed;inset:0;margin:auto;width:min(380px,calc(100% - 32px));max-width:calc(100% - 32px);height:fit-content;max-height:85dvh;padding:24px;border-radius:22px;overflow:auto}#priceHelpTitle{font-size:19px;margin:0 0 15px;color:#405d36}#priceHelpText{font-size:15px;line-height:1.9;color:#5c754e;margin:0}#priceHelpNotice{font-size:11px;line-height:1.8;color:#8e9d80;margin:14px 0 18px}#closePriceHelp{width:100%;min-height:44px;background:#fff0dc;border:1px solid #f1d8ae;color:#a66f30;border-radius:12px;font-weight:700}
.detail-image-frame{position:relative;width:100%;aspect-ratio:1;overflow:hidden;background:#f1f6e9;border-radius:17px}#productDialog .detail-image-frame .detail-main-img{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:1;object-fit:contain;border-radius:0}.detail-info .group-price-line{margin:10px 0 3px}.detail-info .group-price-line>strong{font-size:32px}.detail-info .group-price-caption{font-size:12px}.ride-panel>.group-price-line{margin:-10px 0 12px}
@media(min-width:1400px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 6px}.product-card{border-radius:11px}.product-copy{padding:5px 6px 0}.product-copy .merchant-name{font-size:8px}.product-title{font-size:10px;min-height:26px;line-height:1.3;margin:3px 0 2px}.product-copy .package{font-size:8px}.compact-info{padding:0 6px 6px}.compact-info .product-tags{margin:4px 0 2px;gap:2px}.compact-info .tag{font-size:7px;padding:2px}.group-price-line{gap:0 3px}.group-price-line>strong{font-size:20px;letter-spacing:-.8px}.group-price-caption{font-size:8px;gap:0}.group-price-line del{font-size:8px}.price-help{width:26px;height:26px;min-width:26px;min-height:26px;font-size:10px}.price-help::before{inset:6px}.compact-info .tax-note{font-size:7px}.compact-info .expiry-note{font-size:7px;margin-top:3px;padding-top:3px}.product-photo .discount-badge{top:5px;left:5px;font-size:8px;padding:3px 4px}.product-photo .stock-badge{font-size:7px;padding:3px 4px;right:4px;bottom:4px}.detail-image-frame{max-width:min(100%,44dvh);margin-inline:auto}.detail-info .group-price-line>strong{font-size:29px}.detail-info .group-price-caption{font-size:11px}}
@media(max-width:350px){.group-price-line>strong{font-size:18px}.compact-info .group-price-caption{flex-basis:100%}.product-copy .merchant-name{font-size:7px}}
@media(max-width:600px){.compact-info .group-price-line>strong.long-price{font-size:12px;letter-spacing:-.6px}}
.compact-info .tax-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 3px}.compact-info .tax-note del{font-size:8px;color:#a2ad99}
.compact-info .expiry-note{display:grid;gap:1px;white-space:normal}.compact-info .expiry-note>span{font-size:8px;line-height:1.2}.compact-info .expiry-note time{font-size:9px;line-height:1.2;white-space:nowrap}
@media(max-width:600px){.product-copy{padding-top:3px}.compact-info{padding-bottom:4px}.compact-info .product-tags{margin:2px 0 1px}.compact-info .expiry-note{gap:0}}
/* Keep the card's information hierarchy without duplicating the full detail sheet. */
.card-byline{display:flex;gap:4px;align-items:center;min-width:0}.card-byline .merchant-name{flex:1;min-width:0}.card-byline del{flex-shrink:0;font-size:9px;color:#a1ae97}.product-title{min-height:0}
.product-photo>.product-tags{position:absolute;left:5px;right:5px;bottom:5px;margin:0;display:flex;gap:3px;flex-wrap:nowrap;overflow:hidden}.product-photo .tag{font-size:9px;padding:2px 4px;white-space:nowrap;background:#edf5e6ee}.product-photo .tag.reason{background:#fff0ddee}.product-photo .stock-badge{bottom:29px}
@media(max-width:600px){.product-title{min-height:0}.card-byline del{font-size:8px}.product-photo>.product-tags{left:4px;right:4px;bottom:4px;gap:2px}.product-photo .tag{font-size:8px;padding:2px 3px}.compact-info .group-price-line{align-items:center}.compact-info .expiry-note{margin-top:2px;padding-top:2px}}
