.home-page .hero {
  min-height: auto;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(32px, 4vw, 64px);
  padding-block: clamp(48px, 6vw, 88px);
}
.home-page .hero__content { min-width: 0; }
.home-page .hero h1 { font-size: clamp(2.6rem, 4.4vw, 4.6rem); line-height: 1.28; }
.home-page .hero__visual--wedding {
  width: 100%; max-width: 620px; margin: 0; padding: 0; justify-self: end;
}
.home-page .hero__visual--wedding::before { content: none; }
.home-page .hero__visual--wedding img {
  width: 100%; height: auto; aspect-ratio: 1; object-fit: contain;
  border-radius: 28px; box-shadow: 0 20px 55px rgba(69, 24, 47, .14);
}
.hero__visual--wedding figcaption {
  padding: 18px 8px 0; color: var(--muted); text-align: center;
  font-size: .95rem; line-height: 1.6;
}
@media (max-width: 980px) {
  .home-page .hero { grid-template-columns: 1fr; gap: 36px; }
  .home-page .hero__visual--wedding { max-width: 640px; justify-self: center; }
}
@media (max-width: 680px) {
  .home-page .hero { padding-block: 40px 54px; gap: 28px; }
  .home-page .hero h1 { font-size: clamp(2.4rem, 9.5vw, 3.5rem); }
  .home-page .hero__visual--wedding img { border-radius: 20px; }
  .hero__visual--wedding figcaption { padding-top: 14px; font-size: .9rem; }
}
