
/* container spacing */
.product-cat-carousel { margin: 56px 0; padding: 8px 0; }
.carousel-header { align-items:baseline; gap:1rem; margin-bottom:18px; }
.cat-title { font-size:1.5rem; margin:0; font-weight:700; }
.cat-desc { margin:0; color:#666; font-size:0.95rem; }

/* Swiper slide card */
.carousel-product-card.card {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 6px 16px rgba(17,17,17,0.06);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 12px;
  height: 100%;
}

/* clickable image area */
.card-image {
  width: 100%;
  aspect-ratio: 1 / 1; /* keeps image square */
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #f7f5f2; /* subtle off-white like your theme */
  border-radius: 8px;
  margin-bottom: 12px;
}

/* ensure images fit and centered */
.card-image img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

/* body */
.card-body { display:flex; flex-direction:column; gap:8px; flex:1; }

/* title bold and slightly larger */
.product-title { font-size: 1.02rem; font-weight: 700; margin: 0; line-height:1.2; }
.product-title a { color: #111; text-decoration: none; }

/* short description below title - muted */
.product-short-desc { margin: 0; font-size: 0.92rem; color: #6b6b6b; }

/* price stands out under desc */
.card-meta { margin-top: 4px; }
.price { display:block; font-weight:700; color:#2d7a2d; font-size:1rem; }

/* Add-to-cart button area */
.card-cta { margin-top: auto; }
.card-cta .button {
  display: inline-block;
  width: 100%;
  text-align: center;
  padding: 14px 18px;
  border-radius: 10px;
  background: #197f2c; /* green */
  color: #fff;
  border: none;
  font-weight:700;
  text-decoration: none;
  box-shadow: 0 6px 0 rgba(0,0,0,0.05);
}

/* smaller/select options state (WC may output different classes) */
.card-cta .button.alt, .card-cta .added_to_cart {
  background: #197f2c;
}

/* spacing tweaks for swiper wrapper */
.swiper-wrapper { align-items: stretch; }
.swiper-slide { display:flex; height:100%; box-sizing: border-box; padding:8px; }

/* responsive tweaks */
@media (max-width:640px) {
  .cat-title { font-size:1.2rem; }
  .card-cta .button { padding:12px; }
}