.flip-section,
.cat-images,
.popup-categoria,
.overlay {
    display: none !important;
}

.flip-section.active {
    display: block !important;
}

#sect-catalogo.active {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    max-width: 400px;
    margin: 20px auto;
}

.flip-btn {
    margin: 10px;
    background-color: #227bf7;
    color: #ffffff;
    border: none;
    padding: 12px 25px;
    font-size: 15px;
    border-radius: 25px;
    cursor: pointer;
}

.categoria-link {
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    padding: 15px;
    text-align: center;
    cursor: pointer;
    border-radius: 6px;
    color: #333;
}

.overlay {
    position: fixed;
    top:0; left:0;
    width:100%; height:100%;
    background-color: rgba(0,0,0,0.7);
    z-index:999;
}

.popup-categoria {
    position: fixed;
    top:50%; left:50%;
    transform: translate(-50%,-50%);
    background-color: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.4);
    padding: 20px;
    z-index:1000;
    width:80%; max-width:600px;
    max-height:80vh;
    overflow:hidden;
}

.popup-images {
    display:flex;
    overflow-x:auto;
    gap:10px;
    scroll-snap-type:x mandatory;
    padding-bottom:15px;
}
.popup-images img {
    flex:0 0 auto;
    width:100%; max-width:300px;
    height:auto;
    scroll-snap-align:start;
    border-radius:5px;
}

.cerrar-popup {
    padding:8px 14px;
    background-color:#227bf7;
    color:#fff;
    border-radius:6px;
    cursor:pointer;
    text-align:center;
    width:100px;
    margin:10px auto 0;
}
/* ---------------- RESPONSIVE (Popup Carrusel) ---------------- */

/* Ajuste para pantallas menores a 768px (Móviles y Tablets pequeñas) */
@media (max-width: 768px) {
  .popup-categoria {
    width: 95%; /* más ancho en pantallas pequeñas */
    height: auto;
    max-height: 80vh;
    padding: 10px;
  }

  .popup-images img {
    width: 100%;
    max-width: 85vw; /* imágenes visibles completas sin scroll horizontal excesivo */
  }

  .flip-btn {
    padding: 10px 18px;
    font-size: 13px;
  }

  #sect-catalogo.active {
    grid-template-columns: repeat(1, 1fr); /* categorías apiladas verticalmente */
  }

  .categoria-link {
    padding: 12px;
    font-size: 14px;
  }
}

/* Ajustes para pantallas menores a 480px (Móviles pequeños) */
@media (max-width: 480px) {
  .popup-images img {
    width: 100%;
    max-width: 80vw; /* un poco más estrechas para mejorar visibilidad */
  }

  .cerrar-popup {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
  }

  .categoria-link {
    padding: 10px;
    font-size: 13px;
  }
}