/* ============================================================
   RESPONSIVE — mobile first
   Breakpoints: 480px | 768px | 1200px
   ============================================================ */

/* ---- Tablet ≥ 768px ---------------------------------------- */
@media (max-width: 768px) {

  /* Header */
  .site-header__nav,
  .lang-switcher { display: none; }

  .hamburger { display: flex; }

  /* Hero */
  .hero { min-height: 70vh; }
  .hero__actions { flex-direction: column; }
  .hero__actions .btn { width: 100%; justify-content: center; }

  /* Grids → 2 colunas */
  .casas-grid        { grid-template-columns: repeat(2, 1fr); }
  .features-grid     { grid-template-columns: repeat(2, 1fr); }
  .testimonials-grid { grid-template-columns: repeat(2, 1fr); }

  /* Footer — brand spans full width, link cols align on one row */
  .site-footer__grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .site-footer__brand {
    grid-column: 1 / -1;
  }
  .site-footer__grid .site-footer__col:nth-child(3) > ul {
    margin-top: 0;
  }
  .site-footer__bottom { flex-direction: column; text-align: center; }

  /* Forms */
  .form-grid--2 { grid-template-columns: 1fr; }

  /* Gallery */
  .gallery-grid { columns: 2; }

  /* Casa individual slider */
  .casa-gallery__thumbs { grid-template-columns: repeat(4, 1fr); }
}

/* ---- Mobile ≥ 480px ---------------------------------------- */
@media (max-width: 480px) {

  /* Grids → 1 coluna */
  .casas-grid        { grid-template-columns: 1fr; }
  .features-grid     { grid-template-columns: 1fr; }
  .testimonials-grid { grid-template-columns: 1fr; }

  /* Footer */
  .site-footer__grid { grid-template-columns: 1fr; }

  /* Gallery */
  .gallery-grid { columns: 1; }

  /* Hero */
  .hero { min-height: 60vh; }

  /* CTA banner */
  .cta-banner__actions { flex-direction: column; align-items: center; }
  .cta-banner__actions .btn { width: 100%; max-width: 320px; justify-content: center; }

  /* Lightbox nav */
  .lightbox__prev,
  .lightbox__next { font-size: 1.75rem; }
}

/* ---- Large desktop ≥ 1200px -------------------------------- */
@media (min-width: 1200px) {
  .container { padding-inline: 2rem; }
}

/* ---- Print ------------------------------------------------- */
@media print {
  .site-header, .site-footer, .cta-banner { display: none; }
  body { font-size: 12pt; color: #000; }
}
