/* Products remain visible before optional filters, on every screen size. */
.shopFull .teaserOnly{display:none}
.shopFull .shopCatalogLayout{display:block;position:relative}
.shopFull .shopFilterToggle{display:inline-flex}
.shopFull .shopFilters{display:none;position:absolute;right:0;top:58px;z-index:15;width:min(360px,100%);max-height:min(72dvh,620px);overflow:auto;padding:18px;box-shadow:0 22px 60px #000b}
.shopFull .shopFilters.filtersOpen{display:block}
.shopFull .productShelf{grid-template-columns:repeat(4,minmax(0,1fr))}
.shopProductVisual:after,.dialogVisual:after{display:none}
.shopProductVisual>.productPhotoPlaceholder,.dialogVisual>.productPhotoPlaceholder{position:static;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;background:none;border:0;border-radius:0;padding:16px;color:#aab6c2;font-size:.85rem;text-transform:none;letter-spacing:0;white-space:normal}
.productPhotoPlaceholder small{font-size:.8rem;font-weight:500;letter-spacing:0;text-transform:none}
.shopProduct .productStatus strong{white-space:normal;overflow-wrap:anywhere;line-height:1.4}
.shopProductTitle{overflow-wrap:anywhere}
.shopProduct :focus-visible{outline:2px solid #f4c542;outline-offset:-3px}
.cartMini{position:relative;overflow:hidden;background:#101923}
.cartMini img{width:100%;height:100%;object-fit:contain}
.cartMini .productPhotoPlaceholder{position:static;display:grid;place-items:center;background:none;border:0;padding:12px;color:#aab6c2}
.cartMini .productPhotoPlaceholder svg{width:35px;height:35px}
.cartItems article>div:nth-child(2){min-width:0;overflow-wrap:anywhere}
.cartFooter>div:first-child{flex-wrap:wrap}
.dialogMeta{flex-wrap:wrap}
.dialogContent{min-width:0;overflow-wrap:anywhere}
.dialogVisual .productPhotoPlaceholder svg{width:64px;height:64px}
@media(max-width:1050px){.shopFull .productShelf{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.shopFull .productShelf{grid-template-columns:repeat(2,minmax(0,1fr))}.shopFull .shopFilters{top:53px}.shopFull .shopFilterToggle span{display:inline}.shopFull .shopToolbar{gap:8px}}
@media(max-width:400px){.shopFull .shopFilterToggle span{display:none}.productPhotoPlaceholder svg{width:36px;height:36px}.productPhotoPlaceholder small{font-size:.72rem}}
@media(max-width:340px){.shopFull .productShelf{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.shopProduct,.cartDrawer{transition:none}.shopProduct:hover{transform:none}}
/* Compact commercial cards: image, aligned name, price, then action. */
.shopFull .productShelf{gap:14px}
.shopProduct{border-radius:14px}
.shopProduct .shopProductVisual{height:155px;padding:12px;background-color:#17212b}
.shopProduct .shopProductInfo{padding:12px;gap:0}
.shopProduct .shopProductInfo h3{font-size:.95rem;line-height:1.3;margin:0 0 10px;min-height:0}
.shopProduct .shopProductTitle{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-height:2.6em;line-height:1.3;font-weight:600}
.shopProduct .productStatus{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;gap:2px;min-height:0;margin-top:0;margin-bottom:10px;padding:0;border:0}
.shopProduct .productStatus .shopPricePrefix{font-size:.7rem;font-weight:400;color:#aeb9c4;line-height:1.2}
.shopProduct .productStatus .shopPriceAmount,.shopProduct .productStatus .shopQuotePrice{font-size:1.03rem;font-weight:750;color:#fff;line-height:1.3}
.shopPriceAmount small{font-size:.68rem;color:#aeb9c4;font-weight:500}
.shopProduct .productActions .shopAdd{min-height:40px;font-size:.8rem;font-weight:650;padding:8px;border-radius:8px}
.shopProductVisual>.shopMarketingBadge{position:absolute;left:9px;top:9px;max-width:calc(100% - 18px);padding:4px 8px;font-size:.7rem!important;line-height:1.2;box-shadow:0 2px 8px #0004;pointer-events:none}
@media(min-width:1200px){.shopFull .productShelf{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:760px){.shopProduct .shopProductVisual{height:132px}.shopProduct .shopProductInfo{padding:10px}.shopProduct .shopProductInfo h3{font-size:.86rem}.shopProduct .productActions .shopAdd{min-height:44px}.shopProduct .productStatus .shopPriceAmount,.shopProduct .productStatus .shopQuotePrice{font-size:.94rem}.shopProductVisual>.shopMarketingBadge{font-size:.65rem!important;padding:4px 7px}}

/* V140: compact retail hierarchy without elastic space before prices. */
.shopProduct .shopProductInfo{flex:0 0 auto}
.shopProduct .shopProductInfo h3{margin-bottom:6px}
.shopProduct .productStatus{min-height:0;justify-content:flex-start}
.shopTeaser .productShelf{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:start}
.productShelf{align-items:start}
.productDialog .dialogContent{padding:28px 24px;align-self:start}
.productDialog .dialogContent h3{font-size:1.5rem;line-height:1.25;margin:8px 0 10px}
.productDialog .dialogContent>p{margin:0;line-height:1.55}
.productDialog .dialogMeta{margin:12px 0;padding:10px 0;gap:10px;align-items:baseline}
.productDialog .dialogMeta strong{font-size:1.15rem;color:#fff}
.nanoReadyBrowse{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;margin-bottom:24px;border:1px solid #ffffff20;border-radius:14px;background:#17212b}
.nanoReadyBrowse h2{font-size:1.1rem;margin:0 0 5px}
.nanoReadyBrowse p{margin:0;color:#aeb9c4;font-size:.9rem}
.nanoReadyBrowse .btn{flex-shrink:0}
@media(max-width:1050px){.shopTeaser .productShelf{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.shopTeaser .productShelf{grid-template-columns:repeat(2,minmax(0,1fr))}.productDialog .dialogContent{padding:20px 18px}.productDialog .dialogVisual{min-height:200px}.nanoReadyBrowse{align-items:flex-start;flex-direction:column;padding:16px}.nanoReadyBrowse .btn{width:100%}}
@media(max-width:340px){.shopTeaser .productShelf{grid-template-columns:1fr}}

/* V142: names and prices follow their content without reserved empty lines. */
.shopProduct .shopProductInfo h3{height:auto;min-height:0;margin:0 0 6px}
.shopProduct .productStatus{height:auto;min-height:0;justify-content:flex-start;margin:0 0 10px}
