Hola @sergio_dev y @alba_bici,
Tenéis razón, la especificidad es clave en PrestaShop, especialmente con el tema Classic que tiene sus propias reglas !important para asegurar la coherencia visual. El problema aquí es que, aunque .product-flags .product-flag es válido, el selector por defecto para esas insignias dentro de las miniaturas de producto a menudo incluye clases adicionales o un selector más anidado que le da mayor peso.
Para que tus estilos se apliquen correctamente y queden alineados como píldoras modernas, te sugiero usar un selector más específico que apunte directamente a las banderas dentro de la tarjeta de producto (.js-product-miniature) y ajustar las propiedades para que funcionen bien con display: inline-flex para la alineación. Además, limpiaremos el background-color original y aplicaremos el degradado directamente.
Aquí tienes el código CSS que deberías añadir o modificar en tu themes/classic/assets/css/custom.css:
/* Solución en custom.css para insignias estilo píldora */
.js-product-miniature .product-flags .product-flag {
display: inline-flex; /* Para centrar contenido y mejor alineación */
align-items: center;
justify-content: center;
padding: 5px 14px; /* Un poco más de padding para el estilo píldora */
border-radius: 25px; /* Redondeado para el efecto píldora */
font-size: 0.8rem; /* Tamaño de fuente ligeramente ajustado */
font-weight: 600;
margin-right: 6px; /* Espacio entre las insignias si hay varias */
Explicación de los cambios:
- Selector más específico: Hemos añadido
.js-product-miniature al inicio del selector (.js-product-miniature .product-flags .product-flag). Esto aumenta la especificidad y asegura que tus estilos prevalezcan sobre los del tema base sin depender excesivamente de !important en todas las propiedades.
display: inline-flex: Cambiamos a inline-flex para las insignias. Esto permite usar align-items: center y justify-content: center para centrar el texto dentro de la píldora de manera más efectiva y que las insignias se comporten mejor en línea.
padding y border-radius: Ajustado para un aspecto de píldora más logrado.
background-color: transparent !important;: Es crucial para anular el fondo sólido original antes de aplicar nuestro degradado. Usar !important aquí es a menudo necesario para limpiar el estilo base.
- Degradados específicos: Aplicamos los degradados directamente a
.discount y .on-sale con linear-gradient y color: #ffffff para el texto, asegurando un buen contraste.
box-shadow y transition: Añadidos para un efecto visual más pulido y una pequeña interacción al pasar el ratón.
Con estos cambios, las insignias deberían verse mucho más modernas y alineadas correctamente en tus miniaturas de producto. Recuerda que estás en PrestaShop 9.1.1, por lo que el tema Classic sigue siendo la base para el front-end en muchas instalaciones, y estos selectores son bastante estables.