/* Catálogo — 11 identidades de rubro (catalog-rubro-themes).
   Un bloque [data-catalog-style="X"] por estilo, scopeado sobre el mismo markup del catálogo público.
   Estilo 0 (el catálogo de hoy) no tiene bloque: es la ausencia de atributo, nunca una regla.
   Disciplina R-2: sin capas CSS explícitas; una edición in-place toca sólo el mismo archivo/propiedad que ya
   declaraba; toda regla nueva usa un selector nuevo (nunca sube especificidad ni usa !important).
   Disciplina de tokens: cada bloque consume sólo tokens --fd-* y --pub-* de spacing/densidad/radio/layout;
   nunca declara color ni font-family (esos los resuelve theme-presets.js, independiente del estilo de rubro).
   Cada bloque se completa en la unidad de tasks.md que lo asigna; U1 sólo deja el andamiaje, sin cuerpos de regla,
   para que el estilo 0 no sufra ningún cambio visual. */

/* Familia editorial (U3a): paquetes de tokens sobre el markup de hoy, sólo en la vista de grilla (la vista de lista
   conserva su propio layout). Con la misma especificidad, el adaptador responsive (cargado último) sigue imponiendo
   una sola columna en teléfonos. */

/* Familia de reflujo (U3b): reordena y reestiliza markup que la tarjeta ya renderiza (la ficha de specs, la
   descripción, la grilla), sólo con CSS y con las mismas reglas de alcance. El filete de la tarjeta viene de la regla
   base de la vista de grilla (catalog-public-responsive.css, .catalog-page .product-card): 1px var(--line). */

/* [data-catalog-style="gastronomia"] — 01 gastronomía (menú editorial)
   Una carta impresa: dos columnas, títulos serif grandes, descripción en itálica y el precio unido a su etiqueta por
   una guía de puntos. Papel plano (sin elevación) con el radio mínimo de marca. */
[data-catalog-style="gastronomia"] .catalog-grid:not(.catalog-grid--list) {
  grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr));
  column-gap: var(--fd-space-6);
  row-gap: var(--fd-space-7);
}
[data-catalog-style="gastronomia"] .catalog-grid:not(.catalog-grid--list) .product-card {
  border-radius: var(--pub-radius-mark);
  box-shadow: none;
  transform: none;
}
[data-catalog-style="gastronomia"] .catalog-grid:not(.catalog-grid--list) .product-card__media {
  aspect-ratio: 4 / 3;
  border-radius: var(--pub-radius-mark) var(--pub-radius-mark) 0 0;
}
[data-catalog-style="gastronomia"] .catalog-grid:not(.catalog-grid--list) .product-card__content {
  padding: var(--fd-space-5) var(--fd-space-5) var(--fd-space-6);
}
[data-catalog-style="gastronomia"] .catalog-grid:not(.catalog-grid--list) .product-card h3 {
  font-size: var(--fd-text-3xl);
}
[data-catalog-style="gastronomia"] .catalog-grid:not(.catalog-grid--list) .product-card__description {
  font-size: var(--fd-text-sm);
  font-style: italic;
}
[data-catalog-style="gastronomia"] .catalog-grid:not(.catalog-grid--list) .product-price {
  display: flex;
  flex: 1;
  flex-wrap: wrap;
  align-items: baseline;
  column-gap: var(--fd-space-2);
}
[data-catalog-style="gastronomia"] .catalog-grid:not(.catalog-grid--list) .product-price::before {
  content: "";
  flex: 1;
  order: 1;
  min-inline-size: var(--fd-space-6);
  border-bottom: 1px dotted var(--line-strong);
}
[data-catalog-style="gastronomia"] .catalog-grid:not(.catalog-grid--list) .product-price strong { order: 2; }
[data-catalog-style="gastronomia"] .catalog-grid:not(.catalog-grid--list) .product-price span {
  order: 3;
  flex-basis: 100%;
}

/* [data-catalog-style="textil"] — 02 textil (lookbook)
   Un lookbook: la foto en retrato manda, sin tarjeta alrededor, calles amplias y el nombre en versalitas espaciadas. */
[data-catalog-style="textil"] .catalog-grid:not(.catalog-grid--list) {
  column-gap: var(--fd-space-5);
  row-gap: var(--fd-space-8);
}
[data-catalog-style="textil"] .catalog-grid:not(.catalog-grid--list) .product-card {
  border-width: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  transform: none;
}
[data-catalog-style="textil"] .catalog-grid:not(.catalog-grid--list) .product-card__media {
  aspect-ratio: 2 / 3;
  border-radius: 0;
}
[data-catalog-style="textil"] .catalog-grid:not(.catalog-grid--list) .product-card__content {
  padding: var(--fd-space-3) 0 0;
}
[data-catalog-style="textil"] .catalog-grid:not(.catalog-grid--list) .product-card h3 {
  font-size: var(--fd-text-md);
  font-weight: var(--fd-weight-medium);
}
/* Sobre el botón del título: la hoja del navegador anula letter-spacing y text-transform en <button>. */
[data-catalog-style="textil"] .catalog-grid:not(.catalog-grid--list) .product-card h3 button {
  letter-spacing: var(--fd-tracking-caps);
  text-transform: uppercase;
}
[data-catalog-style="textil"] .catalog-grid:not(.catalog-grid--list) .product-card__description {
  font-size: var(--fd-text-xs);
}
[data-catalog-style="textil"] .catalog-grid:not(.catalog-grid--list) .product-price strong {
  font-size: var(--fd-text-xl);
}

/* [data-catalog-style="distribucion"] — 03 distribución (planilla densa)
   Una planilla de pedido mayorista: una fila por producto (la miniatura y, al lado, código, nombre, specs, precio y la
   acción), filas apretadas y cifras tabulares. Con el producto ya en la selección, la acción de la fila es el stepper
   de cantidad del cajón (markup de index.js, sólo con este estilo); si no, el botón de agregar de siempre. */
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) {
  grid-template-columns: minmax(0, 1fr);
  row-gap: var(--fd-space-2);
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card {
  flex-direction: row;
  align-items: flex-start;
  border-radius: var(--pub-radius-control);
  box-shadow: none;
  transform: none;
}
/* La miniatura va dentro de la fila con su propio radio y el rótulo se acomoda a ese tamaño. "Ver ficha" no entra: la
   foto y el título de la fila ya abren la ficha (como en la vista de lista en teléfonos). */
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__media {
  flex: none;
  inline-size: clamp(var(--fd-space-9), 22vw, var(--fd-space-10));
  aspect-ratio: 1 / 1;
  margin: var(--fd-space-3) 0 var(--fd-space-3) var(--fd-space-3);
  border-radius: var(--pub-radius-mark);
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__labels {
  inset: var(--fd-space-1) var(--fd-space-1) auto;
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-badge {
  display: block;
  overflow: hidden;
  min-inline-size: 0;
  max-inline-size: 100%;
  text-overflow: ellipsis;
  white-space: nowrap;
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__quick { display: none; }
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__content {
  min-inline-size: 0;
  padding: var(--fd-space-3) var(--fd-space-4);
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__topline code {
  font-size: var(--fd-text-xs);
  font-weight: var(--fd-weight-semibold);
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card h3 {
  margin-top: var(--fd-space-1);
  font-size: var(--fd-text-lg);
  font-weight: var(--fd-weight-semibold);
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__description {
  margin-top: var(--fd-space-1);
  -webkit-line-clamp: 1;
}
/* Las specs, en una línea de pares clave-valor, como columnas de la planilla. */
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__specs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fd-space-1) var(--fd-space-4);
  margin-top: var(--fd-space-2);
  padding-block: 0;
  border-block: 0;
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__specs div {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 var(--fd-space-1);
  min-inline-size: 0;
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__specs dt { overflow-wrap: anywhere; }
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__colors { margin-top: var(--fd-space-2); }
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__footer {
  align-items: center;
  padding-top: var(--fd-space-3);
}
/* Desde tablet, el precio sobre la acción forman la columna derecha de la fila, con las cifras alineadas a la derecha
   (en teléfono quedan debajo, a todo el ancho). */
@media (min-width: 621px) {
  [data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__content {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-content: start;
    column-gap: var(--fd-space-6);
  }
  [data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__content > * { grid-column: 1; }
  [data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__footer {
    grid-column: 2;
    grid-row: 1 / span 5;
    flex-direction: column;
    align-items: flex-end;
    align-self: center;
    gap: var(--fd-space-2);
    margin-top: 0;
    padding-top: 0;
  }
  [data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-price {
    justify-items: end;
    text-align: end;
  }
  /* Un ancho definido (el tope del cajón): el ancho intrínseco del campo numérico no debe ensanchar la columna. */
  [data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-card__footer .quantity-stepper { inline-size: 10rem; }
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .product-price strong {
  font-size: var(--fd-text-xl);
  font-variant-numeric: tabular-nums;
}
[data-catalog-style="distribucion"] .catalog-grid:not(.catalog-grid--list) .quantity-stepper input {
  font-size: var(--fd-text-sm);
  font-variant-numeric: tabular-nums;
}

/* [data-catalog-style="ferreteria"] — 04 ferretería (ficha técnica)
   Una ficha técnica de catálogo: foto cuadrada, el código como número de pieza y la ficha de specs enmarcada, en filas
   con filete (clave y valor), justo bajo el título. Plana y de esquinas rectas, como papel impreso. */
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card {
  border-radius: var(--pub-radius-mark);
  box-shadow: none;
  transform: none;
}
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card__media {
  aspect-ratio: 1 / 1;
  border-radius: var(--pub-radius-mark) var(--pub-radius-mark) 0 0;
}
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card__topline code {
  font-size: var(--fd-text-xs);
  font-weight: var(--fd-weight-semibold);
}
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card h3 {
  font-size: var(--fd-text-xl);
  font-weight: var(--fd-weight-semibold);
}
/* Orden visual: código y título, la ficha, y después descripción, colores y precio (el mismo <dl>, en otro lugar). */
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card__topline,
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card h3 { order: -2; }
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card__specs {
  order: -1;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  margin-top: var(--fd-space-3);
  padding-block: 0;
  border: 1px solid var(--line-strong);
}
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card__specs div {
  grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  align-items: baseline;
  gap: var(--fd-space-3);
  padding: var(--fd-space-2) var(--fd-space-3);
}
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card__specs div + div {
  border-top: 1px solid var(--line);
}
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card__specs dt { overflow-wrap: anywhere; }
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-card__specs dd,
[data-catalog-style="ferreteria"] .catalog-grid:not(.catalog-grid--list) .product-price strong {
  font-variant-numeric: tabular-nums;
}

/* [data-catalog-style="belleza"] — 05 belleza (boutique suave)
   Una boutique: tarjetas con el radio más suave del registro público (nunca uno de panel), composición centrada,
   aire generoso y el botón de agregar redondeado al mismo radio. */
[data-catalog-style="belleza"] .catalog-grid:not(.catalog-grid--list) {
  column-gap: var(--fd-space-5);
  row-gap: var(--fd-space-6);
}
[data-catalog-style="belleza"] .catalog-grid:not(.catalog-grid--list) .product-card {
  border-radius: var(--pub-radius-feature);
  text-align: center;
}
[data-catalog-style="belleza"] .catalog-grid:not(.catalog-grid--list) .product-card__media {
  border-radius: var(--pub-radius-feature) var(--pub-radius-feature) 0 0;
}
[data-catalog-style="belleza"] .catalog-grid:not(.catalog-grid--list) .product-card__content {
  padding: var(--fd-space-5) var(--fd-space-5) var(--fd-space-6);
}
[data-catalog-style="belleza"] .catalog-grid:not(.catalog-grid--list) :is(.product-card__topline, .product-card__colors) {
  justify-content: center;
}
/* El botón del título se ajusta a su texto: se centra como caja y también sus líneas. */
[data-catalog-style="belleza"] .catalog-grid:not(.catalog-grid--list) .product-card h3 button {
  margin-inline: auto;
  text-align: center;
}
[data-catalog-style="belleza"] .catalog-grid:not(.catalog-grid--list) .product-card__footer {
  flex-direction: column;
  align-items: center;
  gap: var(--fd-space-4);
}
[data-catalog-style="belleza"] .catalog-grid:not(.catalog-grid--list) .product-price { justify-items: center; }
[data-catalog-style="belleza"] .catalog-grid:not(.catalog-grid--list) .product-add {
  border-radius: var(--pub-radius-feature);
}

/* [data-catalog-style="muebles"] — 06 muebles (showroom)
   Un showroom: tarjetas anchas (menos columnas), foto apaisada enorme sin tarjeta alrededor, filetes finos y poco
   texto (la descripción se acorta a dos líneas; el texto completo sigue en la ficha). */
[data-catalog-style="muebles"] .catalog-grid:not(.catalog-grid--list) {
  grid-template-columns: repeat(auto-fit, minmax(min(24rem, 100%), 1fr));
  column-gap: var(--fd-space-6);
  row-gap: var(--fd-space-8);
}
[data-catalog-style="muebles"] .catalog-grid:not(.catalog-grid--list) .product-card {
  border-width: 0 0 1px;
  border-radius: 0;
  background: none;
  box-shadow: none;
  transform: none;
}
[data-catalog-style="muebles"] .catalog-grid:not(.catalog-grid--list) .product-card__media {
  aspect-ratio: 3 / 2;
  border-radius: 0;
}
[data-catalog-style="muebles"] .catalog-grid:not(.catalog-grid--list) .product-card__content {
  padding: var(--fd-space-4) 0 var(--fd-space-5);
}
[data-catalog-style="muebles"] .catalog-grid:not(.catalog-grid--list) .product-card h3 {
  font-size: var(--fd-text-2xl);
  font-weight: var(--fd-weight-regular);
}
[data-catalog-style="muebles"] .catalog-grid:not(.catalog-grid--list) .product-card__description { -webkit-line-clamp: 2; }
[data-catalog-style="muebles"] .catalog-grid:not(.catalog-grid--list) .product-price strong {
  font-size: var(--fd-text-xl);
  font-weight: var(--fd-weight-regular);
}

/* [data-catalog-style="workwear"] — 07 workwear (talles y normas)
   Ropa de trabajo: tarjeta firme y plana, la grilla de talles disponibles (markup de index.js, sólo con este estilo;
   informativa: el talle se elige en la ficha) y las specs del tenant como placas de norma. */
[data-catalog-style="workwear"] .catalog-grid:not(.catalog-grid--list) .product-card {
  border-radius: var(--pub-radius-control);
  box-shadow: none;
  transform: none;
}
[data-catalog-style="workwear"] .catalog-grid:not(.catalog-grid--list) .product-card__media {
  border-radius: var(--pub-radius-control) var(--pub-radius-control) 0 0;
}
[data-catalog-style="workwear"] .catalog-grid:not(.catalog-grid--list) .product-card h3 {
  font-size: var(--fd-text-xl);
  font-weight: var(--fd-weight-semibold);
}
[data-catalog-style="workwear"] .catalog-grid:not(.catalog-grid--list) .product-card__specs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fd-space-2);
  padding-block: 0;
  border-block: 0;
}
[data-catalog-style="workwear"] .catalog-grid:not(.catalog-grid--list) .product-card__specs div {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 var(--fd-space-2);
  min-inline-size: 0;
  max-inline-size: 100%;
  padding: var(--fd-space-1) var(--fd-space-2);
  border: 1px solid var(--line-strong);
  border-radius: var(--pub-radius-mark);
}
[data-catalog-style="workwear"] .catalog-grid:not(.catalog-grid--list) .product-card__specs dt { overflow-wrap: anywhere; }
/* La grilla de talles vale en las dos vistas: es markup propio de este estilo, sin estilo base. */
[data-catalog-style="workwear"] .product-card__sizes {
  display: grid;
  gap: var(--fd-space-2);
  margin-top: var(--fd-space-4);
}
[data-catalog-style="workwear"] .product-card__sizes small {
  color: var(--ink-soft);
  font-size: var(--fd-text-2xs);
  font-weight: var(--fd-weight-bold);
  letter-spacing: var(--fd-tracking-caps);
  text-transform: uppercase;
}
[data-catalog-style="workwear"] .product-card__sizes ul {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(var(--fd-space-7), 1fr));
  gap: var(--fd-space-1);
  margin: 0;
  padding: 0;
  list-style: none;
}
[data-catalog-style="workwear"] .product-card__sizes li {
  padding: var(--fd-space-1);
  border: 1px solid var(--line-strong);
  font-size: var(--fd-text-xs);
  font-weight: var(--fd-weight-semibold);
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
  text-align: center;
}

/* [data-catalog-style="libreria"] — 08 librería (grilla rápida)
   Una góndola de alto volumen: más columnas de tarjetas angostas, foto cuadrada, sin descripción (sigue en el DOM y
   completa en la ficha del producto), muestras de color chicas y el precio como etiqueta junto al botón de agregar. */
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) {
  grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr));
  column-gap: var(--fd-space-4);
  row-gap: var(--fd-space-5);
}
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) .product-card__media { aspect-ratio: 1 / 1; }
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) .product-card__content { padding: var(--fd-space-3); }
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) .product-card h3 {
  font-size: var(--fd-text-md);
  font-weight: var(--fd-weight-semibold);
}
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) .product-card__description { display: none; }
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) .product-card__specs {
  margin-top: var(--fd-space-2);
  padding-block: var(--fd-space-2);
}
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) .product-card__specs dt { overflow-wrap: anywhere; }
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) .product-card__colors { margin-top: var(--fd-space-2); }
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) .color-dot {
  inline-size: var(--fd-space-3);
  block-size: var(--fd-space-3);
}
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) .product-card__footer {
  gap: var(--fd-space-2);
  padding-top: var(--fd-space-3);
}
[data-catalog-style="libreria"] .catalog-grid:not(.catalog-grid--list) .product-price strong {
  justify-self: start;
  padding: var(--fd-space-1) var(--fd-space-2);
  border: 1px solid var(--line-strong);
  border-radius: var(--pub-radius-mark);
  font-size: var(--fd-text-lg);
  font-variant-numeric: tabular-nums;
}

/* [data-catalog-style="alimentos"] — 09 alimentos (bulto y unidad)
   Mayorista de almacén: las specs que carga el tenant (por ejemplo "Bulto" y "Unidad") se leen como un par de insignias
   llenas y el mínimo de compra, como una insignia de bulto. Sólo CSS sobre el markup de hoy: sin esas specs no hay
   insignias (depende del contenido, design OQ#4) y nunca se calcula un precio por unidad. */
[data-catalog-style="alimentos"] .catalog-grid:not(.catalog-grid--list) .product-card__specs {
  display: flex;
  flex-wrap: wrap;
  gap: var(--fd-space-2);
  padding-block: 0;
  border-block: 0;
}
[data-catalog-style="alimentos"] .catalog-grid:not(.catalog-grid--list) .product-card__specs div {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0 var(--fd-space-2);
  min-inline-size: 0;
  max-inline-size: 100%;
  padding: var(--fd-space-1) var(--fd-space-3);
  border-radius: var(--pub-radius-feature);
  background-color: var(--paper);
}
[data-catalog-style="alimentos"] .catalog-grid:not(.catalog-grid--list) .product-card__specs dt { overflow-wrap: anywhere; }
[data-catalog-style="alimentos"] .catalog-grid:not(.catalog-grid--list) .product-card__specs dd {
  font-size: var(--fd-text-sm);
  font-variant-numeric: tabular-nums;
}
[data-catalog-style="alimentos"] .catalog-grid:not(.catalog-grid--list) .product-price strong { font-variant-numeric: tabular-nums; }
/* El mínimo de compra, con el mismo texto de siempre, como insignia de bulto. */
[data-catalog-style="alimentos"] .catalog-grid:not(.catalog-grid--list) .product-price span {
  justify-self: start;
  margin-top: var(--fd-space-2);
  padding: var(--fd-space-1) var(--fd-space-2);
  border: 1px solid var(--line-strong);
  border-radius: var(--pub-radius-feature);
  font-weight: var(--fd-weight-semibold);
}

/* [data-catalog-style="tecnologia"] — 10 tecnología (filas técnicas)
   Primero las specs: la misma ficha abre el contenido como dos fichas compactas (el valor en cifras tabulares), y
   después el código, el título y el resto. Foto apaisada, como un equipo sobre la mesa. */
[data-catalog-style="tecnologia"] .catalog-grid:not(.catalog-grid--list) .product-card__media { aspect-ratio: 4 / 3; }
[data-catalog-style="tecnologia"] .catalog-grid:not(.catalog-grid--list) .product-card__specs {
  order: -1;
  gap: var(--fd-space-1);
  margin: 0 0 var(--fd-space-3);
  padding-block: 0;
  border-block: 0;
}
[data-catalog-style="tecnologia"] .catalog-grid:not(.catalog-grid--list) .product-card__specs div {
  align-content: start;
  padding: var(--fd-space-2) var(--fd-space-3);
  border-radius: var(--pub-radius-control);
  background-color: var(--paper);
}
[data-catalog-style="tecnologia"] .catalog-grid:not(.catalog-grid--list) .product-card__specs dd {
  font-size: var(--fd-text-sm);
  font-variant-numeric: tabular-nums;
}
[data-catalog-style="tecnologia"] .catalog-grid:not(.catalog-grid--list) .product-card__topline code { font-size: var(--fd-text-xs); }
[data-catalog-style="tecnologia"] .catalog-grid:not(.catalog-grid--list) .product-card h3 {
  font-size: var(--fd-text-xl);
  font-weight: var(--fd-weight-semibold);
}
[data-catalog-style="tecnologia"] .catalog-grid:not(.catalog-grid--list) .product-price strong { font-variant-numeric: tabular-nums; }
