@media (max-width: 1120px) {
  .couple-opening {
    padding-right: 2rem;
    padding-left: 2rem;
  }

  .couple-opening-title {
    font-size: 6.8rem;
  }

  .couple-portrait,
  .couple-together {
    padding-right: 2rem;
    padding-left: 2rem;
  }

  .profile-section {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .profile-section.bride {
    direction: ltr;
  }

  .profile-photo {
    height: 36rem;
  }

  .profile-content {
    padding: 3rem 2rem;
  }

  .together-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(3, 19rem);
  }

  .gallery-item:nth-child(1),
  .gallery-item:nth-child(2),
  .gallery-item:nth-child(4),
  .gallery-item:nth-child(5) {
    grid-column: auto;
    grid-row: auto;
  }

  .gallery-item:nth-child(3) {
    grid-column: 1 / 3;
    grid-row: auto;
  }
}

@media (max-width: 760px) {
  .couple-opening {
    min-height: 100vh;
    min-height: 100svh;
    align-items: start;
    padding: calc(var(--header-height) + 1.4rem) 1rem 3.75rem;
  }

  .couple-opening::after {
    display: none;
  }

  .couple-opening-bg img {
    object-position: 54% center;
  }

  .couple-opening::before {
    background:
      linear-gradient(90deg, rgba(5, 4, 3, 0.66), rgba(5, 4, 3, 0.28)),
      linear-gradient(180deg, rgba(5, 4, 3, 0.04), rgba(5, 4, 3, 0.62));
  }

  .couple-opening-title {
    max-width: 7ch;
    font-size: 4.6rem;
    overflow-wrap: normal;
    word-break: normal;
  }

  .couple-opening-subtitle {
    width: min(100%, 22rem);
    font-size: 1.05rem;
    line-height: 1.44;
  }

  .couple-opening-meta {
    display: grid;
    gap: 0.28rem;
  }

  .couple-opening-meta span + span::before {
    display: none;
  }

  .couple-opening-actions {
    display: grid;
    width: min(100%, 22rem);
    gap: 0.65rem;
  }

  .couple-opening-actions .btn {
    width: 100%;
    min-width: 0;
    white-space: normal;
    text-align: center;
  }

  .couple-portrait {
    grid-template-columns: 1fr;
    padding: 3rem 1rem;
  }

  .couple-portrait h2,
  .together-title {
    font-size: 2.55rem;
  }

  .couple-portrait__frames {
    transform: none;
  }

  .profile-photo {
    height: 30rem;
    min-height: 30rem;
  }

  .profile-content {
    padding: 2rem 1rem;
  }

  .profile-name {
    font-size: 4.4rem;
  }

  .profile-heritage {
    grid-template-columns: 1fr 1fr;
  }

  .divider-text {
    font-size: 2.2rem;
  }

  .couple-together {
    padding: 3rem 1rem;
  }

  .together-gallery {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(5, 17rem);
  }

  .gallery-item:nth-child(1),
  .gallery-item:nth-child(2),
  .gallery-item:nth-child(3),
  .gallery-item:nth-child(4),
  .gallery-item:nth-child(5) {
    grid-column: 1;
    grid-row: auto;
  }

  .together-cta {
    display: grid;
  }

  .together-cta .btn {
    width: 100%;
  }
}

@media (max-width: 420px) {
  .couple-opening-title {
    font-size: 4rem;
  }

  .couple-opening {
    padding-top: calc(var(--header-height) + 1rem);
  }

  .profile-heritage {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .couple-opening-bg,
  .profile-photo img,
  .gallery-item img {
    animation: none;
    transition: none;
    transform: none;
  }
}
