html { overflow-y: scroll; }
body { overflow-x: hidden; max-width: 100%; }
body { font-family: 'Nunito', sans-serif; }
h1,h2,.font-heading { font-family: 'Lexend', sans-serif; font-weight: 900; }

/* Grain overlay on hero */
.hero-grain::before {
  content:'';
  position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  opacity:.35;pointer-events:none;
}

/* Card hover */
.product-card { transition: transform .25s ease, box-shadow .25s ease; }
.product-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(0,0,0,.13); }

/* Shimmer badge */
.badge-hot {
  background: linear-gradient(90deg, #f97316 0%, #fbbf24 40%, #f97316 80%);
  background-size: 200% 100%;
  animation: shimmer 2.5s linear infinite;
}

/* Diagonal ribbon badge */
.ribbon-wrap {
  position: absolute;
  top: 14px; left: 0;
  pointer-events: none;
  z-index: 10;
}
.ribbon {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 14px 5px 10px;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 1.5px;
  color: white;
  border-radius: 0 20px 20px 0;
  box-shadow: 2px 3px 10px rgba(0,0,0,0.35);
}
.ribbon-hot {
  background: linear-gradient(90deg, #f97316, #ef4444);
}
.ribbon-new {
  background: linear-gradient(90deg, #22c55e, #16a34a);
}

/* Nav active */
.nav-link { position:relative; }
.nav-link::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:2px; background:#f97316; border-radius:2px;
  transform:scaleX(0); transition:transform .2s ease;
  transform-origin:left;
}
.nav-link:hover::after, .nav-link.active::after { transform:scaleX(1); }

/* Price tag */
.price-tag {
  background: linear-gradient(135deg, #f97316, #ef4444);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent;
}

/* Category pills */
.cat-pill {
  transition: all .2s ease;
  cursor: pointer;
}
.cat-pill.active, .cat-pill:hover {
  background: #f97316; color: white; border-color: #f97316;
}

/* Scroll animation stagger */
.card-wrap:nth-child(1) .product-card { animation-delay: 0s; }
.card-wrap:nth-child(2) .product-card { animation-delay: .07s; }
.card-wrap:nth-child(3) .product-card { animation-delay: .14s; }
.card-wrap:nth-child(4) .product-card { animation-delay: .21s; }

/* Stock badge */
.stock-ok { background:#dcfce7; color:#15803d; }
.stock-out { background:#fee2e2; color:#dc2626; }
.stock-badge {
  display:inline-flex; align-items:center; gap:3px;
  background:#fff; backdrop-filter:blur(6px);
  color:#15803d; font-size:11px; font-weight:900;
  padding:4px 10px; border-radius:99px;
  box-shadow:0 2px 10px rgba(0,0,0,.2);
  letter-spacing:.4px; line-height:1;
  border:1.5px solid rgba(22,163,74,.25);
}

/* Number ticker animation */
.ticker { animation: pulse2 2s ease-in-out infinite; }

/* Hide number input arrows */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; }

::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 3px; }
::-webkit-scrollbar-thumb { background: #f97316; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #ea6c00; }
* { scrollbar-width: thin; scrollbar-color: #f97316 #f1f5f9; }

/* Hide Alpine x-cloak elements until Alpine initializes */
[x-cloak] { display: none !important; }

/* Flash Sale swipe row */
.flash-scroll::-webkit-scrollbar { display: none; }
.flash-scroll { -ms-overflow-style: none; scrollbar-width: none; }

/* Lightbox image swap transition */
.preview-img { transition: opacity 0.18s ease, transform 0.18s ease; }
.preview-img.fading { opacity: 0; transform: scale(0.96); }
