/* Final invitation interaction refinements. Loaded after the legacy theme. */
.section.is-anchor-target .reveal,
.section.is-anchor-target .motion-item {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}

@media (max-width: 760px), (hover: none) and (pointer: coarse) {
  .reveal {
    transform: translateY(12px);
    transition-duration: 0.42s;
  }

  .motion-item {
    --motion-delay: 0ms !important;
    transition-duration: 0.44s, 0.5s;
  }

  body.is-interactive-section .floating-music-toggle {
    left: -16px !important;
    width: 42px !important;
    height: 42px !important;
    opacity: 0.58 !important;
  }

  body.is-interactive-section .quick-dock.is-collapsed {
    right: -16px !important;
    opacity: 0.58 !important;
  }

  body.is-interactive-section .quick-dock.is-collapsed .quick-dock-toggle {
    width: 42px !important;
    height: 42px !important;
  }

  body.is-form-interacting .floating-music-toggle,
  body.is-form-interacting .quick-dock.is-collapsed {
    opacity: 0.28 !important;
  }

  .rsvp-section .form,
  .message-section .message-form {
    scroll-margin-bottom: 76px;
  }
}

@media (min-width: 961px) {
  .gallery.gallery-layout-four,
  .gallery.gallery-layout-six,
  .gallery.gallery-layout-eight {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-flow: row dense !important;
    grid-template-areas: none !important;
    width: min(1180px, calc(100% - 64px)) !important;
    margin-inline: auto !important;
  }

  .gallery.gallery-layout-four .gallery-editorial-copy,
  .gallery.gallery-layout-six .gallery-editorial-copy,
  .gallery.gallery-layout-eight .gallery-editorial-copy {
    grid-column: 1 / -1 !important;
  }

  .gallery.gallery-layout-four .gallery-frame.is-portrait,
  .gallery.gallery-layout-six .gallery-frame.is-portrait,
  .gallery.gallery-layout-eight .gallery-frame.is-portrait,
  .gallery.gallery-layout-four .gallery-frame.is-square,
  .gallery.gallery-layout-six .gallery-frame.is-square,
  .gallery.gallery-layout-eight .gallery-frame.is-square {
    grid-column: span 1 !important;
  }

  .gallery.gallery-layout-four .gallery-frame.is-landscape,
  .gallery.gallery-layout-six .gallery-frame.is-landscape,
  .gallery.gallery-layout-eight .gallery-frame.is-landscape {
    grid-column: 1 / -1 !important;
    aspect-ratio: 16 / 10 !important;
  }

  .gallery.gallery-layout-four .gallery-frame.is-wide,
  .gallery.gallery-layout-six .gallery-frame.is-wide,
  .gallery.gallery-layout-eight .gallery-frame.is-wide {
    grid-column: 1 / -1 !important;
    aspect-ratio: 16 / 9 !important;
  }
}

.message-section .guestbook-controls {
  justify-self: center !important;
  width: fit-content !important;
  min-height: 56px !important;
  margin: 12px auto 0 !important;
  padding: 7px 10px !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 999px !important;
  background: rgba(24, 24, 35, 0.82) !important;
  box-shadow: 0 14px 34px rgba(10, 10, 18, 0.34), inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.15);
  backdrop-filter: blur(14px) saturate(1.15);
  opacity: 0.96 !important;
  transform: translateY(-4px);
}

.message-section .guestbook-controls.is-open {
  opacity: 1 !important;
}

.message-section .guestbook-control {
  border-color: rgba(255, 247, 240, 0.38) !important;
  color: #fffaf6 !important;
  background: linear-gradient(145deg, rgba(190, 91, 101, 0.96), rgba(139, 60, 72, 0.96)) !important;
  box-shadow: 0 7px 16px rgba(10, 10, 18, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
}

.message-section .guestbook-control:disabled {
  color: rgba(255, 255, 255, 0.62) !important;
  background: rgba(69, 65, 76, 0.82) !important;
  opacity: 0.72 !important;
}

.message-section .guestbook-page-status {
  color: #fffdf9 !important;
  background: transparent !important;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.48);
}

@media (max-width: 560px) {
  .message-section .guestbook-controls {
    gap: 8px !important;
    min-height: 50px !important;
    padding: 5px 8px !important;
    transform: translateY(-2px);
  }

  .message-section .guestbook-control {
    width: 42px !important;
    height: 42px !important;
  }

  .message-section .guestbook-page-status {
    min-width: 92px !important;
    padding-inline: 4px !important;
    font-size: 0.72rem !important;
  }
}
