/* ==========================================================================
   Responsive - tablet + mobile adjustments
   ========================================================================== */

@media (max-width: 1080px) {
  .footer-grid { grid-template-columns: 1fr 1fr; gap: var(--space-lg); }
  .grid--4     { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .why-grid    { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-lg); }
  .error-options__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 880px) {
  /* Nav */
  .nav-toggle { display: inline-flex; }
  .nav__list {
    position: fixed;
    inset: 0 0 0 0;
    background: var(--color-deep-green);
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--space-md);
    transform: translateX(100%);
    transition: transform var(--dur-base) var(--ease-out);
    padding-top: 80px;
    z-index: 40;
  }
  .is-nav-open .nav__list { transform: translateX(0); }
  .nav__list .nav__link { font-size: 1rem; }
  .nav__cta { display: none; }

  /* Layout */
  .split,
  .feature-panels { grid-template-columns: 1fr; }
  .feature-panel { min-height: 60vh; }
  .feature-panel:first-child { border-bottom: 1px solid var(--color-line); }

  .split__media { min-height: 56vh; }
  .split__content { padding: clamp(32px, 6vw, 56px); }
  .split--reverse .split__media { order: 0; }

  .grid--3,
  .grid--2 { grid-template-columns: 1fr; }

  .editorial { grid-template-columns: 1fr; gap: var(--space-lg); }
  .editorial--reverse .editorial__media { order: 0; }

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

  .hero { padding-top: clamp(120px, 16vh, 180px); }
  .hero__scroll { display: none; }

  .form-row { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr; gap: var(--space-md); }
  .footer-bottom { flex-direction: column; gap: var(--space-2xs); }

  .filter-row { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
  .filter-chip { flex-shrink: 0; }
}

@media (max-width: 560px) {
  .grid--4 { grid-template-columns: 1fr; }
  .why-grid { grid-template-columns: 1fr; }
  .error-options__grid { grid-template-columns: 1fr; }
  .error-option { min-height: 190px; }

  .btn { padding: 14px 26px; }
  .btn--lg { padding: 16px 30px; }

  .hero__title { font-size: clamp(2.4rem, 11vw, 3.6rem); }

  .section-head { text-align: left; }
  .brand__tag { display: none; }
}

/* Phones: scale typography and rhythm down so pages read comfortably */
@media (max-width: 560px) {
  h1 { font-size: clamp(1.9rem, 8.5vw, 2.4rem); }
  h2 { font-size: clamp(1.45rem, 6.4vw, 1.8rem); }
  h3 { font-size: clamp(1.2rem, 5.4vw, 1.45rem); }

  .lead { font-size: 1rem; }
  .eyebrow { font-size: 0.68rem; letter-spacing: var(--tracking-wide); }

  .section { padding-top: 56px; padding-bottom: 56px; }
  .section--tight { padding-top: 40px; padding-bottom: 40px; }

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

  .page-header { min-height: 46vh; padding-top: 110px; padding-bottom: 36px; }
  .page-header h1 { font-size: clamp(1.9rem, 8.5vw, 2.4rem); }
  .page-header__lede { font-size: 0.98rem; }

  .feature-panel__body h2 { font-size: clamp(1.6rem, 7vw, 2rem); }
  .cta-banner h2 { font-size: clamp(1.7rem, 7.5vw, 2.1rem); }

  .program-services__title { font-size: 1.3rem; }
  .program-services__list { padding: var(--space-sm) var(--space-md); }
  .itinerary { padding-left: 20px; }
  .itinerary > article::before { left: -25px; width: 8px; height: 8px; box-shadow: 0 0 0 3px var(--color-cream); }
  .itinerary > article > h2,
  .itinerary > article > h3 { font-size: 1.25rem; }
}
