.visual-story {
  padding: 44px 0 0;
  background: #faf7fb;
}

.visual-story figure { margin: 0; }

.visual-story img {
  display: block;
  width: 100%;
  height: clamp(280px, 44vw, 520px);
  object-fit: cover;
  border-radius: 24px;
  box-shadow: 0 22px 54px rgba(49, 23, 63, .16);
}

.visual-story figcaption {
  padding: 13px 4px 0;
  color: #675c6c;
  font-size: .92rem;
}

.service-gallery {
  padding: 44px 0 0;
  background: #faf7fb;
}

.service-gallery .wrap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.service-gallery a {
  position: relative;
  min-height: 330px;
  overflow: hidden;
  border-radius: 22px;
  box-shadow: 0 18px 42px rgba(49, 23, 63, .15);
  color: #fff;
  text-decoration: none;
}

.service-gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .35s ease;
}

.service-gallery a::after {
  content: "";
  position: absolute;
  inset: 35% 0 0;
  background: linear-gradient(transparent, rgba(28, 16, 35, .9));
}

.service-gallery span {
  position: absolute;
  z-index: 1;
  left: 24px;
  right: 24px;
  bottom: 22px;
}

.service-gallery strong {
  display: block;
  font-family: Georgia, serif;
  font-size: 1.55rem;
  margin-bottom: 5px;
}

.service-gallery a:hover img { transform: scale(1.035); }

@media (max-width: 800px) {
  .service-gallery .wrap { grid-template-columns: 1fr; }
  .service-gallery a { min-height: 300px; }
  .visual-story { padding-top: 28px; }
  .visual-story img { border-radius: 17px; }
}
