/* Tema Magnetica V2: catalog and listing components only. */
.tm-category{padding-block:var(--mv2-space-6)}
.tm-category__header h1{margin:0}
.tm-category__description{max-width:90ch;color:var(--mv2-color-muted)}
.tm-category-groups{margin-top:var(--mv2-space-6)}
.tm-category-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--mv2-color-line);border-left:1px solid var(--mv2-color-line)}
.tm-category-card{display:grid;grid-template-columns:7rem minmax(0,1fr) auto;align-items:center;min-height:5.5rem;padding:var(--mv2-space-2);gap:var(--mv2-space-3);border-right:1px solid var(--mv2-color-line);border-bottom:1px solid var(--mv2-color-line);color:var(--mv2-color-ink);text-decoration:none}
.tm-category-card:hover{background:var(--mv2-color-soft);color:var(--mv2-color-accent-600)}
.tm-category-card__image{width:7rem;height:5.25rem;aspect-ratio:4/3;object-fit:contain;transition:transform .16s ease}
.tm-category-card:hover .tm-category-card__image{transform:scale(1.03)}
.tm-category-card__name{display:block;overflow:visible;font-weight:600;line-height:1.25}
.tm-category-card__chevron{color:var(--mv2-color-accent-600)}
.tm-listing{margin-top:var(--mv2-space-6)}
.tm-listing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--mv2-space-4);min-height:3.5rem;margin-bottom:var(--mv2-space-4);padding-block:var(--mv2-space-2);border-block:1px solid var(--mv2-color-line)}
.tm-product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--mv2-color-line);border-left:1px solid var(--mv2-color-line)}
.tm-product-card{display:flex;min-width:0;flex-direction:column;padding:var(--mv2-space-4);border-right:1px solid var(--mv2-color-line);border-bottom:1px solid var(--mv2-color-line);background:var(--mv2-color-white)}
.tm-product-card:hover{position:relative;z-index:1;box-shadow:var(--mv2-shadow-md)}
.tm-product-card__link{display:flex;min-height:0;flex:1;flex-direction:column;color:var(--mv2-color-ink);text-decoration:none}
.tm-product-card__title{display:-webkit-box;min-height:4.05em;margin:0 0 var(--mv2-space-3);overflow:hidden;font-size:var(--mv2-text-base);line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:3}
.tm-product-card__media{position:relative;width:100%;margin:0;aspect-ratio:1;background:var(--mv2-color-white)}
.tm-product-card__media img{width:100%;height:100%;aspect-ratio:1;object-fit:contain;transition:transform .16s ease}
.tm-product-card:hover .tm-product-card__media img{transform:scale(1.02)}
.tm-badge{position:absolute;top:var(--mv2-space-2);left:var(--mv2-space-2);padding:var(--mv2-space-1) var(--mv2-space-2);border-radius:var(--mv2-radius-sm);background:var(--mv2-color-accent-600);color:var(--mv2-color-white);font-size:var(--mv2-text-xs);font-weight:700}
.tm-product-card__commercial{margin-top:var(--mv2-space-4)}
.tm-product-card__price{font-size:var(--mv2-text-lg);font-weight:700}
.tm-product-card__regular{margin-right:var(--mv2-space-2);color:var(--mv2-color-muted);font-size:var(--mv2-text-sm);text-decoration:line-through}
.tm-product-card__stock{min-height:1.5rem;margin-top:var(--mv2-space-2);color:var(--mv2-color-success);font-size:var(--mv2-text-sm);font-weight:600}
.tm-product-card__stock[data-state=out]{color:var(--mv2-color-accent-600)}
.tm-product-card__buy{display:grid;grid-template-columns:7rem minmax(0,1fr);gap:var(--mv2-space-2);margin-top:var(--mv2-space-3)}
.tm-quantity__input{width:100%;height:3rem;text-align:center}
.tm-button--buy{min-height:3rem}
.tm-product-card__code{margin-top:var(--mv2-space-3);color:var(--mv2-color-muted);font-size:var(--mv2-text-xs)}
.tm-infinite-scroll{display:grid;justify-items:center;min-height:1px}
.tm-infinite-scroll__load-more[hidden],.tm-infinite-scroll__complete[hidden]{display:none!important}
.tm-infinite-scroll__load-more{margin:var(--mv2-space-6) 0 var(--mv2-space-2)}
.tm-infinite-scroll__load-more[disabled]{cursor:wait;opacity:.82}
.tm-infinite-scroll__load-more[data-loading=true]::before{display:inline-block;width:.9rem;height:.9rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;content:"";animation:tm-infinite-spin .7s linear infinite}
.tm-infinite-scroll__status{min-height:3.5rem;margin:0;padding:var(--mv2-space-4);color:var(--mv2-color-muted);text-align:center}
.tm-infinite-scroll__sentinel{width:100%;height:1px}
.tm-infinite-scroll[data-state=loading] .tm-infinite-scroll__status::before{display:inline-block;width:.9rem;height:.9rem;margin-right:var(--mv2-space-2);border:2px solid currentColor;border-right-color:transparent;border-radius:50%;content:"";vertical-align:-.1rem;animation:tm-infinite-spin .7s linear infinite}
.tm-infinite-scroll[data-state=error] .tm-infinite-scroll__status{color:var(--mv2-color-accent-600)}
.tm-infinite-scroll__complete{position:relative;width:100%;margin-top:var(--mv2-space-6);padding:clamp(1.5rem,4vw,3rem);overflow:hidden;border:1px solid var(--mv2-color-line);background:linear-gradient(135deg,var(--mv2-color-soft) 0%,var(--mv2-color-white) 55%,#f7f9f8 100%);text-align:center}
.tm-infinite-scroll__complete::before{position:absolute;top:0;right:0;left:0;height:.25rem;background:var(--mv2-color-accent-600);content:""}
.tm-infinite-scroll__eyebrow{display:block;margin-bottom:var(--mv2-space-2);color:var(--mv2-color-accent-600);font-size:var(--mv2-text-xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.tm-infinite-scroll__complete h2{margin:0 0 var(--mv2-space-2);font-size:clamp(1.45rem,3vw,2rem)}
.tm-infinite-scroll__complete p{max-width:40rem;margin:0 auto;color:var(--mv2-color-muted)}
.tm-infinite-scroll__categories{display:grid;width:100%;max-width:64rem;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--mv2-space-4);margin:var(--mv2-space-6) auto 0;text-align:left}
.tm-infinite-scroll__category{display:flex;min-width:0;flex-direction:column;overflow:hidden;border:1px solid var(--mv2-color-line);background:var(--mv2-color-white);box-shadow:0 .25rem 1rem rgba(26,47,38,.08);color:var(--mv2-color-ink);text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.tm-infinite-scroll__category:hover{border-color:var(--mv2-color-accent-600);box-shadow:0 .75rem 1.75rem rgba(26,47,38,.16);color:var(--mv2-color-accent-600);transform:translateY(-.25rem)}
.tm-infinite-scroll__category-media{display:block;width:100%;overflow:hidden;aspect-ratio:4/3;background:var(--mv2-color-white)}
.tm-infinite-scroll__category-media img{width:100%;height:100%;object-fit:cover;transition:transform .22s ease}
.tm-infinite-scroll__category:hover .tm-infinite-scroll__category-media img{transform:scale(1.035)}
.tm-infinite-scroll__category-body{display:flex;align-items:center;justify-content:space-between;gap:var(--mv2-space-3);min-height:4.25rem;padding:var(--mv2-space-3) var(--mv2-space-4)}
.tm-infinite-scroll__category-name{font-weight:700;line-height:1.3}
.tm-infinite-scroll__category-arrow{display:inline-flex;width:2rem;height:2rem;flex:0 0 2rem;align-items:center;justify-content:center;background:var(--mv2-color-soft);color:var(--mv2-color-accent-600);font-size:1.1rem;transition:background-color .18s ease,color .18s ease}
.tm-infinite-scroll__category:hover .tm-infinite-scroll__category-arrow{background:var(--mv2-color-accent-600);color:var(--mv2-color-white)}
@keyframes tm-infinite-spin{to{transform:rotate(360deg)}}
@media(max-width:64rem){
 .tm-category-grid,.tm-product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:48rem){.tm-category-grid,.tm-product-grid,.tm-infinite-scroll__categories{grid-template-columns:repeat(2,minmax(0,1fr))}.tm-category-card{grid-template-columns:4rem minmax(0,1fr) auto;min-height:5rem;gap:var(--mv2-space-2)}.tm-category-card__image{width:4rem;height:4rem}}
@media(max-width:29.99rem){.tm-category-card{grid-template-columns:3.625rem minmax(0,1fr) auto;min-height:4.5rem;padding:var(--mv2-space-1)}.tm-category-card__image{width:3.625rem;height:3rem}.tm-category-card__name{font-size:var(--mv2-text-sm)}.tm-product-card{padding:var(--mv2-space-2)}.tm-product-card__title{min-height:5.4em;font-size:var(--mv2-text-sm);-webkit-line-clamp:4}.tm-product-card__buy{grid-template-columns:1fr}.tm-listing-toolbar{align-items:stretch;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.tm-category-card__image,.tm-product-card__media img,.tm-infinite-scroll__category,.tm-infinite-scroll__category-media img,.tm-infinite-scroll__category-arrow{transition:none}.tm-infinite-scroll__category:hover{transform:none}.tm-infinite-scroll[data-state=loading] .tm-infinite-scroll__status::before,.tm-infinite-scroll__load-more[data-loading=true]::before{animation:none}}
