
@media (max-width: 768px) {
  .categorias {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-left: 1rem;
  }

  .categorias ul {
    padding: 0;
    margin: 0;
    width: 100%;
  }

  .categorias li {
    list-style: none;
    width: 100%;
    margin: 0;
  }

  .categorias a {
    display: block;
    width: 100%;
    text-align: left;
    font-size: 13px;
    padding: 0.1rem 0.5rem;
    color: #000;
    text-decoration: none;
    border: none;
    background: none;
  }
}

@media (max-width: 768px) {
  .header-main {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .logo-container {
    align-self: flex-start;
  }

  .menu {
    display: flex;
    justify-content: center;
    gap: 1rem;
    width: 100%;
  }

  .menu a {
    text-align: center;
    width: auto;
  }
}
@media (max-width: 768px) {
  .carrito-flotante {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  /* ── Grilla 2 columnas ───────────────────────────────────────────────────
     Usamos #productosContainer .producto para ganar especificidad sobre
     la regla de style.css que pone width:100% max-width:320px margin:auto
     (esa regla rompe la grilla y fuerza 1 tarjeta por fila).               */
  #productosContainer {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between;
    padding: 0;
    box-sizing: border-box;
    gap: 8px;
  }

  #productosContainer .producto {
    width: calc(50% - 4px) !important;
    max-width: none !important;
    margin: 0 !important;
    box-sizing: border-box;
    /* Permite que el contenido (precio + etiquetas) crezca sin cortarse */
    overflow: visible !important;
    height: auto !important;
    min-height: 0 !important;
  }

  #productosContainer .producto img {
    width: 100%;
    height: auto;
    display: block;
  }

  /* ── Fix precio oferta ───────────────────────────────────────────────────
     .precio es un <p> inline por defecto. En tarjetas de ~50% del viewport
     el span tachado + margin-right empuja el span oferta fuera del área
     visible. Lo convertimos en flex-wrap para que bajen de línea en lugar
     de quedar cortados por overflow.                                         */
  #productosContainer .precio {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: baseline;
    column-gap: 6px;
    row-gap: 2px;
    line-height: 1.4;
    margin: 0;
    padding: 0;
  }

  /* Precio original tachado: siempre íntegro en su línea */
  #productosContainer .precio span:first-child {
    white-space: nowrap;
    flex-shrink: 0;
  }

  /* Precio oferta: claramente visible, más peso visual */
  #productosContainer .precio span:last-child {
    white-space: nowrap;
    flex-shrink: 0;
    font-weight: 700 !important;
    font-size: 1em !important;
  }
}
