/* ===========================
   Global Reset
=========================== */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

img {
  max-width: 100%;     /* never overflow container width */
  height: auto;        /* keep aspect ratio unless overridden */
  display: block;      /* removes inline gaps */
  border: none;
}

/* ===========================
   Product Cards
=========================== */
.product-card {
  opacity: 0;
  transform: translateY(40px);
  transition: all 0.6s ease;
}

.product-card.animate {
  opacity: 1;
  transform: translateY(0);
}

/* Product Images */
.product-img {
  width: 100%;
  height: 250px;        /* lock height for consistency */
  object-fit: cover;    /* crop neatly without stretching */
  border-top-left-radius: .5rem;
  border-top-right-radius: .5rem;
  display: block;
  transition: transform 0.3s ease;
}

.card:hover .product-img {
  transform: scale(1.05);   /* zooms slightly on hover */
}

.card {
  overflow: hidden;    /* prevents zoom from spilling out */
  border-radius: .5rem;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

/* ===========================
   Carousel Images
=========================== */
.carousel-img {
  width: 100%;
  height: 300px;        /* fixed carousel height */
  object-fit: cover;
  display: block;
  border-radius: .5rem;
}

/* ===========================
   About Page
=========================== */
.about-hero {
  background: url('images/about-bg.jpg') center/cover no-repeat;
  height: 350px;
  position: relative;
}

.about-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5); /* dark overlay */
}

.about-hero .container {
  position: relative;
  z-index: 2;
  color: #fff;
  text-align: center;
  padding-top: 120px;
}

.team-img {
  width: 160px;
  height: 160px;
  object-fit: cover;
  border-radius: 50%;
  border: 5px solid #eee;
  margin: 0 auto;
  display: block;
}

/* ===========================
   Scroll Animations
=========================== */

/* Initial hidden state */
.slide-up, .slide-left, .slide-right, .fade-in {
  opacity: 0;
  transition: all 0.8s ease;
}

.slide-left {
  transform: translateX(-50px);
}

.slide-right {
  transform: translateX(50px);
}

.slide-up {
  transform: translateY(40px);
}

.fade-in {
  transform: none;
}

/* When visible */
.animate {
  opacity: 1;
  transform: translate(0,0);
}
