/* Widgets de présentation : rendu COMMUN (PDF, site publié, canevas des
 * éditeurs). */
.erp-repeat { display: grid; grid-template-columns: repeat(var(--erp-repeat-columns, 3), minmax(0, 1fr)); gap: 16px; }
.erp-card { border: 1px solid #e3e7ec; border-radius: 10px; overflow: hidden; background: #fff; color: #1d2433; text-align: left;
  display: flex; flex-direction: column; }
.erp-card-image { display: block; width: 100%; height: 160px; object-fit: cover; background: #eef1f5; }
.erp-card-title { margin: 12px 14px 4px; font-size: 1.05em; }
.erp-card-text { margin: 0 14px 8px; color: #6b7486; font-size: .9em; }
.erp-card-price { margin: auto 14px 14px; font-weight: 700; }
.erp-empty { color: #6b7486; font-style: italic; }
.erp-qrcode { width: 28mm; height: 28mm; }
.erp-barcode { height: 14mm; }
.erp-dyn-image { max-width: 100%; }
.erp-align-left { text-align: left; }
.erp-align-center { text-align: center; }
.erp-align-right { text-align: right; }
@media (max-width: 760px) { .erp-repeat { grid-template-columns: repeat(min(var(--erp-repeat-columns, 3), 2), minmax(0, 1fr)); } }
@media (max-width: 480px) { .erp-repeat { grid-template-columns: 1fr; } }

/* Colonnes PAR APPAREIL d'un répéteur (26/10/2026, propriétés « Colonnes : tablette / mobile ») : imposées au bloc,
   devant le thème et le réglage « Produits par ligne » du site. Tablette ≤ 1 024 px, mobile ≤ 600 px. */
.erp-repeat.erp-cols { grid-template-columns: repeat(var(--erp-cols-d, 3), minmax(0, 1fr)) !important; }
@media (max-width: 1024px) { .erp-repeat.erp-cols { grid-template-columns: repeat(var(--erp-cols-t, 2), minmax(0, 1fr)) !important; } }
@media (max-width: 600px) { .erp-repeat.erp-cols { grid-template-columns: repeat(var(--erp-cols-m, 1), minmax(0, 1fr)) !important; } }
