/* ==========================================================================
   RESPONSIVE — COMPONENTES COMPARTIDOS
   Ajustes de navegación, footer, grids y formularios para tablet y móvil.
   Los ajustes específicos de cada página viven en su propio archivo CSS.
   ========================================================================== */

/* ---- Tablet grande ---- */
@media (max-width: 1080px) {
  .footer-top {
    grid-template-columns: 1fr 1fr 1fr;
  }

  .footer-brand {
    grid-column: 1 / -1;
    margin-bottom: var(--space-md);
  }

  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .grid--5 { grid-template-columns: repeat(3, 1fr); }
}

/* ---- Tablet / menú móvil ---- */
@media (max-width: 880px) {
  .nav-toggle { display: flex; }

  .main-nav {
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--color-white);
    border-bottom: var(--border-subtle);
    box-shadow: var(--shadow-md);
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height var(--transition-base), opacity var(--transition-base);
  }

  .main-nav.is-open {
    max-height: calc(100vh - var(--header-height));
    opacity: 1;
    overflow-y: auto;
    padding: var(--space-md) 0 var(--space-xl);
  }

  .nav-list {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding-inline: var(--space-lg);
  }

  .nav-list a {
    padding-block: var(--space-sm);
    border-bottom: 1px solid var(--color-gray-100);
  }

  .nav-list a::after { display: none; }

  .nav-dropdown {
    position: static;
    opacity: 1;
    visibility: visible;
    transform: none;
    box-shadow: none;
    border: none;
    width: auto;
    padding: 0 0 var(--space-2xs) var(--space-md);
  }

  .nav-actions {
    flex-direction: column;
    align-items: stretch;
    padding: var(--space-md) var(--space-lg) 0;
    gap: var(--space-sm);
  }

  .nav-actions .btn { width: 100%; }

  .grid--3 { grid-template-columns: repeat(2, 1fr); }
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .grid--5 { grid-template-columns: repeat(2, 1fr); }

  .product-grid { grid-template-columns: 1fr; }

  .footer-top { grid-template-columns: 1fr 1fr; }
}

/* ---- Móvil ---- */
@media (max-width: 640px) {
  .container { padding-inline: var(--space-md); }

  .grid--2,
  .grid--3,
  .grid--4,
  .grid--5 { grid-template-columns: 1fr; }

  .feature-list { grid-template-columns: 1fr; }

  .form-grid { grid-template-columns: 1fr; }

  .footer-top { grid-template-columns: 1fr; gap: var(--space-xl); }

  .footer-bottom { flex-direction: column; align-items: flex-start; }

  .back-to-top { right: var(--space-md); bottom: var(--space-md); }

  .compare-table th, .compare-table td { padding: var(--space-sm) var(--space-md); }
}
