@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400&display=swap');

body {
  font-family: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.line-clamp-2 {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Product card */
.shop-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  overflow: hidden;
  transition: box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.shop-card:hover {
  border-color: #bbf0d0;
  box-shadow: 0 10px 25px -8px rgba(26, 143, 76, 0.18);
  transform: translateY(-2px);
}

.shop-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border-radius: .625rem;
  background: #1a8f4c;
  color: #fff;
  font-weight: 600;
  font-size: .8125rem;
  padding: .55rem 1rem;
  border: 1px solid #157a41;
  cursor: pointer;
  transition: background .15s ease, transform .15s ease;
}
.shop-btn-primary:hover { background: #136b3a; }
.shop-btn-primary:disabled { opacity: .5; cursor: not-allowed; }

.shop-btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  border-radius: .625rem;
  background: #fff;
  color: #1a8f4c;
  font-weight: 600;
  font-size: .8125rem;
  padding: .55rem 1rem;
  border: 1px solid #bbf0d0;
  cursor: pointer;
  transition: background .15s ease;
}
.shop-btn-secondary:hover { background: #f0fdf5; }

.shop-badge-outofstock {
  background: #fef2f2;
  color: #b91c1c;
  border: 1px solid #fecaca;
}

.shop-toast {
  position: fixed;
  bottom: 1.25rem;
  right: 1.25rem;
  z-index: 60;
  background: #0f172a;
  color: #fff;
  padding: .75rem 1.1rem;
  border-radius: .75rem;
  font-size: .8125rem;
  font-weight: 500;
  box-shadow: 0 10px 25px rgba(0,0,0,.2);
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .2s ease, transform .2s ease;
  pointer-events: none;
}
.shop-toast.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Categorie homepage: card con foto a tutta larghezza e sfumatura colore da sinistra */
.shop-cat-card {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 1.5rem;
  transition: transform .2s ease, box-shadow .2s ease;
}
.shop-cat-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px -8px rgba(15, 23, 42, 0.15);
}
.shop-cat-photo {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center right;
}
.shop-cat-fade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, var(--fade-color, #e2dad7) 0%, var(--fade-color, #e2dad7) 38%, transparent 80%);
}
