html {
  scroll-behavior: smooth;
}

#products {
  scroll-margin-top: 7rem;
}

.product-card {
  transition: transform 300ms ease, box-shadow 300ms ease;
}

.product-card:hover {
  transform: translateY(-0.25rem);
  box-shadow: 0 24px 55px rgba(16, 24, 40, 0.14);
}

.product-preview {
  height: 240px;
}

.product-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top;
  transition: transform 500ms ease;
}

.product-card:hover .product-preview img {
  transform: scale(1.03);
}

.product-placeholder {
  display: flex;
  min-height: 240px;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #d1fae5 0%, #ffffff 50%, #cffafe 100%);
}

.dark .product-placeholder {
  background: linear-gradient(135deg, #022c22 0%, #161618 50%, #083344 100%);
}

.product-icon-box {
  display: flex;
  width: 4rem;
  height: 4rem;
  margin: 0 auto 1rem;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background: #1a1a1c;
  color: #ffffff;
  font-size: 1.875rem;
}

.dark .product-icon-box {
  background: #ffffff;
  color: #1a1a1c;
}

.product-detail-placeholder {
  display: flex;
  min-height: 520px;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #d1fae5 0%, #ffffff 50%, #cffafe 100%);
}

.dark .product-detail-placeholder {
  background: linear-gradient(135deg, #022c22 0%, #161618 50%, #083344 100%);
}

@media (max-width: 767px) {
  .product-detail-placeholder {
    min-height: 380px;
  }
}

/* The template forces lowercase on .btn / .badge and only re-caps the first
   letter, which mangles product brand names. Opt those back out. */
.btn span.brand-case,
.badge.brand-case {
  text-transform: none;
}

/* ---------------------------------------------------------------------------
   assets/main.css is a pre-built Tailwind bundle, so it only contains the
   utilities the original template used. The product pages need a few more.
   Until the bundle is rebuilt, define them here; they match Tailwind's own
   output, so removing these rules once main.css is regenerated is safe.
   --------------------------------------------------------------------------- */
.max-w-\[760px\] {
  max-width: 760px;
}

.max-w-\[900px\] {
  max-width: 900px;
}

.rounded-\[22px\] {
  border-radius: 22px;
}

.rounded-\[26px\] {
  border-radius: 26px;
}

.rounded-\[28px\] {
  border-radius: 28px;
}

.size-24 {
  width: 6rem;
  height: 6rem;
}

.text-3xl {
  font-size: 1.875rem;
  line-height: 2.25rem;
}

.text-5xl {
  font-size: 3rem;
  line-height: 1;
}

.shadow-xl {
  box-shadow: 0 20px 25px -5px rgba(16, 24, 40, 0.1), 0 8px 10px -6px rgba(16, 24, 40, 0.1);
}

.border-stroke-7 {
  border-color: var(--color-stroke-7);
}

@media (min-width: 80rem) {
  .xl\:pb-\[140px\] {
    padding-bottom: 140px;
  }

  .xl\:pb-\[160px\] {
    padding-bottom: 160px;
  }

  .xl\:pb-\[180px\] {
    padding-bottom: 180px;
  }
}
