/* ============================================================
   Ajustes para celulares Android e iPhone (se carga al final)
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
img, video { max-width: 100%; height: auto; }
iframe { max-width: 100%; }
table { max-width: 100%; }

/* Diseños que antes tenían columnas fijas en línea */
.dos-col { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: start; max-width: 980px; margin: 0 auto; }
.dos-col-sm { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.noticia-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 40px; align-items: start; }
.destacada-card { display: grid; grid-template-columns: 1fr 1fr; }
.destacada-card > * { min-width: 0; }

@media (max-width: 900px) {
  .noticia-layout { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 768px) {
  .dos-col, .dos-col-sm, .form-grid-2, .form-grid-3, .destacada-card {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  /* iPhone hace zoom al enfocar campos con letra menor a 16 px */
  input, select, textarea { font-size: 16px !important; }
  /* Botones y enlaces de acción con área táctil cómoda */
  .btn, .btn-hero-primary, .btn-hero-outlined, .socio-badge, .nav-cta { min-height: 44px; }
  .btn { display: inline-flex; align-items: center; justify-content: center; }
  .container { padding-left: 16px; padding-right: 16px; }
  .cookie-banner {
    left: 10px; right: 10px; bottom: 10px; max-width: none;
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  }
  .cookie-banner .cookie-btn { width: 100%; min-height: 44px; }
  .legal-tabla { min-width: 480px; }
}

@media (max-width: 480px) {
  .topbar { font-size: .72rem; }
  .topbar-left { font-size: .7rem; }
  .news-grid, .proximos-grid, .directiva-grid, .cards-grid, .galeria-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .cta-actions { flex-direction: column; align-items: stretch; }
  .cta-actions .btn { width: 100%; }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions a { width: 100%; text-align: center; }
  .hero-stats { grid-template-columns: 1fr 1fr !important; }
  .footer-legal { flex-direction: column; gap: 10px; }
}

/* Tabla de cookies como tarjetas en celulares */
@media (max-width: 600px) {
  .legal-tabla-wrap { overflow: visible; }
  .legal-tabla { min-width: 0 !important; }
  .legal-tabla thead { display: none; }
  .legal-tabla, .legal-tabla tbody, .legal-tabla tr, .legal-tabla td { display: block; width: 100%; }
  .legal-tabla tr { border: 1px solid var(--border, #dde3ea); border-radius: 10px; margin-bottom: 12px; padding: 6px 0; background: #fff; }
  .legal-tabla td { border: 0; padding: 5px 12px; }
  .legal-tabla td::before { content: attr(data-label); display: block; font-size: .72rem; font-weight: 700; color: var(--text3, #6b7a8c); text-transform: uppercase; letter-spacing: .05em; }
}

/* Formularios: ningún campo puede salirse de la pantalla del celular */
.form-control, input, select, textarea { max-width: 100%; min-width: 0; box-sizing: border-box; }
input[type=file] { max-width: 100%; }

/* Botón "Únete como socio/a" de la barra superior: texto centrado en una sola línea o dos */
.socio-badge { display: inline-flex; align-items: center; justify-content: center; text-align: center; line-height: 1.25; min-height: 34px; padding: 6px 14px; }
