/* Kositas Box — catálogo y ficha de producto (usa los tokens de styles.css) */
:root{ --wa:#128c4a; }

.catalog{padding-block:var(--space-10) var(--space-16)}
.catalog .head{margin-bottom:var(--space-6)}

.filters{display:flex;gap:var(--space-2);overflow-x:auto;scrollbar-width:none;margin:0 -16px var(--space-6);padding:2px 16px 6px;scroll-snap-type:x proximity}
.filters::-webkit-scrollbar{display:none}
.filter{flex-shrink:0;scroll-snap-align:start;display:inline-flex;align-items:center;min-height:40px;padding:0 16px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--ink);text-decoration:none;font-weight:500;font-size:15px;transition:background-color .15s ease,border-color .15s ease}
.filter:hover{border-color:var(--orchid)}
.filter.is-active{background:var(--orchid);border-color:var(--orchid);color:var(--on-orchid);font-weight:700}

.product-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4) 12px}
.product-card{display:flex;flex-direction:column;height:100%;text-decoration:none;color:var(--ink);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease}
.product-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft);border-color:var(--orchid)}
.product-media{position:relative;aspect-ratio:1;background:var(--blush);overflow:hidden}
.product-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.product-card:hover .product-media img{transform:scale(1.04)}
.tag-new{position:absolute;top:10px;left:10px;background:var(--heart);color:#fff;font:700 11px/16px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;padding:3px 10px;border-radius:var(--radius-pill)}
.tag-inline{position:static;display:inline-block;vertical-align:middle;margin-left:6px}
.product-body{padding:12px 14px 16px;display:flex;flex-direction:column;gap:4px;flex:1}
.product-name{font:500 15px/20px var(--font-sans);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.product-price{margin:auto 0 0;font:700 16px/22px var(--font-sans);color:var(--orchid-deep)}

.pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-top:var(--space-10)}
.pagination a{min-width:44px;height:44px;display:grid;place-items:center;border-radius:var(--radius-pill);border:1px solid var(--line);text-decoration:none;color:var(--ink);font-weight:500;background:var(--surface-raised)}
.pagination a.is-active{background:var(--orchid);border-color:var(--orchid);color:var(--on-orchid);font-weight:700}

.empty-state{text-align:center;padding:var(--space-10) var(--space-4);background:var(--surface-raised);border:1px dashed var(--line);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}
.empty-state p{color:var(--muted);max-width:420px}
.empty-state .script{font-size:44px;line-height:1;color:var(--orchid-deep)}
.empty-state h1{font-size:clamp(28px,4vw,40px)}
.notfound{margin-block:var(--space-16);max-width:640px;margin-inline:auto}

/* Ficha de producto */
.product-page{padding-top:var(--space-4);padding-bottom:var(--space-16)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:14px;color:var(--muted);margin-bottom:var(--space-4)}
.crumbs a{color:var(--muted)}
.product-layout{display:grid;gap:var(--space-6)}
.gallery{min-width:0}
.gallery-main{position:relative;margin:0 -16px}
.gallery-track{list-style:none;margin:0;padding:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-webkit-overflow-scrolling:touch;background:var(--blush)}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-slide{flex:0 0 100%;scroll-snap-align:center;aspect-ratio:1}
.gallery-slide img{width:100%;height:100%;object-fit:contain}
.gallery-nav{display:none;position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:0;background:var(--surface-raised);color:var(--ink);box-shadow:0 4px 16px rgba(0,0,0,.12);font-size:28px;line-height:1;cursor:pointer}
.gallery-nav.prev{left:12px}
.gallery-nav.next{right:12px}
.gallery-nav:disabled{opacity:0;pointer-events:none}
.gallery-counter{position:absolute;right:12px;bottom:12px;background:rgba(9,16,20,.72);color:#fff;font-size:13px;line-height:18px;font-weight:500;padding:3px 10px;border-radius:var(--radius-pill)}
.gallery-thumbs{list-style:none;margin:12px 0 0;padding:0 0 4px;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}
.gallery-thumbs::-webkit-scrollbar{display:none}
.gallery-thumbs a{display:block;width:64px;height:64px;border-radius:12px;overflow:hidden;border:2px solid transparent;opacity:.65;transition:opacity .15s,border-color .15s}
.gallery-thumbs a[aria-current="true"]{border-color:var(--orchid);opacity:1}
.gallery-thumbs img{width:100%;height:100%;object-fit:cover}

.product-cats{list-style:none;margin:0 0 var(--space-2);padding:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.product-cats a{font:700 12px/16px var(--font-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--orchid-deep);text-decoration:none}
.product-title{font-size:clamp(30px,4vw,44px);line-height:1.1;margin:0 0 var(--space-2)}
.product-detail-price{font:700 24px/30px var(--font-sans);color:var(--orchid-deep);margin:0 0 var(--space-6)}
.product-desc{margin-bottom:var(--space-6);overflow-wrap:anywhere}
.btn .icon{width:20px;height:20px}
.product-info .btn-wa{width:100%;justify-content:center}
.wa-note{font-size:14px;line-height:20px;color:var(--muted);margin-top:12px}
.related{margin-top:var(--space-16)}
.related .head{margin-bottom:var(--space-6)}

.sticky-wa{position:fixed;left:0;right:0;bottom:0;z-index:15;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--surface-raised);border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(9,16,20,.08)}
.sticky-wa .btn-wa{width:100%;justify-content:center}
body:has(.sticky-wa) footer{padding-bottom:calc(var(--space-10) + 76px)}

@media (min-width:720px){
  .filters{flex-wrap:wrap;overflow:visible;margin-inline:0;padding:0}
  .product-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-6)}
  .product-name{font-size:16px;line-height:22px}
  .gallery-main{margin:0;border-radius:var(--radius-md);overflow:hidden}
  .gallery-nav{display:grid;place-items:center}
  .gallery-thumbs a{width:80px;height:80px}
}
@media (min-width:960px){
  .product-page{padding-top:var(--space-6)}
  .product-layout{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-10);align-items:start}
  .product-info{position:sticky;top:24px;padding-top:var(--space-2)}
  .product-info .btn-wa{width:auto}
  .sticky-wa{display:none}
  body:has(.sticky-wa) footer{padding-bottom:var(--space-10)}
  body:has(.sticky-wa) .fab{display:grid}
}
@media (min-width:1100px){
  .product-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){ --wa:#3fd27f; } }

/* ===== Portada: 8 destacados con efectos ===== */
.product-hover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s ease,transform .6s ease}
@media (hover:hover){
  .product-card:hover .product-hover{opacity:1;transform:scale(1.04)}
}
.product-grid--home{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:720px){ .product-grid--home{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)} }
@media (min-width:1100px){ .product-grid--home{gap:var(--space-6)} }

/* Aparición escalonada al bajar (solo si hay JS y el usuario no pidió menos movimiento) */
@media (prefers-reduced-motion: no-preference){
  .js [data-reveal] > li{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
  .js [data-reveal] > li.is-in{opacity:1;transform:none}
}
