/* ═══════════════════════════════════════════ */
/* LARGE DESKTOP — min-width: 1200px          */
/* ═══════════════════════════════════════════ */
@media (min-width: 1200px) {
  .hero-names .script-text {
    font-size: 11rem;
  }

  .hero-ampersand {
    font-size: 4.8rem;
  }

  .hero-date {
    font-size: 2rem;
  }

  .hero-message {
    font-size: 2rem;
  }

  .section-title-text {
    font-size: 5rem;
  }

  .rsvp-subtitle {
    font-size: 1.85rem;
  }

  .footer-monogram {
    font-size: 2.4rem;
  }
}

/* ═══════════════════════════════════════════ */
/* TABLET — max-width: 1024px                 */
/* ═══════════════════════════════════════════ */
@media (max-width: 1024px) {
  .section-title-text {
    font-size: 3.4rem;
  }

  .hero-names .script-text {
    font-size: 7.5rem;
  }

  .hero-ampersand {
    font-size: 3.6rem;
  }

  .hero-frame {
    padding: var(--space-2xl) var(--space-lg);
  }

  .hero-fern {
    width: 110px;
    height: 180px;
  }

  /* Event grid → single column */
  .event-grid {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }

  .event-grid::before {
    display: none;
  }

  .event-card {
    padding: var(--space-xl) var(--space-md);
  }

  .event-card + .event-card {
    border-top: 1px solid var(--color-gold-border-soft);
    padding-top: var(--space-2xl);
  }

  /* Date stamp */
  .date-stamp-numeric {
    font-size: 3.6rem;
  }

  /* Gallery → simpler layout */
  .gallery-grid {
    grid-auto-rows: 160px;
  }

  .gallery-item--1 { grid-column: span 6; grid-row: span 2; }
  .gallery-item--2 { grid-column: span 6; grid-row: span 1; }
  .gallery-item--3 { grid-column: span 6; grid-row: span 1; }
  .gallery-item--4 { grid-column: span 6; grid-row: span 2; }
  .gallery-item--5 { grid-column: span 6; grid-row: span 1; }
  .gallery-item--6 { grid-column: span 6; grid-row: span 1; }
  .gallery-item--7 { grid-column: span 4; grid-row: span 1; }
  .gallery-item--8 { grid-column: span 4; grid-row: span 1; }
  .gallery-item--9 { grid-column: span 4; grid-row: span 1; }

  /* Hide section ornaments */
  .section-ornament {
    display: none !important;
  }
}

/* ═══════════════════════════════════════════ */
/* MOBILE — max-width: 768px                  */
/* ═══════════════════════════════════════════ */
@media (max-width: 768px) {
  :root {
    --nav-height: 64px;
  }

  /* Nav */
  .nav-menu {
    display: none;
  }

  .nav-toggle {
    display: flex;
  }

  .nav-inner {
    padding: 0 var(--space-md);
  }

  /* Hero */
  .hero {
    padding: var(--space-2xl) var(--space-md);
  }

  .hero-frame {
    padding: var(--space-xl) var(--space-sm);
  }

  .hero-frame::before {
    inset: 14px;
  }

  .hero-fern {
    width: 80px;
    height: 130px;
  }

  .hero-fern--tl,
  .hero-fern--tr {
    top: -10px;
  }
  .hero-fern--bl,
  .hero-fern--br {
    bottom: -10px;
  }
  .hero-fern--tl,
  .hero-fern--bl { left: -14px; }
  .hero-fern--tr,
  .hero-fern--br { right: -14px; }

  .hero-names .script-text {
    font-size: 5.4rem;
  }

  .hero-ampersand {
    font-size: 2.8rem;
  }

  .hero-date {
    font-size: 1.4rem;
  }

  .hero-date-numeric {
    font-size: 1.7rem;
    letter-spacing: 0.35em;
  }

  .hero-message {
    font-size: 1.4rem;
  }

  .hero-prelude {
    font-size: 1.4rem;
  }

  .hero-prelude::before,
  .hero-prelude::after {
    width: 20px;
  }

  /* Sections */
  .section {
    padding: var(--space-2xl) var(--space-md);
  }

  .section-inner {
    padding: 0;
  }

  .section-title-text {
    font-size: 2.4rem;
    letter-spacing: 0.08em;
  }

  .section-kicker {
    font-size: 1.4rem;
  }

  .section-kicker::before,
  .section-kicker::after {
    width: 20px;
  }

  /* Details */
  .details-quote {
    font-size: 1.65rem;
  }

  .event-name {
    font-size: 2.2rem;
  }

  .event-card {
    padding: var(--space-lg) var(--space-md);
  }

  .date-stamp-numeric {
    font-size: 2.8rem;
    gap: var(--space-sm);
  }

  .date-stamp-numeric .sep {
    font-size: 2rem;
  }

  /* RSVP */
  .rsvp-form {
    padding: var(--space-xl) var(--space-md);
  }

  .attendance-options {
    flex-direction: column;
    gap: var(--space-sm);
  }

  .attendance-pill .pill-label {
    padding: var(--space-md);
    font-size: 1.5rem;
  }

  .dietary-options {
    gap: var(--space-sm);
  }

  /* Travel */
  .travel-placeholder {
    padding: var(--space-xl) var(--space-md);
  }

  .placeholder-heading {
    font-size: 2rem;
  }

  /* Registry */
  .registry-grid {
    grid-template-columns: 1fr;
    max-width: 420px;
  }

  /* Gallery → 2-column tile mosaic */
  .gallery-grid {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: 130px;
    gap: var(--space-sm);
  }

  .gallery-item--1 { grid-column: span 6; grid-row: span 2; }
  .gallery-item--2 { grid-column: span 3; grid-row: span 1; }
  .gallery-item--3 { grid-column: span 3; grid-row: span 1; }
  .gallery-item--4 { grid-column: span 6; grid-row: span 2; }
  .gallery-item--5 { grid-column: span 3; grid-row: span 1; }
  .gallery-item--6 { grid-column: span 3; grid-row: span 1; }
  .gallery-item--7 { grid-column: span 3; grid-row: span 1; }
  .gallery-item--8 { grid-column: span 3; grid-row: span 1; }
  .gallery-item--9 { grid-column: span 6; grid-row: span 1; }

  /* FAQ */
  .faq-question {
    font-size: 1.55rem;
    padding: var(--space-md) var(--space-sm);
  }

  .faq-answer > p {
    padding: 0 var(--space-sm) var(--space-md);
    font-size: 1.4rem;
  }

  /* Footer */
  .footer-names {
    font-size: 3rem;
  }

  .footer-monogram {
    font-size: 1.8rem;
  }
}

/* ═══════════════════════════════════════════ */
/* SMALL MOBILE — max-width: 480px            */
/* ═══════════════════════════════════════════ */
@media (max-width: 480px) {
  .hero-names .script-text {
    font-size: 4.2rem;
  }

  .hero-ampersand {
    font-size: 2.2rem;
  }

  .hero-content {
    padding: var(--space-lg) var(--space-sm);
  }

  .section-title-text {
    font-size: 2rem;
  }

  .event-name {
    font-size: 1.9rem;
  }

  .attendance-pill .pill-label {
    font-size: 1.4rem;
    padding: var(--space-sm);
  }

  .placeholder-heading {
    font-size: 1.8rem;
  }

  .mobile-menu-links a {
    font-size: 2.4rem;
  }

  .registry-name {
    font-size: 1.9rem;
  }
}
