.site-visual {
  margin: clamp(1.5rem, 4vw, 2.5rem) 0;
}

.site-visual__scroll {
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  padding: 2px 2px .45rem;
  border-radius: var(--radius-xl);
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--accent) 38%, var(--line)) transparent;
}

.site-visual img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--radius-xl);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.site-visual figcaption {
  margin: .8rem 0 0;
  max-width: 76ch;
  color: var(--text-subtle);
  font-size: .88rem;
  line-height: 1.65;
}

.site-visual figcaption a {
  font-weight: 600;
}

.site-visual--practice {
  margin-top: 1.35rem;
  margin-bottom: 1.8rem;
}

.site-visual--practice .site-visual__scroll img {
  min-width: 75rem;
}

.page-section--framework-visual {
  padding-top: 0;
  padding-bottom: clamp(3rem, 6vw, 5rem);
}

.page-section--framework-visual .container {
  max-width: var(--max);
}

.site-visual--framework {
  margin: 0;
}

@media (max-width: 720px) {
  .site-visual--framework .site-visual__scroll img {
    min-width: 58rem;
  }
}

@media (max-width: 640px) {
  .site-visual img,
  .site-visual__scroll {
    border-radius: var(--radius-md);
  }

  .site-visual figcaption {
    font-size: .82rem;
  }
}
