/*
  bundle-contents: colours come from the picked colour scheme, spacing from the theme's rem scale.
  Everything sits under .bundle-contents so nothing leaks into other sections.
*/

.bundle-contents {
  padding: var(--bundle-pad-top, 2.7rem) 0 var(--bundle-pad-bottom, 2.7rem);
}

.bundle-contents__card {
  padding: 2.4rem 1.6rem;
  border: 0.1rem solid rgba(var(--color-foreground), 0.12);
  border-radius: 2rem;
  color: rgb(var(--color-foreground));
  background: var(--gradient-background);
  box-shadow: 0 1.8rem 4.8rem rgba(var(--color-foreground), 0.1);
}

@media screen and (min-width: 750px) {
  .bundle-contents__card {
    padding: 3.2rem;
  }
}

.bundle-contents__heading {
  margin: 0 0 0.4rem;
  font-size: 2.6rem;
}

.bundle-contents__sub {
  margin: 0 0 2.4rem;
  opacity: 0.75;
}

.bundle-contents__items {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: 1.6rem;
  margin: 0 0 2.4rem;
  padding: 0;
  list-style: none;
}

.bundle-contents__item {
  padding: 1.2rem;
  border: 0.1rem solid rgba(var(--color-foreground), 0.12);
  border-radius: 1.4rem;
}

.bundle-contents__link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.bundle-contents__media {
  position: relative;
  margin-bottom: 1.2rem;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 1rem;
  background: rgba(var(--color-foreground), 0.06);
}

.bundle-contents__media img,
.bundle-contents__media svg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.bundle-contents__name {
  display: block;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.3rem;
}

.bundle-contents__link:hover .bundle-contents__name,
.bundle-contents__link:focus-visible .bundle-contents__name {
  text-decoration-color: currentColor;
}

.bundle-contents__link:focus-visible {
  outline: 0.2rem solid rgb(var(--color-foreground));
  outline-offset: 0.4rem;
}

.bundle-contents__price {
  display: block;
  margin-top: 0.2rem;
  opacity: 0.75;
}

.bundle-contents__totals {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.8rem 2.4rem;
  margin: 0 0 2rem;
  padding-top: 2rem;
  border-top: 0.1rem dashed rgba(var(--color-foreground), 0.3);
}

.bundle-contents__row {
  display: flex;
  align-items: baseline;
  gap: 0.8rem;
}

.bundle-contents__row dt {
  font-size: 1.4rem;
  opacity: 0.75;
}

.bundle-contents__row dd {
  margin: 0;
}

.bundle-contents__row--price dd {
  font-size: 3rem;
  font-weight: 800;
}

.bundle-contents__row--save dd {
  font-weight: 700;
}

.bundle-contents__form {
  margin: 0;
}

.bundle-contents__button {
  min-width: 22rem;
}

.bundle-contents__hint {
  padding: 2rem 0;
  text-align: center;
  opacity: 0.75;
}
