/* Responsive: todas las media queries de ancho y de movimiento reducido. */
@media (max-width: 1080px) {
  .nav { gap: 22px; }
  .menu-g { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .foot-g { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 960px) {
  .nav, .hdr-cta { display: none; }
  .burger { display: inline-flex; }
  .hero { padding-block: 16px 72px; }
  .hero-g { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .photo { aspect-ratio: 4 / 4.4; }
  .about-g, .two, .pol-g, .faq-g, .gal-g { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .pol-h { position: static; }
  .collage { height: 460px; max-width: 520px; }
}

@media (max-width: 640px) {
  :root { --hdr-h: 74px; }
  .wrap { padding-inline: 20px; }
  .sec { padding-block: 80px; }
  .brand img { height: 56px; }
  .hero-btns .btn { width: 100%; }
  .feat-card { align-self: stretch; }
  .perks { padding-block: 48px; }
  .perks-g { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .collage { height: 380px; }
  .menu-g { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .menu-ph { aspect-ratio: 16 / 7; }
  .menu-body { padding: 22px 20px 12px; }
  .gal { display: flex; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; border-radius: var(--r-md); }
  .gal::-webkit-scrollbar { display: none; }
  .gi { flex: 0 0 100%; scroll-snap-align: start; scroll-snap-stop: always; }
  .gal-dots { display: flex; }
  .swipe { display: inline-flex; }
  .pols { grid-template-columns: minmax(0, 1fr); }
  .manut { margin-top: 40px; padding: 30px 22px; }
  .manut h3 { font-size: 26px; }
  .stat strong { font-size: 40px; }
  .quote { font-size: 19px; }
  .faq-item summary { font-size: 18px; }
  .map, .map iframe { min-height: 320px; }
  .foot-g { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px 20px; padding-block: 64px 40px; }
  .foot-brand, .foot-col:last-child { grid-column: 1 / -1; }
  .foot-bottom { flex-direction: column; padding-bottom: 96px; }
  .fab { right: 16px; bottom: 16px; width: 58px; height: 58px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .js .reveal, .js .reveal-img { opacity: 1; transform: none; clip-path: none; }
  .collage .c1 { transform: rotate(-4deg); }
  .collage .c2 { transform: rotate(5deg); }
}
