/*
 * Registry page motion and responsive overrides.
 */

@keyframes registryHeroDrift {
  from { transform: scale(1.035) translate3d(-0.4rem, -0.2rem, 0); }
  to { transform: scale(1.07) translate3d(0.5rem, 0.25rem, 0); }
}

@keyframes registryScrollBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(0.45rem); }
}

@media (max-width: 1040px) {
  .registry-hero {
    min-height: auto;
    padding: calc(var(--header-height) + 4rem) 2rem 5.5rem;
  }

  .registry-hero-inner {
    grid-template-columns: 1fr;
    gap: 1.6rem;
  }

  .registry-title {
    font-size: 4.6rem;
  }

  .registry-hero-panel {
    max-width: 34rem;
  }

  .registry-preference-grid {
    grid-template-columns: 1fr 1fr;
  }

  .registry-cash-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .cash-card,
  .cash-card[data-cash-card] {
    grid-column: span 3;
  }

  .registry-preference-featured {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .registry-hero {
    padding: calc(var(--header-height) + 4rem) 1rem 5rem;
  }

  .registry-hero::after {
    border-top-width: 3.1rem;
    border-bottom-width: 3.1rem;
  }

  .registry-hero::before {
    background-position: 62% center;
  }

  .registry-title {
    width: min(100%, 10ch);
    font-size: 3.1rem;
    line-height: 0.98;
  }

  .registry-subtitle {
    font-size: 1.18rem;
  }

  .registry-hero-actions,
  .registry-hero-actions .btn,
  .registry-cta-actions,
  .registry-cta-actions .btn {
    width: 100%;
  }

  .registry-hero-panel {
    padding: 1rem;
  }

  .registry-hero-panel h2 {
    font-size: 1.36rem;
  }

  .registry-container {
    width: min(100% - 1rem, 1140px);
    padding-bottom: 4rem;
  }

  .registry-section {
    padding-top: 4rem;
  }

  .registry-section-title {
    font-size: 2.35rem;
  }

  .registry-section-subtitle {
    font-size: 1.04rem;
  }

  .registry-preference-grid {
    grid-template-columns: 1fr;
  }

  .registry-cash-grid {
    grid-template-columns: 1fr;
  }

  .cash-card,
  .cash-card[data-cash-card] {
    grid-column: 1 / -1;
  }

  .registry-preference {
    min-height: auto;
    padding: 1.2rem;
  }

  .registry-preference-title {
    font-size: 2rem;
  }

  .registry-private-note {
    display: grid;
  }

  .registry-private-note-link,
  .registry-preference-actions,
  .registry-preference-actions .btn {
    width: 100%;
  }

  .cash-card {
    min-height: auto;
  }

  .cash-card-header {
    align-items: start;
  }

  .registry-note {
    padding: 2rem 1rem;
  }

  .registry-note h2 {
    font-size: 2.2rem;
  }

  .registry-note p {
    font-size: 1.04rem;
  }

  .registry-faq summary {
    grid-template-columns: minmax(0, 1fr) 2rem;
    min-height: 4.5rem;
    padding: 1rem;
    font-size: 1.08rem;
  }

  .registry-faq summary::after {
    width: 2rem;
    height: 2rem;
  }

  .registry-faq .faq-body {
    margin: 0 1rem 1rem;
    font-size: 1rem;
  }

  .registry-final {
    display: grid;
    padding: 2rem 1rem;
  }

  .registry-final h2 {
    font-size: 2.25rem;
  }
}

@media (max-width: 380px) {
  .registry-title {
    font-size: 2.72rem;
  }

  .registry-section-title {
    font-size: 2.1rem;
  }

  .cash-card-header {
    display: grid;
  }

  .copy-btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .registry-hero::before,
  .registry-hero-scroll svg,
  .cash-card,
  .copy-btn,
  .registry-panel-item,
  .registry-private-note-link,
  .registry-faq details,
  .registry-faq summary::after {
    animation: none;
    transition: none;
  }
}
