/* ==========================================================================
   RESPONSIVE OVERRIDES
   Breakpoints: 1024px (tablet), 768px (large mobile), 480px (small mobile)
   ========================================================================== */

@media (max-width: 1024px) {
  .itinerary__grid { grid-template-columns: repeat(3, 1fr); }
  .gallery__grid { columns: 3 200px; }
}

@media (max-width: 768px) {
  main section, .hero, .footer { padding: var(--space-xl) var(--space-sm); }

  .nav__toggle { display: flex; }
  .nav__links {
    position: fixed; top: 26px; right: 0; height: calc(100vh - 26px); width: min(78vw, 320px);
    background: var(--color-navy-deep); flex-direction: column; align-items: flex-start;
    justify-content: center; gap: var(--space-lg); padding: var(--space-xl);
    transform: translateX(100%); transition: var(--transition-slow);
    box-shadow: -10px 0 30px rgba(0,0,0,0.3); z-index: 899;
  }
  .nav__links.is-open { transform: translateX(0); }
  .nav__music { order: -1; margin-right: var(--space-2xs); }

  .flight-progress__origin, .flight-progress__dest { font-size: 0.55rem; }

  .ticket__names { font-size: clamp(2rem, 10vw, 2.6rem); }

  .board { grid-template-columns: repeat(2, 1fr); gap: var(--space-sm); }

  .journey__line { left: 24px; }
  .journey__entry, .journey__entry--reverse { grid-template-columns: 1fr; gap: var(--space-md); padding-left: 56px; }
  .journey__entry--reverse .journey__frame, .journey__entry--reverse .journey__text { order: initial; text-align: left; }
  .journey__marker { left: 24px; top: 0; transform: translate(-50%, 0); width: 36px; height: 36px; font-size: 0.9rem; }
  .journey__frame { max-width: 260px; margin-top: var(--space-lg); }

  .couple__grid { grid-template-columns: 1fr; }
  .couple__divider { display: none; }

  .itinerary__grid { grid-template-columns: repeat(2, 1fr); }

  .crew__houses { grid-template-columns: 1fr; gap: var(--space-lg); }

  .gallery__grid { columns: 2 160px; }

  .destination__wrap { grid-template-columns: 1fr; }
  .destination__map { min-height: 260px; }
  .destination__map iframe { min-height: 260px; }

  .treasury__card { flex-direction: column; text-align: center; }
  .contact__grid { gap: var(--space-sm); }
}

@media (max-width: 480px) {
  .ticket__main, .ticket__stub { padding-left: var(--space-md); padding-right: var(--space-md); }
  .ticket__notch { margin: 0 var(--space-md); }
  .ticket__route { flex-wrap: nowrap; }

  .board { grid-template-columns: repeat(2, 1fr); gap: var(--space-2xs); }
  .board__value { font-size: 1.6rem; }

  .itinerary__grid { grid-template-columns: 1fr; }
  .contact__grid { grid-template-columns: 1fr; max-width: 260px; }
  .gallery__grid { columns: 2 130px; }

  .lightbox__prev, .lightbox__next { font-size: 1.2rem; padding: var(--space-2xs); }
  .lightbox__close { top: var(--space-sm); right: var(--space-sm); }
}
