@media (max-width: 1024px) {
  .nav-panel { gap: 14px; font-size: .74rem; }
  .nav-cta { padding: 8px 10px; }
  .split-grid { gap: 58px; }
  .gallery-grid { grid-auto-rows: 200px; }
}

@media (max-width: 860px) {
  .container { width: min(100% - 36px, var(--container)); }
  .nav { height: 74px; }
  .brand { width: 166px; height: 48px; }
  .menu-toggle { display: grid; width: 44px; height: 44px; gap: 5px; place-content: center; cursor: pointer; }
  .menu-toggle span:not(.sr-only) { display: block; width: 22px; height: 1.5px; background: currentColor; transition: .25s; }
  .menu-toggle.is-open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
  .menu-toggle.is-open span:nth-child(2) { opacity: 0; }
  .menu-toggle.is-open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
  .nav-panel { position: fixed; inset: 74px 0 auto; display: flex; height: calc(100svh - 74px); padding: 38px 28px; background: #211d1c; flex-direction: column; align-items: flex-start; gap: 0; transform: translateX(100%); transition: transform .35s; }
  .nav-panel.is-open { transform: none; }
  .nav-panel a { padding: 10px 0; font-family: var(--serif); font-size: 2rem; }
  .nav-panel .nav-cta { margin-top: 19px; padding: 12px 17px; font-family: var(--sans); font-size: .85rem; }
  .hero { min-height: 710px; min-height: 88svh; }
  .hero-image { object-position: 64% center; }
  .hero-content { padding-top: 50px; }
  .hero h1 { font-size: clamp(3.1rem, 13vw, 4.5rem); }
  .hero-copy { max-width: 350px; font-size: 1rem; }
  .scroll-cue { bottom: 22px; }
  .section { padding-block: var(--section-space-md); }
  .split-grid, .journey-layout, .visit-layout { grid-template-columns: 1fr; gap: 40px; }
  .image-frame img, .story-image img { height: 365px; }
  .experience .image-frame { order: 2; }
  .featured-specialties { grid-template-columns: 1fr; grid-template-rows: auto; gap: 10px; margin-top: 32px; }
  .featured-item, .featured-primary { min-height: 190px; padding: 24px; grid-row: auto; }
  .featured-primary { min-height: 285px; }
  .featured-item > div:last-child, .featured-primary > div:last-child { max-width: 100%; padding-left: 0; }
  .featured-art, .featured-primary .featured-art { inset: 0; width: 100%; border: 0; }
  .menu-heading { display: block; margin-top: var(--section-space-sm); padding-bottom: 18px; }
  .menu-filters { justify-content: flex-start; margin-top: 18px; }
  .menu-filter { padding: 8px 11px; }
  .full-menu { grid-template-columns: 1fr; }
  .menu-item { gap: 13px; padding-block: 18px; }
  .journey { padding-block: var(--section-space-md); }
  .journey-image img { height: 345px; }
  .journey-copy { padding-left: 14px; }
  .gallery-head { display: block; margin-bottom: 27px; }
  .gallery-head > p { margin-top: -8px; }
  .gallery-grid { grid-auto-rows: 160px; grid-template-columns: repeat(2, 1fr); gap: 9px; }
  .gallery-item:nth-child(n) { grid-row: auto; grid-column: span 1; }
  .gallery-item:nth-child(1), .gallery-item:nth-child(5) { grid-row: span 2; }
  .gallery-item:nth-child(3), .gallery-item:nth-child(6) { grid-column: span 2; }
  .story-image { order: 2; }
  .visit-layout { gap: 42px; }
  .map-embed { min-height: 330px; height: 330px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 33px 20px; }
  .footer-grid > div:first-child { grid-column: span 2; }
  .footer-brand { width: 174px; height: 56px; }
  .footer-bottom { flex-direction: column; margin-top: 30px; }
  .lightbox-nav.previous { left: 10px; }
  .lightbox-nav.next { right: 10px; }
  .lightbox-close { top: 12px; right: 12px; }
}

@media (max-width: 767px) {
  .visit-actions { flex-wrap: nowrap; gap: 6px; }
  .visit-actions .button { gap: 7px; padding: 11px 12px; font-size: .78rem; white-space: nowrap; }
  .menu-filters {
    flex-wrap: nowrap;
    justify-content: flex-start;
    min-width: 0;
    padding: 0 2px .25rem;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }
  .menu-filters::-webkit-scrollbar { display: none; }
  .menu-filter {
    flex: 0 0 auto;
    white-space: nowrap;
    scroll-snap-align: start;
  }
}
