.mc-shopware {
  --mc-shopware-bg: transparent;
  --mc-shopware-card-bg: #fff;
  --mc-shopware-media-bg: #f4f4f4;
  --mc-shopware-text: #242424;
  --mc-shopware-muted: #666;
  --mc-shopware-border: #dedede;
  --mc-shopware-accent: #0069a6;
  color: var(--mc-shopware-text);
  background: var(--mc-shopware-bg);
}

.mc-shopware-list__items {
  display: grid;
  grid-template-columns: repeat(var(--mc-shopware-columns, 3), minmax(0, 1fr));
  gap: clamp(1rem, 2vw, 1.5rem);
  align-items: stretch;
}

.mc-shopware-product {
  min-width: 0;
}

.mc-shopware-product--card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background: var(--mc-shopware-card-bg);
  border: 1px solid var(--mc-shopware-border);
  border-radius: .35rem;
  box-shadow: 0 .15rem .6rem rgb(0 0 0 / 8%);
}

.mc-shopware-product--card .mc-shopware-product__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 1rem;
}

.mc-shopware-product__media {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  background: var(--mc-shopware-media-bg);
}

.mc-shopware-product__image,
.mc-shopware-product__gallery-image {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
}

.mc-shopware-product__body {
  min-width: 0;
}

.mc-shopware-product__title {
  margin: 0 0 .65rem;
  line-height: 1.25;
}

.mc-shopware-product__number,
.mc-shopware-product__availability,
.mc-shopware-product__delivery {
  color: var(--mc-shopware-muted);
}

.mc-shopware-product__description {
  width: 100%;
  margin-bottom: 1rem;
  line-height: 1.5;
}

.mc-shopware-description--short .mc-shopware-product__description {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  line-clamp: 5;
}

.mc-shopware-product__description > :first-child {
  margin-top: 0;
}

.mc-shopware-product__description > :last-child {
  margin-bottom: 0;
}

.mc-shopware-product__description ul,
.mc-shopware-product__description ol {
  margin: .5rem 0;
  padding-left: 1.35rem;
}

.mc-shopware-product__description li + li {
  margin-top: .2rem;
}

.mc-shopware-product__teaser,
.mc-shopware-product__feature,
.mc-shopware-product__detail {
  display: grid;
  grid-template-columns: minmax(12rem, 1fr) minmax(0, 2fr);
  gap: clamp(1rem, 3vw, 2rem);
  align-items: start;
}

.mc-shopware-product__minimal {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem 1rem;
  align-items: center;
  justify-content: space-between;
  padding: .75rem 0;
  border-bottom: 1px solid var(--mc-shopware-border);
}

.mc-shopware-product__minimal .mc-shopware-product__title,
.mc-shopware-product__minimal .mc-shopware-product__price {
  margin: 0;
}

.mc-shopware-product__price {
  display: flex;
  gap: .5rem;
  margin: auto 0 .75rem;
  font-size: 1.05rem;
  font-weight: 700;
}

.mc-shopware-product__price del {
  color: var(--mc-shopware-muted);
  font-weight: 400;
}

.mc-shopware-product__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem;
  padding: .55rem 1rem;
  color: #fff;
  text-decoration: none;
  background: var(--mc-shopware-accent);
  border: 1px solid var(--mc-shopware-accent);
  border-radius: .2rem;
}

.mc-shopware-product__cta:hover,
.mc-shopware-product__cta:focus-visible {
  color: #fff;
  filter: brightness(.9);
}

.mc-shopware-product__gallery {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}

.mc-shopware-product__property {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) 2fr;
  gap: 1rem;
  padding: .35rem 0;
  border-bottom: 1px solid var(--mc-shopware-border);
}

.mc-shopware--dark {
  --mc-shopware-bg: #171717;
  --mc-shopware-card-bg: #242424;
  --mc-shopware-media-bg: #fff;
  --mc-shopware-text: #f5f5f5;
  --mc-shopware-muted: #c4c4c4;
  --mc-shopware-border: #424242;
  --mc-shopware-accent: #168dca;
  padding: clamp(1rem, 2.5vw, 2rem);
}

@media (max-width: 64rem) {
  .mc-shopware-columns--3 .mc-shopware-list__items,
  .mc-shopware-columns--4 .mc-shopware-list__items,
  .mc-shopware-columns--5 .mc-shopware-list__items,
  .mc-shopware-columns--6 .mc-shopware-list__items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 48rem) {
  .mc-shopware-list__items {
    grid-template-columns: 1fr;
  }

  .mc-shopware-product__teaser,
  .mc-shopware-product__feature,
  .mc-shopware-product__detail {
    grid-template-columns: 1fr;
  }

  .mc-shopware-product__property {
    grid-template-columns: 1fr;
    gap: .15rem;
  }
}
