/* Favorites page ("Favoritos"). Shell, head, tools, tabs and empty state come from my-shops.css;
   cards reuse the discovery card from desktop-discovery.css. */
.fav-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.fav-card { position: relative; min-width: 0; display: flex; flex-direction: column; }
.fav-card > .shop-slot { flex: 1; }
.favorites form.fav-remove { position: absolute; top: 10px; right: 10px; z-index: 2; }
.fav-heart { width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .94);
  color: #d23c3c; font-size: 18px; line-height: 1; display: grid; place-items: center; cursor: pointer;
  box-shadow: 0 2px 8px #103e3622; transition: transform .15s, background .15s; }
.fav-heart:hover { transform: scale(1.08); background: #fff; }
.fav-heart:focus-visible { outline: 2px solid var(--mk-green, #075b48); outline-offset: 2px; }
.fav-date { margin: 8px 2px 0; font-size: 12px; color: var(--ms-soft); }
.fav-gone { background: #f7f8f7; display: flex; flex-direction: column; overflow: hidden; }
.fav-gone .shop-slide-photo { background: #eef0ee; }
.fav-gone .shop-photo-placeholder { color: var(--ms-muted); }
.fav-gone h3 { margin: 0; font-size: 17px; font-weight: 750; color: var(--ms-muted); }
.fav-page-no { align-self: center; color: var(--ms-muted); }
.favorites .module-pagination { gap: 14px; }

@media (max-width: 1279px) { .fav-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 1023px) { .fav-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 639px) {
  .fav-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .favorites form.fav-remove { top: 6px; right: 6px; }
  .fav-heart { width: 32px; height: 32px; font-size: 16px; }
  .fav-gone h3 { font-size: 14px; }
  .fav-date { font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) { .fav-heart { transition: none; } }

/* Removal with undo (favorites.js): the card stays in place until the page reloads. */
.fav-heart-off { display: none; }
.fav-card.is-removed .fav-heart-on { display: none; }
.fav-card.is-removed .fav-heart-off { display: inline; }
.fav-card.is-removed .fav-heart { color: var(--ms-muted); }
.fav-card.is-removed > .shop-slot { opacity: .45; filter: grayscale(.7); transition: opacity .2s, filter .2s; }
.fav-note { display: none; position: absolute; top: 10px; left: 10px; right: 56px; z-index: 2; flex-wrap: wrap; align-items: center;
  justify-content: space-between; gap: 6px 8px; padding: 7px 8px 7px 11px; border-radius: 10px; background: #fff;
  box-shadow: 0 4px 14px #103e3624; font-size: 13px; font-weight: 600; color: var(--mk-ink, #103e36); }
.fav-card.is-removed .fav-note, .fav-card.is-error .fav-note { display: flex; }
.fav-card.is-error .fav-note { color: var(--ms-err); }
.fav-card:not(.is-removed) [data-fav-undo] { display: none; }
.fav-note .ms-btn { padding: 5px 11px; font-size: 12.5px; }
@media (max-width: 639px) {
  .fav-note { top: 6px; left: 6px; right: 44px; padding: 6px 6px 6px 9px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) { .fav-card.is-removed > .shop-slot { transition: none; } }

.fav-card.is-archived .fav-tag + * { opacity: .55; filter: grayscale(.6); }
.fav-tag { display: inline-block; margin: 0 0 6px; padding: 3px 10px; border-radius: 8px; font-size: 13px; font-weight: 700; }
.fav-tag--sold { background: #fde8e6; color: #8a1f17; }
.fav-tag--withdrawn { background: #eceeed; color: #3a4440; }
