/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE — responsive.css
   ──────────────────────────────────────────────────────────────────
   TODOS los media queries del sitio en un solo archivo.
   PRINCIPIO: Single Responsibility — un solo lugar para cambiar breakpoints.

   Breakpoints:
   ≤ 968px  → Tablet / landscape mobile
   ≤ 640px  → Mobile
   ═══════════════════════════════════════════════════════════════════ */

/* ════════════════════════════════════════════════════════════════
   COMPONENTES COMPARTIDOS DE PÁGINAS INTERNAS
   Clases usadas en pages/*.html donde antes había style= inline.
   ════════════════════════════════════════════════════════════════ */

/* Sección de dos columnas: texto + imagen / texto + texto */
.content-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}

/* Par de tarjetas en dos columnas */
.grid-2col {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

/* Grid de valores / ubicaciones (quienes-somos) */
.values-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gap-grid);
  max-width: 800px;
  margin: 0 auto;
}


/* ════════════════════════════════════════════════════════════════
   TABLET — pantallas hasta 968px
   ════════════════════════════════════════════════════════════════ */
@media (max-width: 968px) {

  /* ── Nav: ocultar links, mostrar hamburguesa ──────────────── */
  .nav-links     { display: none; }
  .mobile-toggle { display: block; }
  .nav-inner     { position: relative; }   /* Para que .open se posicione bien */

  /* ── Slider: reducir altura en tablet ─────────────────────── */
  .slider {
    height: 70vh;
    min-height: 420px;
  }

  /* ── Services: de 4 a 2 columnas ─────────────────────────── */
  .services-img-grid { grid-template-columns: repeat(2, 1fr); }

  /* ── SAINT: de 2 columnas a 1 ────────────────────────────── */
  .saint-inner { grid-template-columns: 1fr; gap: 40px; }

  /* ── Contacto: de 2 columnas a 1 ─────────────────────────── */
  .contact-grid { grid-template-columns: 1fr; gap: 36px; }

  /* ── Footer: de 3 columnas a 1 ───────────────────────────── */
  .footer-top { grid-template-columns: 1fr; gap: 28px; }

  /* ── Páginas internas: content-split a 1 columna ─────────── */
  .content-split { grid-template-columns: 1fr; gap: 40px; }
  .values-grid   { grid-template-columns: 1fr; }

}

/* ════════════════════════════════════════════════════════════════
   MOBILE — pantallas hasta 640px
   ════════════════════════════════════════════════════════════════ */
@media (max-width: 640px) {

  /* ── Slider: más pequeño en mobile ───────────────────────── */
  .slider {
    height: 65vh;
    min-height: 340px;
  }
  .slide-content h1 { font-size: clamp(26px, 8vw, 34px); }
  .slide-content p  { font-size: 15px; }

  /* ── Sections: reducir padding vertical ──────────────────── */
  .section { padding: 60px 20px; }

  /* ── Partners: logos más pequeños y menos separados ──────── */
  .partners-logos { gap: 20px; }
  .partner-logo   { height: 32px; }

  /* ── Services: de 4 a 2 columnas (imágenes) ─────────────── */
  .services-img-grid { grid-template-columns: 1fr 1fr; }

  /* ── Services: de 3 a 1 columna (tarjetas texto) ─────────── */
  .services-grid { grid-template-columns: 1fr; }

  /* ── Why: de 2 a 1 columna ───────────────────────────────── */
  .why-grid { grid-template-columns: 1fr; }

  /* ── Products: de 2 a 1 columna ─────────────────────────── */
  .products-grid { grid-template-columns: 1fr; }

  /* ── Formulario: de 2 campos en fila a 1 ──────────────────── */
  .form-row { grid-template-columns: 1fr; }

  /* ── SAINT visual: mantener 2 columnas ──────────────────────  */
  .saint-visual { grid-template-columns: 1fr 1fr; }

  /* ── Páginas internas: cards a 1 columna ─────────────────── */
  .grid-2col   { grid-template-columns: 1fr; }
  .content-split { gap: 28px; }

}
