/* One product card for home, listings, the cart and the product-page shelves. */
:is(body:not(#product), .rtg-recommendations) .product-miniature {
  display: flex;
  height: 100%;
  min-height: 435px;
  padding: 0;
  border: 1px solid #ebedf0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 2px rgb(0 0 0 / 3%);
  text-align: center;
  overflow: hidden;
}
:is(body:not(#product), .rtg-recommendations) .product-miniature__inner { display: flex; flex-direction: column; width: 100%; min-width: 0; height: 100%; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__top { position: relative; flex: 0 0 auto; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__image-container { position: relative; width: 100%; aspect-ratio: 1; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__image-link,
:is(body:not(#product), .rtg-recommendations) .product-miniature__image-link picture { display: block; width: 100%; height: 100%; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__image { display: block; width: 100%; height: 100%; object-fit: contain; transition: transform .45s cubic-bezier(.2,.7,.2,1); }
:is(body:not(#product), .rtg-recommendations) .product-miniature__image-link:hover .product-miniature__image { transform: scale(1.05); }
:is(body:not(#product), .rtg-recommendations) .product-miniature__bottom { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; padding: 0 12px 14px; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__infos { display: flex; flex-direction: column; align-items: center; min-width: 0; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__title {
  display: -webkit-box;
  min-height: calc(2 * 1.45em); /* reserve two lines so the price sits right under the name; longer names still show whole (Carlos 25-oct) */
  margin: 5px 18px 2px;
  overflow: hidden;
  overflow-wrap: break-word;
  color: #25262d;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
  text-decoration: none;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
:is(body:not(#product), .rtg-recommendations) .product-miniature__title:hover { color: #4b94a7; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__variants { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 30px; }
/* Solid circular swatches shared by home, listings and recommendation cards. */
.product-miniature .product-miniature__variants { flex-wrap: wrap; }
.product-miniature .product-miniature__variants .color {
  display: block;
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 2px solid #26323820;
  border-radius: 50%;
}
.product-miniature .product-miniature__variants .color:hover,
.product-miniature .product-miniature__variants .color:focus-visible {
  border-color: #168c9d;
  outline: 2px solid #168c9d;
  outline-offset: 2px;
}
:is(body:not(#product), .rtg-recommendations) .product-miniature__prices { display: flex; align-items: baseline; justify-content: center; flex-wrap: wrap; gap: 2px 6px; margin: 0 0 8px; white-space: nowrap; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__discount-price { order: -1; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__regular-price { color: var(--rtg-price-was); font-size: 13px; text-decoration: line-through; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__price { color: #366fe2; font-size: 17px; font-weight: 500; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__actions { margin-top: auto; }
:is(body:not(#product), .rtg-recommendations) .product-miniature__form { display: flex; align-items: center; justify-content: center; gap: 8px; }
/* Shared badges for every product miniature, including product recommendations. */
.product-miniature__top > .product-flags {
  position: absolute;
  z-index: 3;
  top: 12px;
  right: 10px;
  left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  width: auto;
  max-width: calc(100% - 20px);
  margin: 0;
  padding: 0;
}
.product-miniature__top > .product-flags .badge {
  position: static;
  min-width: 0;
  max-width: 100%;
  padding: 5px 7px;
  border: 0;
  border-radius: 0;
  overflow: hidden;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.product-flags .badge.on-sale,
#product .product__carousel .product-flags .badge.on-sale {
  /* PS9's native badge color is !important in bs-base; feed it promotion red (Carlos 25-oct). */
  --bs-primary-rgb: 198, 40, 40;
}
.product-flags .badge.discount,
#product .product__carousel .product-flags .badge { border: 0; }
.product-flags .badge.discount,
#product .product__carousel .product-flags .badge.discount {
  background-color: var(--rtg-price-sale);
  color: #fff;
}
.product-flags .badge.out_of_stock { --bs-primary-rgb: 0, 0, 0; background-color: #000; color: #fff; text-transform: uppercase; letter-spacing: .02em; }

@media (max-width: 767px) {
  :is(body:not(#product), .rtg-recommendations) .product-miniature { min-height: 0; border-radius: 7px; }
  :is(body:not(#product), .rtg-recommendations) .product-miniature__bottom { padding: 0 5px 8px; }
  :is(body:not(#product), .rtg-recommendations) .product-miniature__title { min-height: calc(2 * 1.3em); max-height: none; margin: 2px 6px; font-size: 13px; line-height: 1.3; -webkit-line-clamp: 4; }
  :is(body:not(#product), .rtg-recommendations) .product-miniature__prices { margin-bottom: 7px; gap: 2px 5px; }
  :is(body:not(#product), .rtg-recommendations) .product-miniature__regular-price { font-size: 12px; }
  :is(body:not(#product), .rtg-recommendations) .product-miniature__price { font-size: 16px; }
  :is(body:not(#product), .rtg-recommendations) .product-miniature__form { gap: 3px; }
  .product-miniature__top > .product-flags { top: 6px; right: 5px; gap: 3px; max-width: calc(100% - 10px); }
  .product-miniature__top > .product-flags .badge { padding: 3px 4px; font-size: 10px; }
}

@media (min-width: 768px) and (max-width: 1199px) {
  :is(body:not(#product), .rtg-recommendations) .product-miniature__title { font-size: 14px; }
}

/* Listing toolbar («Hay N productos · Ordenar por») and the «Mostrando 1-10 de N artículo(s)» line: the breadcrumb's size, 12px/500 (Carlos 25-oct). */
#js-product-list-top :is(.products__count, .products__sort-label, .products__sort-dropdown-button) { font-size: 12px; font-weight: 500; line-height: 18px; }
.products__pagination .pagination__number { font-size: 12px; font-weight: 500; line-height: 18px; }
#js-product-list-top .products__sort-dropdown .dropdown-item { font-size: 13px; }
@media (max-width: 767px) { #js-product-list-top .products__sort-dropdown-button { min-height: 40px; } } /* touch target */

/* Search results: six per row on wide screens (Carlos 25-oct), four on small laptops, three on tablets, two on phones.
   body#search outranks the shared listing rules above; narrower cards let the name run to four lines so it is never cut. */
body#search .products { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px 16px; }
body#search .product-miniature__title { font-size: 14px; -webkit-line-clamp: 4; }
@media (max-width: 1199px) { body#search .products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 991px) { body#search .products { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { body#search .products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; } body#search .product-miniature__title { font-size: 13px; } }

/* Two columns even at 320, as in production (one column made 274px images and 64k-px pages). */
@media (max-width: 359px) {
  body:not(#product) .products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}

/* Narrow cards: keep the button at the title's scale and on one line. */
@container product-miniature (width < 13.5rem) {
  .product-miniature__add { min-height: 40px; padding: 6px 8px; font-size: 13px; }
  .product-miniature__add-text { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
}
/* Very narrow cards (320 screens): icon-only button; its aria-label keeps the full action. */
@container product-miniature (width < 9.5rem) {
  .product-miniature__add-text { display: none; }
}
