@media (max-width: 1024px) {
  .editorial-grid { grid-template-columns: 1fr; gap: 40px; }
  .editorial-media { aspect-ratio: 16/10; order: -1; }
  .villas-grid { grid-template-columns: repeat(2, 1fr); }
  .rituals-grid { grid-template-columns: repeat(2, 1fr); }
  .split-editorial { grid-template-columns: 1fr; }
  .split-editorial .split-media { min-height: 60vh; }
  .stay-card { grid-template-columns: 1fr; padding: 40px; }
  .stay-visual { aspect-ratio: 16/10; order: -1; }
  .location-legend { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 720px) {
  :root { --container-pad: 20px; }
  .nav-links { display: none; }
  .nav-links.mobile-open {
    display: flex; flex-direction: column; position: fixed; top: 0; right: 0;
    height: 100vh; width: 70vw; background: var(--black);
    align-items: flex-start; justify-content: center; gap: 28px; padding: 40px;
    transform: translateX(100%);
    z-index: calc(var(--z-nav) + 1);
  }
  .nav-menu-btn { display: flex; }
  .chapter-progress { right: 16px; gap: 16px; }
  .chapter-progress .label { display: none; }
  .villas-grid { grid-template-columns: 1fr; }
  .rituals-grid { grid-template-columns: 1fr; }
  .cine-content { padding-bottom: 60px; }
  .hero .cta-row { flex-direction: column; align-items: stretch; width: 100%; }
  .hero .cta-row .btn { justify-content: center; }
  .editorial, .villas, .rituals, .location, .stay { padding: 100px 0; }
  .stay-amenities { grid-template-columns: 1fr; }
  .location-legend { grid-template-columns: 1fr 1fr; gap: 20px; }
  footer { gap: 40px; padding: 60px 20px 30px; }
  .footer-links { gap: 32px; }
  /* mobile vertical crop for cinematic media */
  .cine-media video, .cine-media img { object-position: center 30%; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
