.magazine main {
  flex-grow: 1;
  padding: calc(var(--gap) * 3) var(--gap);
}

.magazine .books-list {
  margin-top: auto;
  padding-top: calc(var(--gap) * 3);
}

.magazine .introduction {
  margin-top: var(--gap);
}

@media (min-width: 50rem) {
  .magazine .introduction {
    width: 50%;
    padding-right: var(--gap);
  }
}

.buy {
  max-width: 25rem;
  display: block;
}

.buy section {
  background-color: var(--accent);
  margin: var(--gap) 0 calc(var(--gap) * 3);
  display: flex;
  gap: var(--gap);
  padding: calc(var(--gap) / 2) var(--gap);
}

.buy h2 {
  padding-top: 1em;
}

.buy svg {
  width: 10%;
  min-width: 3rem;
  margin-left: -0.25em;
  transition: transform 0.2s;
}

.buy:hover svg,
.buy:focus-visible svg {
  transform: rotateZ(-10deg);
}

.buy .button {
  text-align: right;
  margin-top: 0.5em;
}