/* ==========================================================================
   RESPONSIVE.CSS
   Mobile-first adjustments layered on top of styles.css.
   Checked conceptually at: 320 / 375 / 390 / 430 / 768 / 1024 / 1280 / 1440 / 1920
   ========================================================================== */

/* ----------------------------- ≤ 1280px ----------------------------- */
@media (max-width: 1280px) {
  :root { --container-pad: 1.25rem; }
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .grid--5 { grid-template-columns: repeat(3, 1fr); }
  .footer__grid { grid-template-columns: 1.2fr 0.8fr 1fr; }
  .footer__contact { grid-column: 1 / -1; }
}

/* ----------------------------- ≤ 1024px ----------------------------- */
@media (max-width: 1024px) {
  .nav { display: none; }
  .menu-toggle { display: flex; }

  .hero__inner { grid-template-columns: 1fr; text-align: left; padding-block: var(--space-lg) var(--space-xl); }
  .hero__visual { order: -1; max-width: 320px; margin: 0 auto var(--space-lg); }
  .hero__visual-frame { padding: var(--space-md); }

  .editorial { grid-template-columns: 1fr; gap: var(--space-md); }
  .split, .split--reverse { grid-template-columns: 1fr; }
  .split--reverse .split__visual { order: 0; }
  .split__visual { margin-bottom: var(--space-md); }

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

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

/* ------------------------------ ≤ 768px ------------------------------ */
@media (max-width: 768px) {
  :root {
    --space-xl: 3.5rem;
    --space-2xl: 4.5rem;
    --header-height: 72px;
  }

  .header__brand-text { display: none; }
  .header__logo { height: 42px; }

  .hero { min-height: auto; padding-bottom: var(--space-xl); }
  .hero__scroll-cue { display: none; }

  .grid--2, .grid--3, .grid--4, .grid--5, .grid--6 { grid-template-columns: 1fr; }
  .gallery { grid-template-columns: repeat(2, 1fr); }

  .footer__grid { grid-template-columns: 1fr; }
  .footer__bottom { flex-direction: column; text-align: center; }

  .form__row { grid-template-columns: 1fr; }

  .cta-banner { padding: var(--space-lg) var(--space-md); }

  .event-detail { flex-direction: column; gap: 0.3rem; }
  .event-detail__value { text-align: left; }

  .btn-group { flex-direction: column; align-items: stretch; }
  .btn-group .btn { width: 100%; }
}

/* ------------------------------ ≤ 430px ------------------------------ */
@media (max-width: 430px) {
  :root { --container-pad: 1.1rem; }
  .hero__visual-frame { max-width: 100%; }
  .header__logo { height: 38px; }
  .lightbox__prev, .lightbox__next { padding: 0.4rem 0.7rem; font-size: 1.4rem; }
}

/* ------------------------------ ≥ 1440px ------------------------------ */
@media (min-width: 1440px) {
  :root { --container-width: 1320px; }
}

/* No-horizontal-scroll safety net */
html, body { max-width: 100%; overflow-x: hidden; }
